天天看點

[OpenCV]OpenCV+QT Creator環境配置

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

[OpenCV]OpenCV+QT Creator環境配置
[OpenCV]OpenCV+QT Creator環境配置

2、  msvc版本的Qt配置類似VS,需要配置lib、include和bin目錄

a)        bin目錄一般在計算機環境變量path中配置,首次配置最後重新開機電腦或者登出一次使環境變量生效。

[OpenCV]OpenCV+QT Creator環境配置

b)        include和lib需要在工程中配置

c)        建立Test測試工程,工程目錄如下圖

[OpenCV]OpenCV+QT Creator環境配置

(坑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項中!!!大坑!

[OpenCV]OpenCV+QT Creator環境配置

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)        運作結果

成功!

[OpenCV]OpenCV+QT Creator環境配置

總結:一個字!

膽大心細

===================================================

MinGW版本的配置方法,網上有很多,還沒有測試。如果需要跨平台開發,應該是要下載下傳MinGW版本的Qt,并下載下傳cmake重新自行編譯opencv,在進行配置。配置方法應該是大同小異,将已有code導入現有工程總使用,就是要讓現在的環境能夠找的到第三方庫。So,告訴他路徑。

==================================================

 轉頭回來想,Qt的Opencv配置采用的是文本方式添加連結庫,是很常見的一種配置方式。但是對于從VS內建開發環境起步再過來的開發者對這一塊不是很熟悉,推薦多多學習一下這種方式。筆者也是初學者,不敢深入妄談。