Windows平台Qt添加OpenCV模块

最近科技立项的项目需要同时用到QPainter来实现Canvas功能,同时要用OpenCV来识别绘图,需要在Qt里添加OpenCV模块
Windows平台Qt添加OpenCV模块_第1张图片
opencv默认支持vc系列的编译器,在下载的时候就有build和source俩文件夹,build里就是默认支持的几种形式,可以看到x64即64位系统中可以支持vc14和vc15,如下图
Windows平台Qt添加OpenCV模块_第2张图片
在之前用VS的时候只要添加路径就行(详见链接)
而很不幸的是QT有自己的MinGW系列编译器,我们需要用CMake再编译一个类似于build的文件夹来作为Qt的依赖,即蓝框中的MinGWver(即MinGW-version,我自己起的名字,文件夹名字没有规范,毕竟build已经被占了)
具体操作:

CMake下载

windows上的CMake大部分是其他编译器带来的,为保险还是单独下载一个
CMake官网下载地址:
https://cmake.org/download/
正常安装即可

Qt下载

也是正常下载安装,但要记得自己装在哪个文件夹,后面会多次用到

环境变量配置1

首先将自己装的CMake和Qt里的两个文件夹添加到系统的Path里
Windows平台Qt添加OpenCV模块_第3张图片
关机重启

配置CMake

打开CMake,source目录就是你下载的OpenCV文件夹下的sources文件夹,build目录就随便取,记住就行
Windows平台Qt添加OpenCV模块_第4张图片
随后要经过两次或以上Configure和一次Generate
由于需要用MinGW编译,第一次Configure时配置如下:
Windows平台Qt添加OpenCV模块_第5张图片
next后,选择MinGW Makefiles
多提一嘴,当时在Linux上时我们用的时如下的Unix Makefiles,是相当于直接把OpenCV编译后的目录添加到了Linux的系统环境变量,所以我们在Linux上的操作要简单许多,但Qt只认MinGW,所以我们也得用MinGW来编译
Windows平台Qt添加OpenCV模块_第6张图片
Next后,选择你Qt/Tools/mingw730_64/bin/gcc.exe作为C语言编译器,Qt/Tools/mingw730_64/bin/g++.exe作为C++编译器,这个“730_64”可能不太一样,前面的是MinGW版本,后面数值代表64位系统,只要保证整个工程编译的时候用的MinGW处处版本一致就行
Windows平台Qt添加OpenCV模块_第7张图片
等待第一次Configure完成后,选中“WITH_OPENGL”、“WITH_QT”,将“WITH_IPP”取消。然后再次点【Configure】
第二次Configure可能报错,我没遇到过,如果遇到可以按如下方式更改红色项(改完还是红色,但不会报错,改完还报错就是地址没改对):
Windows平台Qt添加OpenCV模块_第8张图片
再有报错也是一样解决,直到不再报错为止
随后Generate

编译OpenCV

进入刚刚配置好的文件夹(被我命名为MinGWver)打开终端

mingw32-make
mingw32-make install

注意:就算前面用的是64位下的MinGW730_64,这里同样是用mingw32-make

环境变量配置2

把编译后,目标目录下的bin目录路径,即 **C:\opencv\MinGWver\bin,C:\opencv\MinGWver\install\x64\mingw\bin **添加到Path环境变量中
Windows平台Qt添加OpenCV模块_第9张图片
关机重启

Qt项目添加

对于Qt工程,我们只需要在.pro文件加上如下代码,并保证整个工程编译的时候用的MinGW处处版本一致就行

INCLUDEPATH += C:\opencv\build\include
               C:\opencv\build\include\opencv
               C:\opencv\build\include\opencv2
LIBS += C:\opencv\MinGWver\lib\libopencv_*.a

注意改一下路径,LIBS里的 * 是通配符,有兴趣可以看看这些文件(通配符真伟大)

你可能感兴趣的:(Qt开发,qt5,opencv)