官术网_书友最值得收藏!

1.2 OpenCV 編程環境搭建

本書使用的編程語言為C++,編程環境可為Visual Studio或Qt,讀者可根據自己的偏好搭建相應的編程環境,例如使用“Visual Studio 2019 + OpenCV 4.4”,或者“Qt + OpenCV 4.4”。下面將詳細介紹軟件環境搭建方法。

· 1.2.1 Visual Studio 2019安裝

Visual Studio 2019(VS 2019)安裝包可直接在Visual Studio官方網站下載,下載頁面如圖1-1所示。

圖1-1 VS 2019下載頁面

下載VS 2019安裝包后,雙擊打開安裝包開始安裝,安裝頁面如圖1-2所示。

圖1-2 VS 2019安裝頁面

單擊“繼續”按鈕,選擇“Visual Studio Community 2019”選項,單擊“安裝”按鈕。安裝組件選擇“使用C++的桌面開發”,如圖1-3所示。設置VS 2019安裝路徑為D:\VS,并對下載緩存進行設置,如圖1-4所示。

圖1-3 開發組件的選擇

圖1-4 VS 2019安裝位置

單擊“安裝”按鈕,如圖1-5所示,下載時間較長,請耐心等待,下載安裝完成后重啟計算機即可使用VS 2019。

圖1-5 開始下載安裝

· 1.2.2 Qt 安裝

Qt是一個跨平臺的C++開發庫,主要用來開發圖形用戶界面(Graphical User Interface,GUI)程序,當然也可以開發不帶界面的命令行用戶交互(Command User Interface,CUI)程序。本書將使用Qt來編寫程序。本書使用的Qt版本號為5.9.9,系統環境為Windows 10。

打開Qt官網,進入下載界面,選擇5.9版本后,進入下載地址界面,找到qt-opensource-windows-x86-5.9.9.exe安裝包下載即可,如圖1-6所示。

安裝向導如圖1-7所示。本書中Qt的安裝目錄為D:\QT,Qt代碼存放路徑為D:\QTCode(例如第1章的代碼,Qt代碼路徑為D:\QTCode\1),圖像路徑統一為D:\images。

圖1-6 下載Qt

圖1-7 安裝Qt向導

單擊“Next”按鈕,進入下一步歡迎界面,如圖1-8所示。

單擊“下一步”按鈕,選擇具體的安裝目錄,如圖1-9所示。

選擇安裝目錄后,選擇要安裝的組件,如圖1-10所示。圖中勾選了32位選項,64位計算機建議勾選第二個64位選項。

選擇安裝組件后,使用默認安裝工具即可,如圖1-11所示。建議在圖1-10和圖1-11中同時勾選MinGW 編譯器(注意選64位或32位)。

圖1-8 歡迎界面

圖1-9 自定義安裝目錄

圖1-11 默認安裝工具

圖1-10 選擇安裝組件

同意許可協議如圖1-12所示。

單擊“下一步”按鈕開始安裝,安裝完成后如圖1-13所示,Qt Creator啟動頁面如圖1-14所示。

圖1-12 同意許可協議

圖1-13 Qt安裝完成

圖1-14 Qt Creator啟動頁面

Qt在統信Unity Operating System(UOS)上面的安裝比較簡單,在統信UOS的桌面單擊鼠標右鍵并選擇“在終端中打開”,打開UOS的命令行終端,在命令行終端輸入如下安裝命令即可完成Qt的安裝。

$ sudo apt-get install qt5-default qtcreator

輸入命令后,sudo(類似于Windows的添加/刪除程序)自動從網絡下載所需的包,例如開發工具Qt Creator,編譯器QMake,幫助文檔,開發樣例,等等,下載時輸入字母y確認下載即可。

· 1.2.3 OpenCV Release版本安裝

OpenCV 4.4安裝包可直接在官網下載。OpenCV包括Release(發行)版和Debug(調試)版,對于初學者來說,直接下載源碼編譯比較困難,可以下載Release版配置后運行。本書附錄2給出了OpenCV 4.4源碼和opencv_contrib模塊的編譯配置過程。

這里首先介紹Release版的安裝配置過程。下載Release版后(約203兆字節,安裝包名為opencv-4.4.0-vc14_vc15.exe),雙擊打開安裝包,指定解壓縮目錄為D:\OpenCV,如圖1-15所示。

圖1-15 指定解壓縮目錄

· 1.2.4 VS 2019中OpenCV 4.4環境的配置

在VS 2019中配置OpenCV 4.4的具體過程如下。

(1)右擊“此電腦”圖標,選擇“屬性”命令進入系統窗口。選擇左側的“高級系統設置”選項,打開“系統屬性”對話框,選擇“高級”選項卡,然后在最下方單擊“環境變量”按鈕。在系統變量 Path中添加以下路徑。

D:\OpenCV\opencv\build\x64\vc15\bin

