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

今天项目须要用到OpenCV的部分功能,因此开始接触一下OpenCV,本人也是个初学者,因此有一操做现阶段也没法给出明确的解释,固然这里也借鉴了一些别人的经验。若是有什么错误,恳请指正。html

 

这里是针对mingw版本的Qt。git

本文中所出现的文件地址只是做为参照,具体配置过程当中,根据本身的配置状况填写。github

 

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

一、首先安装Qt,CMake,解压OpenCV测试

二、配置环境变量Pathui

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

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

设置完环境变量后重启。.net

三、对OpenCV进行CMake3d

①在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界面操做阶段结束。

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

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

六、配置OpenCV环境变量

将OpenCV加入环境变量中。

七、测试

新建一个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

 

遇到的问题:

一、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的文件夹中,并根据对应的下载失败的内容进行重命名。

参考:

http://www.javashuo.com/article/p-kcmodewj-kn.html

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

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

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

而后从新“Configure”->"Generate">>"mingw32-make"。

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

三、未声明“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"。

四、“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/

相关文章
相关标签/搜索