一、材料

1、系统Win7 64位
2、qt-opensource-windows-x86-5.9.5.exe下载地址
3、opencv3.4.0下载地址
  选择下载source code(zip)格式
4、opencv_contrib3.4.0下载地址
  选择下载zip格式
5、cmake-3.13.0-rc3-win64-x64.msi下载地址
注:文章使用opencv3.4.1和opencv_contrib3.4.1也是一次完成

二、安装

(注:本文一切安装都是安装在E盘根目录下)
1、QT安装
  QT直接安装就行,安装路径中不要有中文和空格,安装完成后将两个bin路径添加进入系统环境变量。
E:\Qt\5.9.5\mingw53_32\bin;
E:\Qt\Tools\mingw530_32\bin;
2、opencv安装
  opencv3.4.0和opencv_contrib3.4.0直接解压出来即可。
3、Cmake安装
  直接一路下一步即可(安装在E盘)。
安装完成后将bin路径添加进入系统环境变量。
E:\cmake-3.13.0-rc3-win64-x64\bin

三、编译opencv

  使用cmake编译opencv,第一个路径是opencv的源码,第二个路径是你要保存编译库的路径(在opencv3.4.0目录下新建一个qtbuild文件夹)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最重要的是:
勾选 WITH_QTWITH_OPENGLENABLE_C××11

不勾选 WITH_IPP、ENABLE_PRECOMPILED_HEADERS、BUILD_opencv_python_bingings_generator、WITH_MATLAB

③将OPENCV_EXTRA_MODULES_PATH设为
E:\opencv_contrib-3.4.0\opencv_contrib-3.4.0\modules

④将E:\opencv-3.4.0\opencv-3.4.0\modules\videoio\src
中的cap_dshow.cpp文件中 #include “DShow.h” 前面加一句
#define STR_NO_DEPRECATE

点击Configure,如果还有红色再点击Configure直到变白,点击Generate按钮

  在完成以上所有步骤之后,WIN+R打开cmd,进入生成的目录中。输入“mingw32-make”命令,按回车进行编译。编译达到100%后再输入“mingw32-make install”命令,按回车。 编译完成后就会在qtbuild下的install文件夹中生成编译好的库文件。
在这里插入图片描述
在这里插入图片描述
  上面讲了那么多,最终需要的就是一个install文件夹,直接将install文件夹拷贝到QT文件夹里面就行,
  将x86文件夹下面bin路径加到系统path变量中,例如我的bin文件路径为:E:\Qt\install\x86\mingw\bin

四、配置Qt中的OpenCV

1、打开Qt,主界面如下图。然后点击【New Project】
在这里插入图片描述
2、选择【Qt Widgets Application】,然后点【Choose】
在这里插入图片描述
3、创建项目名称,选择创建路径,然后点【下一步】
在这里插入图片描述
4、保持默认,点【下一步】
在这里插入图片描述
5、保持默认,点【下一步】
在这里插入图片描述
6、保持默认,点【完成】
7、在 .pro 文件中的底部,添加如下内容:

INCLUDEPATH += E:\Qt\install\include
INCLUDEPATH += E:\Qt\install\include\opencv
INCLUDEPATH += E:\Qt\install\include\opencv2
LIBS += E:\Qt\install\x86\mingw\lib\libopencv_*.a

在这里插入图片描述
8、到此为止,qt和opencv配置成功。以后在qt中编写opencv程序,同理,只要将上一步的内容添加到.pro文件中。(每次新建新项目时,都只要添加该内容就行)

五、测试

添加如下代码,然后编译运行。

#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
    Mat image;
    image=imread("F:\\QtTemp\\untitled1\\Jellyfish.jpg");//括号里更改为自己图像的路径
    namedWindow("显示",0);
    imshow("显示",image);
    waitKey(0);
    return 0;
}

在这里插入图片描述
在这里插入图片描述

六、参考文章

这两位博主写的不错:
https://mlh.app/2019/02/21/fcc909b53245c3ec05369526ab66cf72.html
https://blog.csdn.net/sinat_36264666/article/details/73200739
基本上不会报错了,如果还有报错请参考:
https://blog.csdn.net/qq_40560275/article/details/83118088
https://segmentfault.com/a/1190000014284086
https://blog.huihut.com/2018/07/31/CompiledOpenCVWithMinGW64/

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