其他分享
首页 > 其他分享> > Qt5.11.1配置OpenCV3.4.6流程以及遇到的问题

Qt5.11.1配置OpenCV3.4.6流程以及遇到的问题

作者:互联网

今天项目需要用到OpenCV的部分功能,所以开始接触一下OpenCV,本人也是个初学者,所以有一操作现阶段也无法给出明确的解释,当然这里也借鉴了一些别人的经验。如果有什么错误,恳请指正。

 

这里是针对mingw版本的Qt。

本文中所出现的文件地址只是作为参照,具体配置过程中,根据自己的配置情况填写。

 

在安装过程中遇到的一些问题。

1、首先安装Qt,CMake,解压OpenCV

2、配置环境变量Path

将Qt安装目录下的“E:\Qt\Qt5.11.1\5.11.1\mingw53_32\bin”以及“E:\Qt\Qt5.11.1\Tools\mingw530_32\bin”添加到环境变量中。

将CMake的“E:\Program Files\CMake\bin”添加到环境变量中。

设置完环境变量后重启。

3、对OpenCV进行CMake

①在1处“Where is the source code:”选择OpenCV解压的源文件位置。

在2处“Where to build the binaries:”选择自定义的空文件用于保存生成的对象。

②点击左下角的“Configure”。出现如下界面。

选择“MinGW Makefiles”。(如果在之前未添加Qt的环境变量,选择“MinGW Makefiles”,在之后的配置会出错)

选择“Specify native compilers”, 然后“Next”。弹出编译器配置界面。

 将Qt安装目录下的

E:/Qt/Qt5.11.1/Tools/mingw530_32/bin/gcc.exe

E:/Qt/Qt5.11.1/Tools/mingw530_32/bin/g++.exe

分别填入对应的文件路径。

③点击“Finish”。

开始进行配置。

 

 配置完成。

④勾选“WITH_QT”,“WITH——OPENGL”,“ENABLE_CXX11”。点击“Configure”。

 ⑤检查配置完成后,红色区域的位置信息是否正确。点击“Configure”。

 显示“Configuring done”,配置完成。

 ⑥点击“Generate”。

 此时CMake界面操作阶段结束。

4、打开CMD,进入前面填写的目标文件位置(“E:/OpenCV/mytest”)。输入mingw32-make开始编译,(也可以mingw32-make -j 4 通过设置编译的核数加快进程,只不过在打印错误信息的时候显示有问题,第一次还是用mingw32-make,明确错误信息)

5、编译完成后,输入mingw32-make install开始安装。

6、配置OpenCV环境变量

将OpenCV加入环境变量中。

7、测试

新建一个Qt Widgets Application工程,在.pro文件最后添加以下代码

INCLUDEPATH += E:\OpenCV\mybuild\install\include

LIBS += E:\OpenCV\mybuild\install\x86\mingw\bin\libopencv_core346.dll
LIBS += E:\OpenCV\mybuild\install\x86\mingw\bin\libopencv_highgui346.dll
LIBS += E:\OpenCV\mybuild\install\x86\mingw\bin\libopencv_imgcodecs346.dll
LIBS += E:\OpenCV\mybuild\install\x86\mingw\bin\libopencv_imgproc346.dll
LIBS += E:\OpenCV\mybuild\install\x86\mingw\bin\libopencv_features2d346.dll
LIBS += E:\OpenCV\mybuild\install\x86\mingw\bin\libopencv_calib3d346.dll

然后在MainWindow.cpp中加入如下代码

 // read an image
cv::Mat image = cv::imread("d://1.jpg", 1);
// create image window named "My Image"
cv::namedWindow("My Image");
// show the image on window
cv::imshow("My Image", image);

运行结果

 

安装过程参考:

https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows

https://blog.csdn.net/zong596568821xp/article/details/78627755

 

遇到的问题:

1、CMake opencv时Download: opencv_ffmpeg.dll、ippicv等失败的解决方法

配置阶段出现问题,可以查看目标文件夹中的CMakeDownloadLog.txt文件。

①进行安装的时候,无法从Github下载,我通过修改Hosts文件,使CMake正常下载,修改Hosts文件的方法自行百度。

②根据CMakeDownloadLog.txt中的提示信息,和查看ffmpeg的.cmake文档。

CMake后会发现opencv-source根目录下会出现一个.cache的文件夹,里面有需要下载的内容,如果下载失败所有的内容都是0KB。如下图

在源文件E:\OpenCV\opencv-3.4.6\opencv-3.4.6\3rdparty\ffmpeg中的ffmpeg.cmake中记载有ffmpeg的版本。然后从https://github.com/opencv/opencv_3rdparty/branches/all下载,放到opencv-source根目录下的.cache的文件夹中,并根据对应的下载失败的内容进行重命名。

参考:

https://blog.csdn.net/KayChanGEEK/article/details/79919417

https://blog.csdn.net/yiyuehuan/article/details/52951574

2、显示的错误信息为nullptr未定义之类的。

在在 cmake-gui 编译配置中:勾选 ENABLE_CXX11

然后重新“Configure”->"Generate">>"mingw32-make"。

参考:https://blog.csdn.net/qq_40560275/article/details/83118088

3、未声明“sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA”

在OpenCV源码的文件\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、“D3D11_TEXTURE2D_DESC“was not declared in this scope

我这里是直接在配置里面不勾选”WITH_OPENCL_D3D11-NV“。

然后重新“Configure”->"Generate">>"mingw32-make"。

参考:https://blog.csdn.net/huihut/article/details/81317102

 

还有一些我没遇到的问题,这里记录几个问题处理的参考。

https://visp-doc.inria.fr/doxygen/visp-daily/tutorial-install-win10-mingw64.html

https://blog.huihut.com/2017/12/03/CompiledOpenCVRunInQt/

标签:bin,Qt,Qt5.11,opencv,流程,OpenCV,install,https,OpenCV3.4
来源: https://www.cnblogs.com/muyueshi/p/11771716.html