QT中编译和使用OPENCV
一、编译
之前用VS2010编译的opencv可以在qt中使用,就没有去管,最近发现有点bug,遂想用QT,准确地说是用mingw重新编译下。
在opencv项目主页下载欲编译的版本,我用的是2.1,地址:http://sourceforge.net/projects/opencvlibrary/
网上很多教程都是讲使用,讲编译的很少,这篇倒是道出了一点门道:http://blog.csdn.net/neyes/article/details/5908137
1.先要把D:\QtSDK\mingw\bin放入环境变量(QT安装目录不同会不同)
2.使用CMake-gui,选择mingw编译,configure&generate
3.使用mingw32-make.exe对generate出来的目录进行编译。
4.在编译过程中发现了一个错误:/src/highgui/../../3rdparty/lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x6e1e): undefined reference to `_Unwind_SjLj_Unregister'
经查找发现是2.1一个通病,需要将http://pyopencv.googlecode.com/files/libvideoInput.a下载的文件替换原文件。
二、使用
使用的方法网上就有很多了,在pro文件中写入代码
opencv_dir=C:\OpenCV2.1
INCLUDEPATH += $$opencv_dir\include\opencv210LIBS += $$opencv_dir\lib\libcv.dll.a \$$opencv_dir\lib\libcv210.dll.a \$$opencv_dir\lib\libcvaux210.dll.a \$$opencv_dir\lib\libcxcore210.dll.a \$$opencv_dir\lib\libhighgui210.dll.a
这样基本就可以使用了。
三、其他参考网址
1.build fails on MinGW: libvideoInput, SSE, examples: https://code.ros.org/trac/opencv/ticket/587
2.在Qt中使用OpenCV库:http://www.opencv.org.cn/index.php/%E5%9C%A8Qt%E4%B8%AD%E4%BD%BF%E7%94%A8OpenCV%E5%BA%93
3.Mingw编译最新版本的OpenCV代码:http://www.opencv.org.cn/index.php/Mingw%E7%BC%96%E8%AF%91%E6%9C%80%E6%96%B0%E7%89%88%E6%9C%AC%E7%9A%84OpenCV%E4%BB%A3%E7%A0%81