您的位置:首页 > 编程语言 > Qt开发

[OpenCV]配置OpenCV的Qt开发环境

2014-01-27 15:35 405 查看
1下载所需工具

(1)QtCreator下载地址http://qt-project.org(建议下载最新版本,因为里面带的MinGW版本较高,我最开始使用Qt
4.7.4编译OpenCV-2.4.4一直报错,后来换成Qt5.0.1编译成功)

(2)OpenCV下载地址http://opencv.org/(不建议下载最新版本,最新版本的编译需要高版本的MinGW,不然在执行mingw32-make命令会报错)

(3)CMake下载地址http://www.cmake.org/cmake/resources/software.html

 

2安装QtCreator,过程很简单,一直下一步就OK

 

3安装OpenCV,设置解压路径就OK

 

4安装CMake,过程同样很简单(注意:(1)安装路径不能有中文和空格(2)勾选加入所有境变量中)

 

5目前最新的OpenCV版本,安装之后的目录下面有源码和个版本的lib和dll,不过为避免出现问题,还是自己编译

 

6
将C:\Qt\Qt5.0.1\Tools\MinGW\bin加入系统的Path环境变量(假设QtCreator安装在C盘)

 

7
打开CMake,使用CMake编译OpenCV。配置源码路径与生成的目标路径

(1)源码路径:要选择OpenCV安装目录下含有如下文件的文件夹

(2)目标路径:可以随意设置

 


8
点击Configure配置按钮。在弹出的对话框中选择MinGWmakefiles,其余选项保持默认,点击Finish按钮,开始编译



 

9CMake编译结束界面如下图,勾选生成列表中的WITH_OPENGL和WITH_QT两项,其他项最好不要改动



 

10
再次点击Configure按钮,红色消失



 

11
点击Generate按钮,生成makefile文件,成功后,底下会提示Generatingdone



 

12
打开cmd,进入刚才设置的目标路径(C:\OpenCV),输入mingw32-make命令开始编译



 

13此过程较为漫长,建议关掉杀毒软件可能会快些,在我的ThinkPadT420上耗时30分钟



 

14
执行mingw32-makeinstall,此过程大约需要1到2分钟



 

15下面开始配置QtCreator的OpenCV开发环境,拷贝下面三个文件夹放在同一个文件夹下(只需这三个目录,其余生成的文件和文件夹可以删除,以节省磁盘空间)

(1)OpenCV-2.4.4安装目录下的build/include目录

 


(2)CMake目标路径下,MinGW编译后的bin目录



(3)CMake目标路径下,MinGW编译后的lib目录

 


 

16
拷贝三个目录到同一目录后的结构如下图(我删除了原来的CMake目标目录中的其他目录,拷贝进来了include目录)



 

17
将bin目录添加到系统环境变量



 

18
至此QtCreator下的OpenCV开发环境已经配置好,下面在QtCreator下测试是否已经配置成功

 

19
打开QtCreator,新建一个空工程,然后添加一个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

备注:其实有种简单的做法,但是有个缺点是可能包含链接库较多

INCLUDEPATH+=C:\OpenCV\include\opencv\
                   C:\OpenCV\include\opencv2\
                   C:\OpenCV\include
LIBS+=C:\OpenCV\lib

 测试代码:

#include
<QtCore/QCoreApplication>

#include<opencv2/imgproc/imgproc.hpp>


#include<opencv2/highgui/highgui.hpp>


#include<iostream>




usingnamespacecv;


usingnamespacestd;




voidhelp(){


cout<<"\nDemonstrateCannyedgedetection\n"<<endl;


}




intedgeThresh=1;


Matimage,gray,edge,cedge;




//defineatrackbarcallback


voidonTrackbar(int,void*){


blur(gray,edge,Size(3,3));


//Runtheedgedetectorongrayscale


Canny(edge,edge,edgeThresh,edgeThresh*3,3);


cedge=Scalar::all(0);


image.copyTo(cedge,edge);


imshow("Edgemap",cedge);


}




intmain(intargc,char*argv[])


{


//QCoreApplicationa(argc,argv);


char*filename=argc==2?argv[1]:(char*)"fruits.jpg";


image=imread(filename,1);


if(image.empty()){


help();


return-1;


}


help();


cedge.create(image.size(),image.type());


cvtColor(image,gray,CV_BGR2GRAY);


//Createawindow


namedWindow("Edgemap",1);


//createatoolbar


createTrackbar("Cannythreshold","Edgemap",&edgeThresh,100,onTrackbar);


//Showtheimage


onTrackbar(0,0);


//Waitforakeystroke;thesamefunctionarrangeseventsprocessing


waitKey(0);


return0;


//returna.exec();


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: