Qt建立Qt控制台應用程式,直接添加工程檔案.pro下的opencv的包含目錄和庫目錄是錯誤的,這會導緻無法使用如imread,imshow等函數。
下面就正式說win7下配置OPENCV的Qt環境開發
下載下傳所需工具:
(1) opencv2.4.10,新版3.x,因為有很多東西不一樣,容易出錯。官網為http://opencv.org,點選DOWNLOADS,
找到OpenCV for Windows連結進行下載下傳:
(2) Qt5.4.1,
http://www.qt.io/download/下載下傳社群版
(3) cmake的下載下傳位址為http://www.cmake.org/download/,windows使用者直接下載下傳其一就行(不管系統幾位,推薦exe安裝,免去設定Path的麻煩):
安裝:
Opencv如果你下載下傳的是opencv2.x.exe,直接打開就自動解壓了,解壓到D盤,我這裡得到D:\opencv
Qt的安裝,打開之後到了那個元件選項,點5.4.1,tool中MINGW4.9.1要選中,其餘的看你的需求了。我的也是直接安裝在D盤,路徑為D:\Qt
Cmake的安裝路徑中不能有中文或者括号字元,不能有空格,其中有一個安裝步驟,讓你勾選,勾選那個加入到計算機環境變量中。
下面的步驟來自http://blog.csdn.net/zhaocj/article/details/38944037,趙春江老師的專欄以及其他的一些部落格。
配置:
首先要設定環境變量(右鍵點選“計算機”->屬性->進階系統設定->環境變量),因為我們用的是mingw來編譯,是以要将D:\Qt\Qt5.4.1\Tools\mingw491_32\bin加入到path下,注意切換到英文模式。
點選CMake(cmake-gui)圖示,執行CMake,在Where is the source code欄和Where to build the binaries欄中分别為D:/opencv/soureces和D:/opencv/MinGW。D:/opencv/MinGW為編譯後庫檔案所存放的目錄(可以自定義),需要自己建立該目錄(如果沒有,則會有提示,選擇Yes建立)。
然後點選configure按鈕,打開新的視窗,在Specifythe generator for this project下選擇MinGWMakefiles,然後選擇Specifynative compilers,點選Next按鈕,打開新的視窗,在C一欄中填寫D:/Qt/Qt5.4.1/Tools/mingw491_32/bin/gcc.exe,在C++一欄中填寫D:/Qt/Qt5.4.1/Tools/mingw491_32/bin/g++.exe,Fortran不填寫,然後點選Finish按鈕。
開始配置,出現錯誤,在
搜尋CMAKE_MAKE_PROGRAM,CMAKE_MAKE_PROGRAM配置為D:/Qt/Qt5.4.1/Tools/mingw491_32/bin/mingw32-make.exe沒有就不管它
繼續勾選WITH_QT與WITH_OPENGL,再次configure,又出現錯誤,搜尋并添加(意思就是說你找得到的就修改沒有的就加上去)
QT_QMAKE_EXECUTABLE,它的值填寫為:D:/Qt/Qt5.4.1/5.4/mingw491_32/bin/qmake.exe
QT_MKSPECS_DIR,它的值填寫為:D:/Qt/Qt5.4.1/5.4/mingw491_32/mkspecs
QT_QTCORE_LIBRARY_DEBUG,它的值填寫為:D:/Qt/Qt5.4.1/5.4/mingw491_32/bin/Qt5Cored.dll
QT_QTCORE_LIBRARY_RELEASE,它的值填寫為D:/Qt/Qt5.4.1/5.4/mingw491_32/bin/Qt5Core.dll
QT_QTCORE_INCLUDE_DIR,它的值填寫為D:/Qt/Qt5.4.1/5.4/mingw491_32/include/QtCore/5.4.1/QtCore
再次configure,會出現Qt5Concurrent_DIR,Qt5Core_DIR,Qt5Gui_DIR,Qt5Test_DIR,Qt5Widgets_DIR,Qt5OpenGL_DIR not found,還是搜尋這些變量
它們的Value分别填寫為:
D:/Qt/Qt5.4.1/5.4/mingw491_32/lib/cmake/Qt5Concurrent
D:/Qt/Qt5.4.1/5.4/mingw491_32/lib/cmake/Qt5Core
D:/Qt/Qt5.4.1/5.4/mingw491_32/lib/cmake/Qt5Gui
D:/Qt/Qt5.4.1/5.4/mingw491_32/lib/cmake/Qt5Test
D:/Qt/Qt5.4.1/5.4/mingw491_32/lib/cmake/Qt5Widgets
D:/Qt/Qt5.4.1/5.4/mingw491_32/lib/cmake/Qt5OpenGL
點選Generate生成Make檔案,然後執行下一步。
同時按下Ctrl+R,在彈出的對話框中輸入cmd,打開系統指令行終端,進入到D:/opencv/MinGW的目錄下(cd D:/opencv/MinGW)執行mingw32-make指令,這會需要很長時間,還有别運作其他程式屏保也不可以(偶發性錯誤),放着别動去喝茶,最後提示build target opencv transcode之後,接着輸入mingw32-make install,100%結束後關閉指令行即可。
下面開始配置opencv的Qt開發環境。
其實我們需要的隻是編譯後MINGW目錄下的bin和lib檔案夾,在D盤先建一個目錄OpenCV4Qt,将D:/opencv/MinGW目錄下的bin目錄和lib目錄和D:\opencv\build\include目錄共3個目錄複制到該目錄下
今後我們在用Qt建立opencv工程的時候,都要在工程名稱.Pro上添加以下目錄和庫。
IINCLUDEPATH+= D:\OpenCV4Qt\include\
D:\OpenCV4Qt\include\opencv\
D:\OpenCV4Qt\include\opencv2
LIBS+=D:\OpenCV4Qt\lib\libopencv_calib3d2410.dll.a\
D:\OpenCV4Qt\lib\libopencv_contrib2410.dll.a\
D:\OpenCV4Qt\lib\libopencv_core2410.dll.a\
D:\OpenCV4Qt\lib\libopencv_features2d2410.dll.a\
D:\OpenCV4Qt\lib\libopencv_flann2410.dll.a\
D:\OpenCV4Qt\lib\libopencv_gpu2410.dll.a\
D:\OpenCV4Qt\lib\libopencv_highgui2410.dll.a\
D:\OpenCV4Qt\lib\libopencv_imgproc2410.dll.a\
D:\OpenCV4Qt\lib\libopencv_legacy2410.dll.a\
D:\OpenCV4Qt\lib\libopencv_ml2410.dll.a\
D:\OpenCV4Qt\lib\libopencv_objdetect2410.dll.a\
D:\OpenCV4Qt\lib\libopencv_video2410.dll.a
到此就結束了,庫的添加自己可以按照庫目錄自己選擇那些必須的,以後用到别的再選擇添加。
Qt控制台測試程式:
#include<QCoreApplication>
#include<iostream>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main(intargc,char*argv[])
{
//QCoreApplicationa(argc,argv);
//returna.exec();
cout<<"opencv"<<endl;
cv::Mat src=cv::imread("F:/image/3.jpg"); //絕對路徑
cv::namedWindow("test");
cv::imshow("test",src);
cv::waitKey(0);
cv::destroyWindow("test");
return 0;
}
Ctrl+R效果: