Email : hahayacoder@gmail.com
0 編譯、配置OpenCV的工程相當(dāng)曲折,編譯OpenCV不下5次,一開始還以為是自己的配置、編譯步驟有問題,后來發(fā)現(xiàn)原來是自己電腦裝的Qt Creator版本有點(diǎn)低,里面的MingW版本較低,而OpenCV下載的是最新版本,最新版本的OpenCV需要高版本的MingW。最后果斷換成高版本Qt Creator,終于編譯成功。
1 下載所需工具 (1)Qt Creator 下載地址http:// (建議下載最新版本,因為里面帶的MinGW版本較高,我最開始使用Qt 4.7.4編譯OpenCV-2.4.4一直報錯,后來換成Qt 5.0.1編譯成功) (2)OpenCV 下載地址http:///(不建議下載最新版本,最新版本的編譯需要高版本的MinGW,不然在執(zhí)行mingw32-make命令會報錯) (3)CMake 下載地址http://www./cmake/resources/software.html
2 安裝Qt Creator,過程很簡單,一直下一步就OK
3 安裝OpenCV,設(shè)置解壓路徑就OK
4 安裝CMake,過程同樣很簡單(注意:(1)安裝路徑不能有中文和空格(2)勾選加入所有境變量中)
5 目前最新的OpenCV版本,安裝之后的目錄下面有源碼和個版本的lib和dll,不過為避免出現(xiàn)問題,還是自己編譯
6 將C:\Qt\Qt5.0.1\Tools\MinGW\bin加入系統(tǒng)的Path環(huán)境變量(假設(shè)Qt Creator安裝在C盤)
7 打開CMake,使用CMake編譯OpenCV。配置源碼路徑與生成的目標(biāo)路徑 (1)源碼路徑:要選擇OpenCV安裝目錄下含有如下文件的文件夾
(2)目標(biāo)路徑:可以隨意設(shè)置
8 點(diǎn)擊Configure配置按鈕。在彈出的對話框中選擇MinGW makefiles,其余選項保持默認(rèn),點(diǎn)擊Finish按鈕,開始編譯
9 CMake編譯結(jié)束界面如下圖,勾選生成列表中的WITH_OPENGL和WITH_QT兩項,其他項最好不要改動
10 再次點(diǎn)擊Configure按鈕,紅色消失
11 點(diǎn)擊Generate按鈕,生成makefile文件,成功后,底下會提示Generating done
12 打開cmd,進(jìn)入剛才設(shè)置的目標(biāo)路徑(C:\OpenCV),輸入mingw32-make命令開始編譯
13 此過程較為漫長,建議關(guān)掉殺毒軟件可能會快些,在我的ThinkPad T420上耗時30分鐘
14 執(zhí)行mingw32-make install,此過程大約需要1到2分鐘
15 下面開始配置Qt Creator的OpenCV開發(fā)環(huán)境,拷貝下面三個文件夾放在同一個文件夾下(只需這三個目錄,其余生成的文件和文件夾可以刪除,以節(jié)省磁盤空間) (1)OpenCV-2.4.4安裝目錄下的build/include目錄
(2)CMake目標(biāo)路徑下,MinGW編譯后的bin目錄 (3)CMake目標(biāo)路徑下,MinGW編譯后的lib目錄
16 拷貝三個目錄到同一目錄后的結(jié)構(gòu)如下圖(我刪除了原來的CMake目標(biāo)目錄中的其他目錄,拷貝進(jìn)來了include目錄)
17 將bin目錄添加到系統(tǒng)環(huán)境變量
18 至此Qt Creator下的OpenCV開發(fā)環(huán)境已經(jīng)配置好,下面在Qt Creator下測試是否已經(jīng)配置成功
19 打開Qt Creator,新建一個空工程,然后添加一個cpp文件,任意命名
20 在pro文件中添加如下OpenCV的依賴文件 INCLUDEPATH =C:\OpenCV\include\opencv\ C:\OpenCV\include\opencv2\ C:\OpenCV\include
LIBS =C:\OpenCV\lib\libopencv_calib3d244.dll.a\ C:\OpenCV\lib\libopencv_contrib244.dll.a\ C:\OpenCV\lib\libopencv_core244.dll.a\ C:\OpenCV\lib\libopencv_features2d244.dll.a\ C:\OpenCV\lib\libopencv_flann244.dll.a\ C:\OpenCV\lib\libopencv_gpu244.dll.a\ C:\OpenCV\lib\libopencv_highgui244.dll.a\ C:\OpenCV\lib\libopencv_imgproc244.dll.a\ C:\OpenCV\lib\libopencv_legacy244.dll.a\ C:\OpenCV\lib\libopencv_ml244.dll.a\ C:\OpenCV\lib\libopencv_objdetect244.dll.a\ C:\OpenCV\lib\libopencv_video244.dll.a 備注:其實有種簡單的做法,但是有個缺點(diǎn)是可能包含鏈接庫較多 INCLUDEPATH =C:\OpenCV\include\opencv\ C:\OpenCV\include\opencv2\ C:\OpenCV\include LIBS =C:\OpenCV\lib
21 main.cpp文件中內(nèi)容如下 #include"cv.h" #include"cxcore.h" #include"highgui.h"
intmain(intargc,char*argv[]) { //聲明IplImage指針 IplImage*pImg; //載入圖片 pImg=cvLoadImage("E:/OpenCV/FirstOpenCV/home.jpg",1); //創(chuàng)建窗口 cvNamedWindow("Image",1); //顯示圖像 cvShowImage("Image",pImg); //等待按鍵 cvWaitKey(0); //銷毀窗口 cvDestroyWindow("Image"); //釋放圖像 cvReleaseImage(&pImg);
return0; }
22 運(yùn)行程序,按鍵盤上任意鍵可以退出
|
|
來自: italyfiori > 《QT》