注意在前面變量前添加“;”,以便與另外一個路徑分開。

(2)設置VS環境變量。

新建VS空項目HelloCV,并設置項目為Debug x64模式(若需設置Release模式,則設置項目為Release x64。建議設置兩種模式),如圖1-16所示。

圖1-16 設置Debug x64模式

(3)添加屬性表。

單擊“視圖”菜單,然后選擇“其他窗口”命令,選擇“屬性管理器”子命令,打開“屬性管理器”面板。在“屬性管理器”面板的Debug | x64 文件夾中添加新項目屬性表,命名為OpenCV440Debug,如圖1-17所示。

圖1-17 添加屬性表

(4)編輯屬性表。

在OpenCV440Debug屬性表上右擊,在彈出的快捷菜單中選擇“屬性”命令,對該屬性表進行編輯,具體步驟如下。

①選擇左側“通用屬性”目錄下的“VC++目錄”選項,在右側“常規”列表中選擇“包含目錄”選項,在彈出的“包含目錄”對話框中單擊“添加”按鈕,添加以下目錄,然后單擊“確定”按鈕,如圖1-18所示。

D:\OpenCV\opencv\build\include

圖1-18 添加“包含目錄”

②在“常規”列表中選擇“庫目錄”選項,在彈出的“庫目錄”對話框中添加以下目錄,然后單擊“確定”按鈕,如圖1-19所示。

D:\OpenCV\opencv\build\x64\vc15\lib

圖1-19 添加“庫目錄”

③選擇左側“通用屬性”目錄下的“鏈接器”選項,選擇其下方的“輸入”子選項,在右側“附加依賴項”中添加以下文件,如圖1-20所示。

opencv_world440d.lib

圖1-20 添加“附加依賴項”

opencv_world440d.lib文件名中的最后一個字母“d”表示VS生成解決方案為Debug模式。如果為VS中設置Release模式,注意去掉該字母。

(5)確認更改,退出屬性編輯器。

(6)進行測試(此處代碼暫時不予解釋,將在1.3節介紹)。

編輯測試代碼源.cpp文件,內容如下。

#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
using namespace std;
using namespace cv;
int main(int argc,char** argv)
{
String imageName("touxiang.jpg"); //默認文件
if (argc > 1)
imageName = argv[1];
Mat image = imread(samples::findFile(imageName), IMREAD_COLOR); //讀取文件
if (image.empty()){  //檢查無效輸入
cout << "Could not open or find the image"<< endl;
return -1;//依次處理
}
namedWindow("Display window", WINDOW_AUTOSIZE); //新建一個顯示窗口,默認圖像大小
imshow("Display window", image);                // 在窗口中顯示圖像
waitKey(0);   // 無限等待,直到有按鍵被按下結束
return 0;
}

注意:將圖像文件touxiang.jpg放到源.cpp文件所在的目錄下,程序運行結果如圖1-21所示。

圖1-21 程序運行結果

那么,是否每次新建項目都需要配置屬性表呢?其實并不需要,有下面兩種方法可以使用。

方法一:將此項目作為一個模板,以后新建項目時都復制此項目,在其基礎上進行編輯。

方法二:此項目創建好之后,會在項目根目錄下形成OpenCV440Debug.props文件,將此文件復制出來,放到一個固定目錄下,以后新建項目時在屬性表里單擊“添加現有屬性表”按鈕,導入該文件即可。

· 1.2.5 Qt 5.9.9中OpenCV 4.4環境的搭建

編譯Qt程序常用MinGW和MSCV編譯器。由于MinGW編譯器需要用CMake重新編譯源碼,操作起來較為煩瑣,因此本書采用MSCV編譯器,且通過配置Qt工程中的.pro文件添加OpenCV的庫文件和頭文件。搭建過程如下。

(1)打開Qt Creator,新建C++項目,如圖1-22所示。

圖1-22 新建C++項目

(2)設置項目名稱、路徑,如圖1-23所示。

注意,Qt代碼路徑統一為D:\QTCode,第1章的程序和代碼對應的Qt代碼路徑為D:\QTCode\1。

圖1-23 項目名稱、路徑

(3)選擇編譯器。這里可選的編譯器有QMake、CMake等,默認使用Qt自帶的QMake編譯工具。

(4)工程配套選擇“Desktop Qt 5.9.9 MSVC2015 32bit”(應與圖1-10選擇的組件對應),如圖1-24所示。

圖1-24 工程配套選擇

(5)不需要配置工程管理則此處保持默認設置,單擊“完成”按鈕,如圖1-25所示。

圖1-25 工程管理

(6)項目創建完成后可以看到項目目錄和文件,如圖1-26所示。

圖1-26 項目目錄

第一次構建Qt項目時可能會出現文件不屬于項目的警告提示,如圖1-27所示。

圖1-27 警告提示

單擊左側的項目,配置項目模式,如圖1-28所示。進入項目模式后,可以看到項目配置窗口,如圖1-29所示。

圖1-29 項目配置窗口

圖1-28 配置項目模式

單擊“Manage...”按鈕,配置編譯工具(應與圖1-10中對應),如圖1-30所示。

圖1-30 配置編譯工具

按圖1-31所示,務必在這一步選擇正確的組件,否則后續構建時會出現錯誤,注意x86(代表32位)與64位計算機不兼容。

選擇正確的C++編譯器Microsoft Visual C++ Compiler 16.6.30320.27(amd64)即可,不需要配置C語言編譯器(本書使用C++進行開發),如圖1-32所示。

至此,問題得到解決。

圖1-31 Kits配置

圖1-32 選擇C++編譯器

(7)雙擊OpenCVTest.pro文件進行編輯,添加如下OpenCV配置。

添加OpenCV的頭文件和庫文件,頭文件只需要添加所在路徑即可,庫文件則需要提供庫文件的所在路徑,以及編譯的時候鏈接到哪一個庫文件,如圖1-33所示。

# 導入頭文件
INCLUDEPATH+=D:/OpenCV/opencv/build/include
INCLUDEPATH+=D:/OpenCV/opencv/build/include/opencv2
# 導入庫文件
win32:CONFIG(debug, debug|release):{
LIBS+=-LD:/OpenCV/opencv/build/x64/vc14/lib\
-lopencv_world440d
}
else{
LIBS+=-LD:/OpenCV/opencv/build/x64/vc14/lib\
-lopencv_world440
}

圖1-33 在.pro文件中添加OpenCV的頭文件和庫文件

(8)編寫測試程序main.cpp文件,具體內容如下。

#include<iostream>
#include<opencv2/core.hpp>
#include<opencv2/imgcodecs.hpp>
#include<opencv2/highgui.hpp>
using namespace std;
using namespace cv;
int main(int argc,char** argv)
{
String imageName("D:/images/touxiang.jpg"); //默認文件路徑
if (argc > 1)
imageName = argv[1];
Mat image = imread(samples::findFile(imageName), IMREAD_COLOR); //讀取文件
if (image.empty()){  //檢查輸入文件
cout << "Could not open or find the image"<< endl;
return -1;
}
namedWindow("Display window", WINDOW_AUTOSIZE); //創建窗口顯示
imshow("Display window", image);                //顯示圖像
waitKey(0);   //等待鍵盤事件
return 0;
}

注意:圖像路徑統一為D:\images,在該目錄下放置圖像touxiang.jpg,如圖1-34所示。

圖1-34 圖像放置路徑

(9)對工程進行QMake編譯。將鼠標指針移動到左側的工程名上右擊,在彈出的快捷菜單中選擇“qmake”命令進行QMake編譯。QMake編譯根據實際環境創建項目文件.pro,生成適當的Makefile文件。這個步驟如果不執行,后面無法編譯運行。

如果狀態欄下方的“編譯輸出”窗口沒有出現異常錯誤提示,則表示編譯通過,如圖1-35所示。

圖1-35 編譯程序

(10)QMake編譯通過之后,將鼠標指針移動到左側的工程名上右擊,在彈出的快捷菜單中選擇 “構建”命令。同樣,此時下方的“編譯輸出”窗口沒有出現異常錯誤提示,則表示編譯通過,此時才生成可執行的.exe文件,如圖1-36所示。

圖1-36 構建項目

(11)編譯生成.exe文件之后,可以單擊Qt Creator窗口左下方的三角形按鈕,運行編譯通過的測試程序,如圖1-37所示。

圖1-37 運行程序

(12)程序運行結果如圖1-38所示。

圖1-38 程序運行結果

在Qt中編譯運行的順序為先執行QMake,然后構建,最后運行。

這里需要特別注意的一點是,OpenCV基礎模塊的Release版安裝完成后,可以滿足大多數初學人員的正常使用需要,但有很多非常實用的功能并沒有被集成在基礎模塊中,而是被放在被稱為opencv_contrib的擴展模塊中,例如人臉識別、生物視覺、特征點提取等眾多非常強大的功能。擴展模塊是對基礎模塊功能的補充,欲了解OpenCV 4.4源碼和opencv_contrib模塊的編譯與安裝,請參考本書附錄2。

主站蜘蛛池模板: 广安市| 嘉禾县| 广南县| 长寿区| 阿勒泰市| 古田县| 蕉岭县| 明光市| 青阳县| 安吉县| 东乡族自治县| 通江县| 手机| 盱眙县| 邢台县| 从化市| 常山县| 阆中市| 兴隆县| 资溪县| 万盛区| 宽城| 鸡泽县| 湖口县| 桦甸市| 辉南县| 城步| 莲花县| 云林县| 台江县| 克东县| 盖州市| 宜阳县| 永定县| 顺义区| 聂拉木县| 河池市| 克山县| 定陶县| 长宁县| 剑河县|