[OpenCV安装]Qt+OpenCV+MinGW+CMake编译安装详细教程

一、软件下载

1.1 MinGw安装

因为我们要安装Qt(官网下载即可),所以顺便就把MinGw安装组件给选上就行了,其他的看自己需求,编译OpenCV选这个就够了。

[OpenCV安装]Qt+OpenCV+MinGW+CMake编译安装详细教程_第1张图片

还有一种方法就是,直接下载MinGw。

1.2 OpenCV安装包

OpenCV下载链接
Opencv安装包直接去官网下载就可以了,这里根据自己的项目要求来进行版本的选择,一般来说,版本号之间会有较大差别,版本号之内差别较小,目前大都使用OpenCV-3.x.x。

1.3 CMake工具安装

CMake下载地址

这里根据自己的平台进行相应的选择即可。

[OpenCV安装]Qt+OpenCV+MinGW+CMake编译安装详细教程_第2张图片
然后进行安装,按照步骤一步一步进行即可。
[OpenCV安装]Qt+OpenCV+MinGW+CMake编译安装详细教程_第3张图片
到目前为止,我们就下载完所有需要的工具了。

1.4 版本选择

博主下载的各个版本分别为

MinGW-5.3.0
OpenCV-3.4.9
CMake-3.16.5

1.5 注意事项

安装完软件不要忘记把地址添加到环境变量中并使其生效。

二、软件安装

2.1 CMake软件文件配置

按步骤分别选择OpenCV的下载路径和安装路径,最后点击Config按钮进行配置。
[OpenCV安装]Qt+OpenCV+MinGW+CMake编译安装详细教程_第4张图片

2.2 确认生成路径

弹出窗口是否确认所选Build路径,点击Yes即可。

2.3 选择编译方式

选择第二项Specify native compilers,然后点击Next即可。

[OpenCV安装]Qt+OpenCV+MinGW+CMake编译安装详细教程_第5张图片
选择之前MinGW安装目录下的bin目录,分别选择gccg++编译器。注意这里应该选择32位版本的编译器。

用之前安装Qt的方式安装的,编译器目录为E:\ProgramFile\Qt\Tools\mingw\bin

[OpenCV安装]Qt+OpenCV+MinGW+CMake编译安装详细教程_第6张图片
使用VS和Mingw配置的区别也就在这里,选择对应的就行,所以用VS也是一样的。

2.4 开始配置

完成上一步之后,点击Config,成功之后,按需还要选择组件,然后点击Generate。如果之后还有红色的,最简单的方式就是再次点击Generate按钮进行再次生成。待下方显示Generating done,配置就结束了。

注意: 另外必须要勾选下图中的 WITH_QT,以使CMake编译出可以供Qt使用的库文件(个人认为这样才会使cmake去调用qt中的qmake指令)。

[OpenCV安装]Qt+OpenCV+MinGW+CMake编译安装详细教程_第7张图片

三、编译安装

3.1 MinGW编译OpenCV

打开shell窗口,cd到opencv的安装目录,在命令行中输入以下指令进行编译

mingw32-make

或者也可以输入

mingw32-make -j4

-j后面的数字表示用多少线程进行编译,根据自己的电脑性能进行选择,不指定线程的话,默认使用单线程编译。

3.2 MinGW安装OpenCV

上述编译完成后,在命令行输入以下指令进行安装

mingw32-make install

这样,OpenCV就安装好了,可以直接调用进行使用了

四、问题总结

因为碰到问题时顾着解决,有些忘记截图了,有些问题重新编译也无法重现,只能说一下后面出现问题的一些解决方案。当然也有些问题没放出来,因为只要你前面软件安装这些都没问题,别的错基本也不会出现,太多容易搞蒙。

4.1 多线程编译错误

如果使用了多线程编译,导致错误,但是错误的信息不明确,如:

Makefile:161: recipe for target 'all' failedmingw32-make: *** [all] Error 2

解决方案:

使用单线程编译

mingw32-make

4.2 RC 错误

... windres.exe: unknown option -- W ...

或者

FORMAT is one of rc, res, or coff, and is deduced from the file nameextension if not specified.  A single file name is an input file.No input-file is stdin, default rc.  No output-file is stdout, default rc.

解决方案:

在 cmake-gui 编译配置中:取消勾选 ENABLE_PRECOMPILED_HEADERS

然后重新 Configure-Generate-mingw32-make

4.3 出现sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA 错误

...opencv/sources/modules/videoio/src/cap_dshow.cpp...... 'sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA' was not declared in this scope ...

或者

Makefile:161: recipe for target 'all' failedmingw32-make: *** [all] Error 2

解决方案:

修改...\opencv\sources\modules\videoio\src\cap_dshow.cpp文件,在#include "DShow.h"这行的上面加一行#define NO_DSHOW_STRSAFE,如:

#define NO_DSHOW_STRSAFE#include "DShow.h"

然后重新 Configure-Generate-mingw32-make

4.4 opencv-python安装失败

因为每个人电脑环境不同,正常不会出这种问题,但是自己可以分析解决,无非是要建立opencv-python库。

[OpenCV安装]Qt+OpenCV+MinGW+CMake编译安装详细教程_第8张图片
解决方案:

取消编译opencv-python
在这里插入图片描述
或者取消生成

[OpenCV安装]Qt+OpenCV+MinGW+CMake编译安装详细教程_第9张图片
如果你还是需要安装这个,我使用的方法是重新安装Python。很快就能搞定了

Python下载

自此我们就完成了opencv的安装了,可以直接在Qt中进行测试了。

你可能感兴趣的:(图像处理,windows,cmake,opencv,编译器,机器学习)