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

Win7下配置OpenCV的Qt开发环境

2014-12-19 20:00 381 查看
本文章系转载,在参考原文的基础上实现本机环境的配置。原文地址为:http://blog.csdn.net/qiurisuixiang/article/details/8665278

一、前期需要准备的软件

(1)、Qt Creator,版本Qt5.1.1

(2)、CMake,版本3.1.0

(3)、opencv,版本2.4.10

二、安装Qt Creator、CMake,解压opencv。在安装CMake的过程中选择“将CMake加入环境变量中”,可选择只对本用户或者对计算机上的所有用户,安装路径中不要出现中文和空格。

三、添加环境变量

(1)、添加D:\Qt\Qt5.1.1\Tools\mingw48_32\bin到系统环境变量,具体路径按照自己的安装路径添加。具体步骤:右键点击“我的电脑”--“属性”--“高级系统设置”--“环境变量”,双击系统变量中的“Path”项,在变量值末尾加“;D:\Qt\Qt5.1.1\Tools\mingw48_32\bin”即可。

四、用CMake配置opencv源码,生成Mingw类型的makefile文件

(1)、解压完的opencv包含两个文件夹,build和source,其中source文件夹中存放的为opencv的源码,build文件夹中存放的是编译好的库文件(适用于VS的库)。在opencv目录下新建一个build_qt文件夹,保存编译生成的库文件,文件也可以建在自己喜欢的地方。打开CMake(cmake-gui),选择源码路径和目标路径,如下图所示:

点击Configure,选择Mingw类型的makefile,如下图所示:

Configure完成以后,选择WITH_QT和WITH_OPENGL,如下图所示:

如果在Configure的过程中出现错误,可能是由于CMake的版本和Qt的版本不匹配导致,一些路径如果出现“NOTFOUND”,请手动添加相应的路径。

(2)、点击Generate。

如果在Generate的时候出现QT_QMAKE_EXEC
add3
UTABLE NOTFOUND,那么是因为qmake的路径没有找到,可以将qmake的路径手动添加进来。例如:D:\Qt\Qt5.1.1\5.1.1\mingw48_32\bin。其他一些关于Qt5的“NOTFOUND”可以在目录:D:\Qt\Qt5.1.1\5.1.1\mingw48_32\lib\cmake下面找到,需要手动添加进去。添加完成以后再次Configure,Generate。至此生成makefile完成。

五、编译opencv源码

点击“开始”,输入cmd,打开命令行终端。切换到目录build_qt,输入mingw32-make,如下图所示:

编译完成以后,输入mingw32-make install,这样会将生成的库以及需要的头文件拷贝到install文件夹下,install文件夹为自动生成。这样在使用opencv库的时候就可以将install文件夹下的内容拷贝到需要的地方。至此,Qt版本的opencv库编译完成。

六、建立Qt测试程序,测试opencv库

(1)、拷贝install文件夹下include文件夹和x64/mingw文件夹下的bin文件夹、lib文件夹到E:\opencv_mingw\,可以根据个人爱好将库放在不同的位置。

将bin目录添加进环境变量:

(2)、打开Qt Creator,创建一个Qt控制台程序。在pro文件中添加opencv的头文件包含和库路径:

INCLUDEPATH += E:\opencv_mingw\include \
E:\opencv_mingw\include\opencv \
E:\opencv_mingw\include\opencv2

LIBS += E:\opencv_mingw\lib\libopencv_calib3d2410.dll.a \
E:\opencv_mingw\lib\libopencv_contrib2410.dll.a \
E:\opencv_mingw\lib\libopencv_core2410.dll.a \
E:\opencv_mingw\lib\libopencv_features2d2410.dll.a \
E:\opencv_mingw\lib\libopencv_flann2410.dll.a \
E:\opencv_mingw\lib\libopencv_gpu2410.dll.a \
E:\opencv_mingw\lib\libopencv_highgui2410.dll.a \
E:\opencv_mingw\lib\libopencv_imgproc2410.dll.a \
E:\opencv_mingw\lib\libopencv_legacy2410.dll.a \
E:\opencv_mingw\lib\libopencv_ml2410.dll.a \
# E:\opencv_mingw\lib\libopencv_nonfree2410.dll.a \
E:\opencv_mingw\lib\libopencv_objdetect2410.dll.a \
# E:\opencv_mingw\lib\libopencv_ocl2410.dll.a \
# E:\opencv_mingw\lib\libopencv_photo2410.dll.a \
# E:\opencv_mingw\lib\libopencv_stitching2410.dll.a \
# E:\opencv_mingw\lib\libopencv_superres2410.dll.a \
# E:\opencv_mingw\lib\libopencv_ts2410.a \
# E:\opencv_mingw\lib\libopencv_video2410.dll.a \
# E:\opencv_mingw\lib\libopencv_videostab2410.dll

main.cpp中代码如下:
#include <QCoreApplication>
#include <stdio.h>
#include "core/core.hpp"
#include "highgui/highgui.hpp"

using namespace std;
using namespace cv;

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

Mat im;
im=imread("Test.jpg");
if(!im.data)
{
printf("Empty Image!\n");
return -1;
}
namedWindow("Hello OpenCV",WINDOW_AUTOSIZE);
imshow("Hello OpenCV",im);
waitKey(0);

return a.exec();
}


执行结果如下图所示:

到此opencv在Qt环境下的编译和测试已经完成,错误之处还请指正,共同学习。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: