赞
踩
因为觉得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
感觉按照本文的方法对于版本没有太大的要求~
为了方便和避免路径过深含有汉字和空格等隐性问题。我自己是讲opencv和之后的minwg放在了D盘的根目录下
)opencv_build
。之后CMake编译时,编译好的文件就存放在这个文件夹下。如果之前安装过CMake3.4或者更低版本的用户需要先卸载旧版本后再开始安装
)很多帖子介绍说后续cmake如果出现编译错误可能是这个环境变量的设置没有生效。建议重启。我自己是安装时失败了很多次,也重启了几次电脑。所以不确定是不是重启十分必要。如果你为了保险可以在这个地方重启下。如果你想要尝试得到确定的答案,那么非常感谢你可以在文章后面留言告诉我你的尝试结果。哈哈哈。谢谢。
)下载地址
网上有的帖子建议的是这个posix-seh的版本,我也是新手不太清楚具体的原因。打开上面的下载地址,点击下图红框所示的文件进入下载页面。这个新打开的页面反应有点慢,稍等下就会弹出下载框要求你进行保存。不要着急。
下面这个图就是点击后进入的下载页面。图中框起来的位置是在倒计时。这个数到零就开始下载了。
多年编程的经验,就是不管有没有特别声明都不要在路径和文件命名时使用汉字和空格,其实c语言里讲的命名三件宝-----数字英文下划线是做稳妥的。可以规避掉很多查不出原因的莫名其妙的错误
)右键点击桌面->我的电脑->属性
。弹出下图所示界面点击高级系统设置
。
点击环境变量
双击Path
将mingw64的bin文件加加入到系统变量中。
config
开始进行配置MinGW Makefiles
,选择第二个选项Specify native compilers
,点击Next
进入下一步。x86_64-mingw32-gcc.exe
和x86_64-mingw32-g++.exe
Fortran
的部分保持空白,点击Finish
进入config。world
,勾选BUILD_opencv_world
。再次点击Config
进行编译。(务必勾选这个选项,这将允许把所有的OpenCV模块构建在一个库中,后续调用起来特别方便。缺点是安装的应用程序会用到更大的控件,但是在降低部署难度时非常有用
----摘自《OpenCV3和Qt5计算机视觉应用开发》)shift+右键
,在弹出的菜单中选择在此处打开PowerShell
。8代表你电脑的进程数。如果电脑不支持可以选择4或者不加数字直接mingw32-cmake -j
)mingw32-cmake -j8
mingw32-cmake install
.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\
}
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; }
下面的路径记得替换成你自己的Qt5安装路径相对应的地址
)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。