OpenCV网站上对windows只提供了VS的预编译解压包, 因此需要自己编译OpenCV的源码, 以在QT环境下使用. OpenCV的编译对编译器版本要求比较严格, 因此在编译时绕了不少弯路, 浪费了不少时间, 现在把所得经验分享出来.本文末附编译好的OpenCV3.0, 方便大家.
编译环境:
OpenCV 3.0
QT5.3.2 with MinGW4.8.2(32bit)
CMake2.8.8
Windows7 32bit
注: opencv3.1及以上不再支持32位. 本文编译流程在Win8及更高版本Windows下均有兼容性问题. 但编译好的OpenCV可以在更高版本Windows上完美使用. 本文截图在Win10上完成.
编译步骤:
1.1 安装CMake2.8.8, 安装QT5.3.2并确认MinGW版本, 下载并安装OpenCV WinPack
1.2 将QT下的相应目录添加进Path变量
2.1 打开CMake后勾选Grouped, Advanced, 并选择安装的OpenCV源代码目录和编译生成目录.
2.2 点击Configure, 出现下图对话框. 选择MinGW Makefiles, 选中Specify native compilers
2.3 继续下一步, 弹出如下对话框, 选择编译器, C编译器选择QT安装目录下的.\Tools\mingw530_32\bin\gcc.exe. C++编译器选择QT安装目录下的.\Tools\mingw530_32\bin\g++.exe, 继续下一步.
2.4 点击Finish, 等待预编译完成. 过程中可能会报错 Error in configuration process, project files may be invalid. 忽略即可.
3.1 展开WITH列表, 将WITH_IPP去除勾选, 勾选WITH_QT和WITH_OPENGL
3.2 点击Generate, 等待编译完成
4.0 打开OpenCV源文件文件夹中CMake目录下的Opencvcompileroptions.cmake文件
搜索找到add_extra_compiler_option(-Werror=non-virtual-dtor), 在该行前面加上#号注释掉这一行. 在OpenCV3.0版本下该行为67行.
5.1 打开命令行管理器进入生成文件夹, 执行
mingw32-make
5.2 执行完成后继续输入
mingw32-make install
等待进度完成之后, 编译工作便完成了
我们将目标文件夹中的install\include文件夹和bin及lib文件夹复制出来, 这些便是以后进行OpenCV开发所需要的文件.此处我将文件复制到了一个命名为FilesNeededByOpenCV的文件夹中, 将此文件夹中的bin文件夹添加到系统Path变量中.
可将此文件夹打包, 用于其他版本Windows环境下的开发.
如果一切顺利, 则配置完成.
测试:
新建一个QT项目, 在pro文件中加入
INCLUDEPATH += "C:\FilesNeededByOpenCV\include\opencv" INCLUDEPATH += "C:\FilesNeededByOpenCV\include\opencv2" INCLUDEPATH += "C:\FilesNeededByOpenCV\include" LIBS += "C:\FilesNeededByOpenCV\lib\libopencv_*.a"
其中文件路径替换为你上步操作实际选择的文件夹
#include <opencv2/opencv.hpp> using namespace cv; int main(){ Mat srcImage = imread("1.jpg"); imshow("IMAGE", srcImage); waitKey(0); }
运行成功!
最后:
附上打包的预编译文件
https://drive.google.com/open?id=0B7VyGeuv2EoGUmJuSUxPMVB6Z2s
网友评论