【Qt】Qt5.14.2配置OpenCV3.4.6环境

写在前面

本文是在Qt的MinGw编译器配置OpenCV环境,这里仅作过程记录,不做原理讲解。其中大多数流程参考了别的博主的博客,由于版本问题,在配置过程中还是出现了很多问题。所以这里针对特定的版本做一个记录。
参考博客:
Qt配置OpenCV教程,亲测已试过(详细版)
Qt5+OpenCV3.4.6环境搭建

1、系统环境

这里仅说明我当时配置时所使用的环境

  • win11 64位
  • Qt 5.14.2
  • OpenCV 3.4.6
  • CMake 3.23.2

2、配置环境变量

我的各个软件的安装路径:

Qt:D:\software\Qt\Qt5.14.2
Opencv:D:\software\opencv346\opencv
CMake:D:\software\cmake-3.23.2-windows-x86_64

这里我们使用mingw730_64(可能有些人有好几个版本,根据自己需求去选择即可,如果跟我的不一样,文章下面说明的路径根据你的实际情况去修改)
所以我配置的环境变量如下

【Qt】Qt5.14.2配置OpenCV3.4.6环境_第1张图片

3、编译OpenCV

在OpenCV的目录下面,新建一个opencv-build的目录(文件夹名称可以自定义),作为编译输出的地方。比如我这里:
D:/software/opencv346/opencv/opencv-build

3.1CMake设置

①选择目录

# Where is the source code:
D:/software/opencv346/opencv/sources

# Where to build the binaries:
D:/software/opencv346/opencv/opencv-build

勾选Advanced
然后点击Configure
【Qt】Qt5.14.2配置OpenCV3.4.6环境_第2张图片

②Configure选项

【Qt】Qt5.14.2配置OpenCV3.4.6环境_第3张图片
【Qt】Qt5.14.2配置OpenCV3.4.6环境_第4张图片
Compilers

# C
D:/software/Qt/Qt5.14.2/Tools/mingw730_64/bin/gcc.exe

# C++
D:/software/Qt/Qt5.14.2/Tools/mingw730_64/bin/g++.exe

【Qt】Qt5.14.2配置OpenCV3.4.6环境_第5张图片
点击Finish

【Qt】Qt5.14.2配置OpenCV3.4.6环境_第6张图片
等待绿条拉满,然后出现一大片红,然后开始检查参数配置。
【Qt】Qt5.14.2配置OpenCV3.4.6环境_第7张图片

③修改变量

1、找到CMAKE_MAKE_PROGRAM,确认Value
【Qt】Qt5.14.2配置OpenCV3.4.6环境_第8张图片
2、勾选 ENABLE_CXX11WITH_OPENGLWITH_QT
在这里插入图片描述
【Qt】Qt5.14.2配置OpenCV3.4.6环境_第9张图片
3、取消勾选 WITH_OPENGL_D3D11_NV
【Qt】Qt5.14.2配置OpenCV3.4.6环境_第10张图片
然后再次点击Configure,等待绿条拉满

④再次确认变量

【Qt】Qt5.14.2配置OpenCV3.4.6环境_第11张图片
确认QT5xxxcc_DIR这几个变量的Value,如图所示即可(如果已经有了就不用修改,如果没有就修改一下)。
然后再次点击Configure。

⑤Generate

此时不再出现红色,点击Generate。
【Qt】Qt5.14.2配置OpenCV3.4.6环境_第12张图片
等待绿条拉满,出现Generating done就可以了。
【Qt】Qt5.14.2配置OpenCV3.4.6环境_第13张图片

3.2 编译

进入刚刚我们创建的opencv-build文件夹中,你会看到刚刚CMake输出的内容。
【Qt】Qt5.14.2配置OpenCV3.4.6环境_第14张图片
将鼠标放在该文件夹界面内,按住shift键,同时点击鼠标右键,点击在此处打开Powershell窗口(s),进入Windows Powershell
【Qt】Qt5.14.2配置OpenCV3.4.6环境_第15张图片
输入下面命令,按回车键执行该命令。

mingw32-make -j 8

注意!!!这一步骤可能耗时会比较久。这里的-j 8是为了让CPU进行多任务处理,可以加快编译速度。根据自己电脑的配置进行设置。
我的电脑是i7-12700 12核CPU,所以我选择-j 12大概几分钟就完成了。

等待终端跑完。。。。。。。。。
【Qt】Qt5.14.2配置OpenCV3.4.6环境_第16张图片
按照我上面的步骤来操作,是不会出现问题的。

一开始我是按照上面那几个博客里的步骤,就出现了各种错误。
就比如在39%的时候出现:mingw32-make: *** [Makefile:165: all] Error 2 等等
通过不断的踩坑填坑最后还是解决了

100%完成之后,输入

mingw32-make install

【Qt】Qt5.14.2配置OpenCV3.4.6环境_第17张图片完成之后退出。

添加环境变量

opencv-build输出的内容添加到环境变量,路径如下

D:\software\opencv346\opencv\opencv-build\install\x64\mingw\bin

在这里插入图片描述
至此 OpenCV编译完成。

4、用Qt测试

①新建Qt项目

在Qt Create中新建一个项目,按照正常流程新建即可,在选择kits的时候要注意选择MinGw 64,(在第2步的配置环境变量的时候,你选择的是什么,这里就选什么,否则会出错!下面会说)
【Qt】Qt5.14.2配置OpenCV3.4.6环境_第18张图片

②添加OpenCV

xxx.pro文件中
【Qt】Qt5.14.2配置OpenCV3.4.6环境_第19张图片
添加以下内容,根据你自己的实际情况修改:

INCLUDEPATH += D:\software\opencv346\opencv\opencv-build\install\include
LIBS += D:\software\opencv346\opencv\opencv-build\lib\libopencv_*.a

【Qt】Qt5.14.2配置OpenCV3.4.6环境_第20张图片
在mainwindow.cpp中加上如下代码

#include 
using namespace cv;

③测试图片

在MainWindow的构造函数中添加

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    
	//一定要使用绝对路径,且不要有中文,其他可能会报错
    Mat image = imread("F:/img/11182.png",1); 
    namedWindow("Display window",WINDOW_AUTOSIZE);
    imshow("Display window",image);
}

④检查kit

【Qt】Qt5.14.2配置OpenCV3.4.6环境_第21张图片

⑤运行

【Qt】Qt5.14.2配置OpenCV3.4.6环境_第22张图片

问题说明

如果kit不是我选择的MingGW 64的话,比如我这里选MSVC2017 64
【Qt】Qt5.14.2配置OpenCV3.4.6环境_第23张图片
一运行就会报这些错误
【Qt】Qt5.14.2配置OpenCV3.4.6环境_第24张图片
此时你只要改回MingGW 64即可。

MSVC编译器需要使用另外的配置,可以看我另一篇文章【Qt】添加第三方库的知识补充

至此,Qt5.14.2配置OpenCV3.4.6环境完成。

你可能感兴趣的:(OpenCV,Qt,qt,opencv,visual,studio,c++)