Qt - OpenCV的安装与配置 (win7 64 bit + OpenCV3.0 + minGW32)
此博客始创于:http://blog.csdn.net/lys211
转载请注明出处
想在QT中使用OpenCV来实现连续图片转成视频的功能,于是打上了OpenCV的主意
安装OpenCV的过程也是充满了曲折,但是最终还是安装成功了,现记录安装过程,以防系统重装后傻眼。
感谢以下前辈的分享:
本机已经安装QT 5.4.0
如果你喜欢64bit QT,那么 QT的下载地址是:
http://sourceforge.net/projects/qtx64/?source=typ_redirect
从OpenCV下载有OpenCV 3.0.0-beta
OpenCV官网:
http://opencv.org/
从CMake下载cmake-3.2.0-rc2
安装CMake的的时候,注意安装路径不能有中文和空格, 在安装过程中,勾选加入所有环境变量()
以上步骤完成后,开始配置环境变量
主要是将
E:\Qt\QT-5.4.0-Rel-MinGW491\Tools\mingw491_32\bin 添加到系统环境变量中
1.生成Makefiles
打开CMake,配置源码路径和生成物的目标路径:
点击Configure,在弹出的框中选择MinGW Makefiles ,并勾选 Specify native compilers:
接着配置C和C++编译器路径:
点击finish。这里CMake会自动开始配置。
过程会出错,因为编译的是OpenCV3.0,所以不能勾选WITH_IPP:
然后勾选WITH_OPENGL和WITH_QT
继续点击Configure,成功会如以下显示:
点击Generate,生成MakeFiles成功。
2.编译OpenCV
到
E:\OpenCV\source\opencv-3.0.0-beta\sources\cmake 下找到 OpenCVCompilerOptions.cmake
打开它并找到
add_extra_compiler_option(-Werror=non-virtual-dtor)
将它注释掉,变成:
#add_extra_compiler_option(-Werror=non-virtual-dtor)
(以上这一步是为了规避掉我在编译过程中遇到的问题)
返回到:E:\OpenCV\source\opencv-3.0.0-beta
在这个路径下
按住键盘的shift键,然后右键鼠标,打开cmd窗口:
在命令行输入 mingw32-make
这个过程比较久,大概30分钟,因电脑而异。编译完成后,如下图示。然后输入 mingw32-make install 进行安装:
大约两分钟后,安装完成。
3.配置环境
将include文件夹复制到一个自定义路径中:
E:\OpenCV\necessary_file
-2.CMake目标路径 下的bin文件夹
复制到 :
E:\OpenCV\necessary_file
-3.CMake目标路径 下的lib文件夹
复制到 :
E:\OpenCV\necessary_file
最后文件:
E:\OpenCV\necessary_file 应该如下示:
然后将路径
E:\OpenCV\necessary_file\bin 添加到 系统环境变量 中。
--------------------------------------------------------------------------------------
到此QT Creator下的OpenCV开发环境已经配置好,剩下的就是测试是否配置成功。
从QT新建一个空的工程 OpenCV_Test
在 OpenCV_Test.pro 里面添加:
INCLUDEPATH+=E:/OpenCV/necessary_file/include/opencv \
E:/OpenCV/necessary_file/include/opencv2 \
E:/OpenCV/necessary_file/include
LIBS += -LLIBS += -L E:/OpenCV/necessary_file/lib/libopencv_*.a
注:最好是用到什么库就链什么库。这里添加 LIBS += -L E:/OpenCV/necessary_file/lib/libopencv_*.a 这句可能会导致链入的库过多,但是为了能保证编译通过,只能这么加了。
在main.cpp里添加:
#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
int main(int argc, char *argv[])
{
//声明IplImage指针
IplImage *pImg;
//载入图片
pImg = cvLoadImage("E:/Qt/image/bg/1d60857569.jpg", 1);
//创建窗口
cvNamedWindow("Image",1);
//显示图像
cvShowImage("Image",pImg);
//等待按键
cvWaitKey(0);
//销毁窗口
cvDestroyWindow("Image");
//释放图像
cvReleaseImage(&pImg);
return 0;
}
实现的效果为:
配置成功!