Qt5.11.2+CMake+opencv配置及问题总结

最近需要在Qt中使用opencv,查阅了各位大佬们的文章,前后遇到了很多教程中未提及的问题,主要是CMake opencv时遇到的,查找和筛选了大量资料,一点点找出了原因和解决办法。此处附上大佬们的原文链接,以及需要的部分资源。希望这篇文章能帮助大家更快捷地找到答案,更顺利地完成配置。

1.主要解决的问题:

要在Qt中使用opencv,需要用CMake编译生成Qt可用的opencv库,过程中主要遇到了以下问题:

1.cMake安装及环境变量设置;
2.VTK源码更改——解决cmake编译opencv时报找不到Qt5_DIR的问题;
3.生成时opencv_ffmpeg_64.dll、opencv_ffmpeg.dll、ffmpeg_version.cmake和ippicv_2017u3_win_intel64_general_20170822.zip文件无法下载的问题;
4.执行mingw32-make时报错:

mingw32-make[2]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_dshow.cpp.obj] Error 1
mingw32-make[1]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2

参考链接:
链接: https://blog.csdn.net/wzj0808/article/details/79388446.
链接: https://blog.csdn.net/webzhuce/article/details/79960512.
链接: https://blog.csdn.net/fengxueniu/article/details/77478669.
链接: http://blog.csdn.net/fengxueniu/article/details/77478669.
链接: https://blog.csdn.net/KayChanGEEK/article/details/79919417.

资源文件
1.opencv_ffmpeg.dll和opencv_ffmpeg_64.dll:
: 链接: https://download.csdn.net/download/qq_39040678/12480593.
2.ffmpeg_version.cmake和ippicv_2017u3_win_intel64_general_20170822.zip:
: 链接: https://download.csdn.net/download/qq_39040678/12484220.

本文所用版本:
Qt:5.11.2
opencv:3.4.1
cMake:3.17.1

2.配置系统环境变量

在系统环境变量Path中添加Qt路径和CMake安装路径,删除已安装过的mingw路径:
在这里插入图片描述若配置CMake时第一步就报错,检查一下环境变量是否正确。

3.CMake opencv Configure

参考网站:链接: https://blog.csdn.net/wzj0808/article/details/79388446.
选择opencv源码路径路径,以及buildopencv存储的位置。
Qt5.11.2+CMake+opencv配置及问题总结_第1张图片 CMAke修改配置:
勾选WITH_OPENGL,WITH_QT,确认WITH_IPP是未勾选状态。点击左下角configure:
Qt5.11.2+CMake+opencv配置及问题总结_第2张图片此时会出现红色报错,CMake配置过程中出现找不到Qt5_DIR的一系列文件:
在这里插入图片描述为解决这个问题,此处更改VTK源码。

VTK源码更改——解决cmake opencv找不到Qt5_DIR的问题

参考网站:链接: https://blog.csdn.net/webzhuce/article/details/79960512.

解决方法:进入CMakeLists.txt中,在第二行添加:
set(Qt5_DIR “F:/softWare/codeApp/Qt/Qt5.11.2/5.11.2/msvc2015_64/lib/cmake/Qt5”)
在这里插入图片描述再次点击configure,即可完成配置。
Qt5.11.2+CMake+opencv配置及问题总结_第3张图片

4.CMake opencv Generate

点击Generate开始生成。然后惊喜来了:
Qt5.11.2+CMake+opencv配置及问题总结_第4张图片查了一下发现生成的时候需要在外网来下载opencv_ffmpeg_64.dll、opencv_ffmpeg.dll、ffmpeg_version.cmake和ippicv_2017u3_win_intel64_general_20170822.zip几个文件,无法连接外网自然就下载失败了,此处就手动下载后放在相应的文件夹下。

opencv_ffmpeg_64.dll、opencv_ffmpeg.dll等文件无法下载的解决方法

参考网站:链接: https://blog.csdn.net/KayChanGEEK/article/details/79919417.
(这位KayChanGeek大佬写的很可爱,非常感谢他的文章,受益匪浅)

缺失的四个文件:

1.进入opencv–>sources–>.cache–>ffmpeg文件夹下,可以看到三个0KB文件,就是下载失败的文件,先不要删除,之后需要用到文件名:
3b90f67f4b429e77d3da36698cef700c-ffmpeg_version.cmake
b8120c07962d591e2e9071a1bf566fd0-opencv_ffmpeg.dll
dc9c50e7b05482acc25d6ce0ac61bf1d-opencv_ffmpeg_64.dll
2.opencv–>sources–>3rdparty–>ippicv文件夹下缺失:
ippicv_2017u3_win_intel64_general_20170822.zip

资源地址

opencv_ffmpeg.dll和opencv_ffmpeg_64.dll:
链接: https://download.csdn.net/download/qq_39040678/12480593.
ffmpeg_version.cmake和ippicv_2017u3_win_intel64_general_20170822.zip:
链接: https://download.csdn.net/download/qq_39040678/12484220.

文件重命名
下载好四个文件后,进入opencv/ources/.cache/ffmpeg文件夹,将下载的opencv_ffmpeg.dll、opencv_ffmpeg_64.dll和ffmpeg_version.cmake重命名为文件夹中0KB文件对应的名字。举个栗子,我的是:
opencv_ffmpeg.dll 改为
b8120c07962d591e2e9071a1bf566fd0-opencv_ffmpeg.dll

文件放置

  1. 将改好名字的三个文件放入opencv–>sources–>.cache–>ffmpeg文件夹,替换原0KB文件:

Qt5.11.2+CMake+opencv配置及问题总结_第5张图片

  1. 将ippicv_2017u3_win_intel64_general_20170822.zip放入opencv–>sources–>3rdparty–>ippicv文件夹下:
    Qt5.11.2+CMake+opencv配置及问题总结_第6张图片点击Generate开始生成,这次就成功了。呼~

5.执行mingw32-make

由cmd进入buildopencv文件夹,执行mingw32-make -v查看变量是否生效:
Qt5.11.2+CMake+opencv配置及问题总结_第7张图片这样就是生效了。然后执行mingw32-make指令:

Qt5.11.2+CMake+opencv配置及问题总结_第8张图片
到50%时出现两处报错:

mingw32-make[2]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_dshow.cpp.obj] Error 1
mingw32-make[1]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2

解决方法

参考网站:
链接: http://blog.csdn.net/fengxueniu/article/details/77478669.
打开opencv的源码文件cap_dshow.cpp,在#include "DShow.h"这行的上面加一行#define NO_DSHOW_STRSAFE:
Qt5.11.2+CMake+opencv配置及问题总结_第9张图片重新执行mingw32-make指令:
Qt5.11.2+CMake+opencv配置及问题总结_第10张图片终于成功了。

6将生成的opencv的bin添加到系统环境变量

Qt5.11.2+CMake+opencv配置及问题总结_第11张图片

7.进入Qt配置

在.pro文件中加入:
Qt5.11.2+CMake+opencv配置及问题总结_第12张图片
.cpp中加入头文件和命名空间:

在这里插入图片描述

8.写个小程序测试一下

Qt5.11.2+CMake+opencv配置及问题总结_第13张图片
成功!!

你可能感兴趣的:(cmake,opencv,qt)