当前位置:   article > 正文

WIN10 + Qt5.12.10 + OpenCV4.5.2 + CMake + minGW配置编译opencv4教程_windows qt5.12 配置cmake

windows qt5.12 配置cmake

因为觉得Qt开发界面程序真的方便,所以想要尝试在Qt中应用opencv来实现视觉类应用的开发。OpenCV是一个第三方开源库。在其官网可以下载到完整的源代码。经CMake等编译工具进行编译和build之后生成一个库供调用。按照网上搜索的教程进行安装在cmake阶段config都失败了。后来结合《OpenCV3和Qt5计算机视觉应用开发》和windows10上利用 VSCode+MinGW + CMake安装编译openCV这篇帖子受到启发找到一个方便快捷的方式。速度比其他方式快很多而且cmake阶段无需执行太多操作。最终生成一个dll文件供Qt5进行调用。非常方便。
温馨提示:如果你对与路径和目录等不是很熟悉,可以使用和我相同的存放路径。


软件版本


系统: WIN10
CMAKE:3.20.1
minGW:方法一:mingw-w64-v8.1.0
                方法二:Qt5.12.10自带minGW版本
Qt:Qt5.12.10
感觉按照本文的方法对于版本没有太大的要求~

下载OpenCV4源代码


下载地址

  • 点击下载地址在如下图所示的界面中选择soures进行下载。
    在这里插入图片描述
  • 下载后解压,所以我OpenCV的源代码路径就是D:\opencv4\opencv\sources,(为了方便和避免路径过深含有汉字和空格等隐性问题。我自己是讲opencv和之后的minwg放在了D盘的根目录下
    在这里插入图片描述
  • 在==D:\opencv4\opencv==目录下新建一个文件夹,命名为opencv_build。之后CMake编译时,编译好的文件就存放在这个文件夹下。

安装CMake


  • 下载地址:https://cmake.org/download/
    打开上面链接,页面下拉。点击如图所示的这个win64系统下的msi文件开始下载。(如果之前安装过CMake3.4或者更低版本的用户需要先卸载旧版本后再开始安装在这里插入图片描述
  • 安装时注意选择更改环境变量以及再桌面生成快捷方式两个操作。(很多帖子介绍说后续cmake如果出现编译错误可能是这个环境变量的设置没有生效。建议重启。我自己是安装时失败了很多次,也重启了几次电脑。所以不确定是不是重启十分必要。如果你为了保险可以在这个地方重启下。如果你想要尝试得到确定的答案,那么非常感谢你可以在文章后面留言告诉我你的尝试结果。哈哈哈。谢谢。
    在这里插入图片描述

方法一:单独安装minGW方式


minGW安装配置

下载minGW

下载地址
网上有的帖子建议的是这个posix-seh的版本,我也是新手不太清楚具体的原因。打开上面的下载地址,点击下图红框所示的文件进入下载页面。这个新打开的页面反应有点慢,稍等下就会弹出下载框要求你进行保存。不要着急。
在这里插入图片描述
下面这个图就是点击后进入的下载页面。图中框起来的位置是在倒计时。这个数到零就开始下载了。
在这里插入图片描述

安装

  • 解压重命名。注意路径和文件名不包含汉字和空格。D:\mingw64多年编程的经验,就是不管有没有特别声明都不要在路径和文件命名时使用汉字和空格,其实c语言里讲的命名三件宝-----数字英文下划线是做稳妥的。可以规避掉很多查不出原因的莫名其妙的错误
    在这里插入图片描述
  • 解压后文件夹里的内容如下图所示。
    在这里插入图片描述

添加环境变量

右键点击桌面->我的电脑->属性。弹出下图所示界面点击高级系统设置
在这里插入图片描述
点击环境变量
在这里插入图片描述
双击Path
在这里插入图片描述
将mingw64的bin文件加加入到系统变量中。
在这里插入图片描述

CMake编译OpenCV的source文件

  • 以系统管理员的身份打开CMake软件。
    在这里插入图片描述
  • 在CMake中选择sources路径和build之后的文件输出路径
    在这里插入图片描述
  • 点击就config开始进行配置
    在这里插入图片描述
  • 在弹出的页面选择MinGW Makefiles,选择第二个选项Specify native compilers,点击Next进入下一步。
    在这里插入图片描述
  • 这一步特别关键,也是和网上多数帖子不同并最终保证编译成功的一步。在选择编译器的时候选择时x86_64-mingw32-gcc.exex86_64-mingw32-g++.exe
    在这里插入图片描述
    -配置编译器的效果如下图所示,Fortran的部分保持空白,点击Finish进入config。
    在这里插入图片描述
  • config完成后,CMake的界面如图所示显示了大片的红色。没有关系,我进入下一步操作。
    在这里插入图片描述
  • 在搜索栏中搜索关键词world,勾选BUILD_opencv_world。再次点击Config进行编译。(务必勾选这个选项,这将允许把所有的OpenCV模块构建在一个库中,后续调用起来特别方便。缺点是安装的应用程序会用到更大的控件,但是在降低部署难度时非常有用----摘自《OpenCV3和Qt5计算机视觉应用开发》)
    在这里插入图片描述
  • 完成后的画面,红色已经全部消失了。
    在这里插入图片描述

安装编译好的OpenCV文件

  • 打开刚刚config时文件的输出路径,在空白处点击shift+右键,在弹出的菜单中选择在此处打开PowerShell
    在这里插入图片描述
  • 在powershell中输入下面的命令。(8代表你电脑的进程数。如果电脑不支持可以选择4或者不加数字直接mingw32-cmake -j
mingw32-cmake -j8  
  • 1

在这里插入图片描述

  • 此时电脑进入相对较长的编译时间,可以起身来个茶歇。
    在这里插入图片描述
  • 编译完成了 可以进行install了
    在这里插入图片描述
  • 安装的时候输入如下的命令:
mingw32-cmake install
  • 1

在这里插入图片描述

  • 添加环境变量
    在这里插入图片描述

Qt5端进行测试

  • .pro文件中添加opencv库所需的文件路径和dll。(如果你的路径和我不同注意替换成你自己的
INCLUDEPATH += D:\opencv4\opencv\opencv_build\install\include
Debug:{
    LIBS += D:\opencv4\opencv\opencv_build\install\x64\mingw\bin\libopencv_world452.dll
}
Release:{
    LIBS += D:\opencv4\opencv\opencv_build\install\x64\mingw\bin\
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

  • mainwindow.cpp文件添加测试代码
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "opencv2/opencv.hpp"


using namespace cv;//命名空间

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    Mat image = imread("E:\\11.jpg",1);//这是我e盘根目录下名为11的图片的路径
    namedWindow("my image",WINDOW_AUTOSIZE);//新建自适应大小的窗体
    imshow("my image",image);//显示窗体
}

MainWindow::~MainWindow()
{
    delete ui;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

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

方法二:Qt5自带minGW方式

  • Qt5自带minGW所在目录设置环境变量,具体方法参见方法一。(下面的路径记得替换成你自己的Qt5安装路径相对应的地址
    在这里插入图片描述
  • 方法二和方法一在OpenCV和CMake下载安装方面一摸一样。只是在运行到CMake在选在编译器的时候不通,如下图所示。之后的所有操作也均相同。

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/138512
推荐阅读
相关标签
  

闽ICP备14008679号