1、 安裝:
OpenCV:opencv 3.0
Qt版本:qt-opensource-windows-x86-msvc2010_opengl-5.3.2.exe
(坑1)注意Qt版本:msvc和MinGW版本的差別。msvc使用的是vs的編譯器,這個版本主要用于PC開發;MinGW版本使用MinGW編譯器,主要用于跨平台開發。兩個版本的Qt配置方式完全不同。是以在網上搜配置方法時候,要加上msvc或者MinGW這樣的關鍵字一塊搜尋。網上大部分内容是關于MinGW版本的配置方法,我本地使用的是msvc版本。Msvc版本配置比較簡單;MinGW版本需要下載下傳cmake自行編譯opencv。
另外說明:我這版本的Qt是Qt庫和Qtcreator的內建版,官網上目前提供的應該有類似的版本。這個版本是在學校時候下載下傳的,不是最新版。
參考:
http://www.librehat.com/qt-5-2-vs2012-opencv-2-4-7-dev-environment-setup-tutorial/
http://blog.csdn.net/skelking/article/details/43735971

2、 msvc版本的Qt配置類似VS,需要配置lib、include和bin目錄
a) bin目錄一般在計算機環境變量path中配置,首次配置最後重新開機電腦或者登出一次使環境變量生效。
b) include和lib需要在工程中配置
c) 建立Test測試工程,工程目錄如下圖
(坑2)建立項目為純C++控制台程式,頭一次建立的是Qt的控制台程式,好像不太一樣,沒有成功。兩者差別有待研究。
d) 打開.pro工程檔案,配置OpenCV3.0
Include配置使用 INCLUDE+=開頭,添加目錄,每個目錄使用反斜杠\隔開(\是分行隔開符号,将一行内容分行寫)。此處模仿VS配置,将三個目錄都加上了,親測有效
Lib配置使用LIB+=開頭,注意(坑)使用-L引入目錄(不知是否為必須),并且需模仿VS中配置下的link配置項,将用到的lib庫名稱寫在LIB配置項中。每一個lib檔案需要以-l開頭,并且不帶字尾.lib
如下為Test項目中的配置,可複制黏貼
INCLUDEPATH+=D:/OpenCV/opencv3/opencv/build/include\ D:/OpenCV/opencv3/opencv/build/include/opencv \ D:/OpenCV/opencv3/opencv/build/include/opencv2 LIBS+=-LD:/OpenCV/opencv3/opencv/build/x86/vc10/lib \ -lopencv_ts300d \ -lopencv_world300d |
(高能深坑2)見圖
測試過程中,-lopencv_ts300d行後的反斜杠\忘記添加,qmake沒有報錯,但是建構項目的時候總是報錯,錯誤類型是連結的時候的錯誤。。。百思不得其解。。。後來抱着試試看的态度添加上\,然後就神奇的好了!就好了~~~~後面展示小例程。靜下來分析,\的作用是同一行内容分行寫,如果忘了一個\,那麼後一行的内容就不在屬于上一行,就是說-lopencv_world300d沒有被包進LIB項中!!!大坑!
e) (坑)每次!記住是每次!修改.pro檔案後都要進行一次qmake,使配置生效
f) 小例子
#include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> using namespace std; using namespace cv; int main() { // cout<<"opencv"<<endl; Mat src=imread("E:/ToBe_Developer/Qt_Pro/ Jellyfish.jpg"); //在qt裡面讀取圖檔貌似隻支援絕對路徑 imshow("test",src); waitKey(0); //cout << "Hello World!" << endl; return 0; } |
g) 運作結果
成功!
總結:一個字!
膽大心細
===================================================
MinGW版本的配置方法,網上有很多,還沒有測試。如果需要跨平台開發,應該是要下載下傳MinGW版本的Qt,并下載下傳cmake重新自行編譯opencv,在進行配置。配置方法應該是大同小異,将已有code導入現有工程總使用,就是要讓現在的環境能夠找的到第三方庫。So,告訴他路徑。
==================================================
轉頭回來想,Qt的Opencv配置采用的是文本方式添加連結庫,是很常見的一種配置方式。但是對于從VS內建開發環境起步再過來的開發者對這一塊不是很熟悉,推薦多多學習一下這種方式。筆者也是初學者,不敢深入妄談。