windows下QT creator+openCV配置和使用

網上的教程都是教怎麼用minGW和cmake編譯opencv而後再導入,簡直太麻煩了,不利於新手,這裏有個簡單的方法。ios

1.安裝qt sdkwindows

我裝的是qt 5.3 msvc版32位,內置了qt creator,直接用windows帶的msvc編譯器。ide

2.安裝opencv
測試

我裝的是opencv2.4.9 for windows,解壓到D盤根目錄下了。ui

注意opencv for windows解壓後就有個build文件夾,說明是用msvc編譯器編譯好的,咱們的qt用的是msvc編譯器的話就能夠直接導入連接庫和頭文件了,不須要網上那些人所說的要搞minGW和cmake編譯,若是你裝的qt是minGW版的就須要用cmake從新編譯一遍opencv,相關教程一搜一大把。spa

3.在qt creator中建一個標準的控制檯C++工程項目。
.net

隨便建哪一種項目都是能夠的,這裏爲了方便直接創建最簡單的C++控制檯項目。debug

4.配置opencv的環境變量(此步貌似可省,可是配個環境變量老是保險的)
3d

在另外一篇博客裏講過http://blog.csdn.net/u012234115/article/details/38612977code

5.修改工程的pro文件。

要包含頭文件目錄和靜態鏈接庫目錄,在裏面加入

INCLUDEPATH+=d:/opencv/build/include/opencv \
                    d:/opencv/build/include/opencv2 \
                   d:/opencv/build/include
LIBS+=D:\opencv\build\x86\vc12\lib\opencv_ml249d.lib
LIBS+=D:\opencv\build\x86\vc12\lib\opencv_calib3d249d.lib
LIBS+=D:\opencv\build\x86\vc12\lib\opencv_contrib249d.lib
LIBS+=D:\opencv\build\x86\vc12\lib\opencv_core249d.lib
LIBS+=D:\opencv\build\x86\vc12\lib\opencv_features2d249d.lib
LIBS+=D:\opencv\build\x86\vc12\lib\opencv_flann249d.lib
LIBS+=D:\opencv\build\x86\vc12\lib\opencv_gpu249d.lib
LIBS+=D:\opencv\build\x86\vc12\lib\opencv_highgui249d.lib
LIBS+=D:\opencv\build\x86\vc12\lib\opencv_imgproc249d.lib
LIBS+=D:\opencv\build\x86\vc12\lib\opencv_legacy249d.lib
LIBS+=D:\opencv\build\x86\vc12\lib\opencv_objdetect249d.lib
LIBS+=D:\opencv\build\x86\vc12\lib\opencv_ts249d.lib
LIBS+=D:\opencv\build\x86\vc12\lib\opencv_video249d.lib
LIBS+=D:\opencv\build\x86\vc12\lib\opencv_nonfree249d.lib
LIBS+=D:\opencv\build\x86\vc12\lib\opencv_ocl249d.lib
LIBS+=D:\opencv\build\x86\vc12\lib\opencv_photo249d.lib
LIBS+=D:\opencv\build\x86\vc12\lib\opencv_stitching249d.lib
LIBS+=D:\opencv\build\x86\vc12\lib\opencv_superres249d.lib
LIBS+=D:\opencv\build\x86\vc12\lib\opencv_videostab249d.lib
以上加入的是debug版本的庫,若是要release版本的就把後面的d去掉。其中/和\這兩種斜槓均可以表示路徑,可是不一樣路徑換行分隔必須用\,INCLUDEPATH和LIBS等均可以一次加多條或者一次加一條,注意格式

加完了注意要qmake一下。

6.代碼

main.cpp

#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main(int argc,char **argv)
{

//    IplImage *pImg=cvLoadImage("D:/codetest/qttest/main/HelloWorld.png");
//    cvShowImage("test",pImg);
    cout<<"opencv"<<endl;
    Mat src=imread("D:/codetest/qttest/main/laura.jpg");  //在qt裏面讀取圖片貌似只支持絕對路徑
    imshow("test",src);
    waitKey(0);
    return 0;
}
老版和新版的opencv API均可以用了,注意在qt裏讀圖片好像不能用相對路徑,若是是gui程序的話也許能夠放在資源文件裏再用相對路徑,未測試。

7.效果


古墓麗影勞拉大姐霸氣鎮樓~