本文主要讲述了在Window平台使用Qt5.14_MinGW64及CMake进行OpenCV环境搭建的完整流程,文章描述了编译OpenCV的详细步骤,并对自己过程中出现的相关问题及解决方法进行了总结,相关软件可在文中网盘链接进行下载。
这边选择了opencv_4.5.1,我的Qt版本是5.14.1在搭载当前最新的opencv_4.6.0时,总会出现一些问题也没有找到解决方法,后面使用opencv_4.5.1版本是比较稳定且未出现问题,所以也是建议使用该版本的opencv。
Windows环境:Win10_64bit
Qt构建环境:Qt5.14_MinGW_64bit
CMake版本:cmke_3.24.1
OPenCV版本:opencv_4.5.1
以下网盘链接中有CMake的安装包及opencv源码:
我的百度网盘链接:https://pan.baidu.com/s/1utL1wKXifmCbMq5Cv6pFKQ
提取码:xxcj
提示:对网盘中的压缩包进行解压后,可以看到\CMake+OpenCV\opencv-4.5.1_Source.cache\ffmpeg\下有以下文件(从官网下载的是没有这些文件的):
解决了该版本源码CMake Configure时无法正常下载opencv_videoio_ffmpeg.dll及opencv_videoio_ffmpeg_64.dll的问题,详情见下文问题解决。
在CSDN上就有很多图文并茂的博客来展示编译OpenCV的步骤,这边可以参考这篇文章:Qt配置OpenCV教程,亲测已试过(详细版)。根据所参考的博文,如果使用的是我上面网盘链接中的文件,可以跳过软件安装部分,接下来进入使用CMake开始编译OpenCV源码这一步骤,这里总结下编译步骤:
1.将Qt编译器和CMake的bin路径添加到系统环境变量:
2.打开CMake,配置源码及目标路径,勾选Advanced,然后第一次点击Configure;
3.选择MingW Makefiles,选中Specify native compilers,Next后选择相应的编译器,点击Finish;
这边编译器可以通过QtCreator工具–>选项–>Kits–>编译器处进行确认:
4.Configuring done后对WITH_OPENGL和WITH_QT进行勾选,第二次点击Configure;
5.Configuring done后修改并确认出现红色条目的Value无误后(一般不需要修改),第三次点击Configure;
6.Configuring done后发现界面红色消失,点击Generate;
7.进入你在上述第2步中创建的opencv_Build文件夹内,按住shift键同时点击鼠标右键,点击在此处打开Powershell窗口,进入Windows Powershell(看到有的是进入cmd,也是一样的),输入以下命令后按回车;
//mingw32-make //不使用多线程
mingw32-make -j 8 //让CPU进行多任务处理,可以加快编译速度
注意事项:这里的数字8可以进行修改,如果你的电脑低于4核CPU-8线程,就需要查看你的电脑线程数后进行相应的数字修改(我自己的电脑是4线程就改为了 -j 4,公司电脑是12线程就改为了 -j 12),参考:查看当前自己电脑的线程数;
8.等待100%完成之后,输入以下命令后按回车;
mingw32-make install
1.opencv_videoio_ffmpeg.dll及opencv_videoio_ffmpeg_64.dll下载超时
如果使用官网下载的opencv源码进行Cmake,在Configure过程中无法访问外网的话就会出现这个问题,忽略这个问题也是能CMake成功的,但是后期在Qt中使用OpenCV是无法进行视频播放的(我就出现了无法播放视频的问题,后面查找到就是这时候埋下的炸弹,解决也是花了不少时间),这边建议直接用我网盘链接中的源码进行编译,其中已经对相关的文件进行了下载并进行了名称处理。当然,出现类似dll下载超时的问题,具体的解决方法可参考该博客:CMake编译OpenCV3.4.6时opencv_ffmpeg.dll等下载失败的解决办法
本文到此也是大功告成了,后面就可以在Qt中进行OpenCV的使用了,具体的使用方法这里就不作介绍了,可以查看文末的参考博客。这个环境的配置对于初学者来说还是不容易的,遗漏到一些内容后遇到问题了进行查找都是比较麻烦,所以就需要我们在这过程中细心一点。本文也是对我此次学习的总结分享,希望对大家能够有所帮助。
hello:
共同学习,共同进步,如果还有相关问题,可在评论区留言进行讨论。
参考博客:
Qt配置OpenCV教程,亲测已试过(详细版)
查看当前自己电脑的线程数
CMake编译OpenCV3.4.6时opencv_ffmpeg.dll等下载失败的解决办法
Qt5.11.2+CMake+opencv配置及问题总结
在QT中使用OpenCV(简单测试例程)
使用OpenCV在Qt控件上播放视频