OpenCV3.0 + QT5.x 环境搭建

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

Comments
Write a Comment