0.版本选择
由于Qt5无法与最新的vs2022兼容,扩展工具中一直显示不可用,所以将vs降级成vs2017。
在安装Qt的过程中,会选择安装Qt套件,其中就的MCVS 2017,说明vs2017是与qt兼容的。
当然也可以用qt creator这一原生IDE。
OpenCV版本目前是最新的4.8.0,使用过程中没有什么问题,但是还是安装低版本大概率避免一些玄学问题。
1.安装vs 2017和MingW
我选择安装的是vs2017专业版,过程略…
mingw是win平台下gcc ,g++工具包等,熟悉Linux的可能经常用到,安装后在命令行编译源码了。
官网往下翻:https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/
可以选择在线安装器,也可以选择安装包解压缩。后面的后缀不需要去知道,我选择第二个。
解压缩以后在本地文件中找到bin文件夹,里面有很多exe,这些都要添加到环境变量当中。
找一个合适的位置存放mingw,然后copy地址,粘贴到环境变量当中,让系统识别到bin下面的可执行程序,重启电脑。
测试:输入g++ --version,打印内容显示检测到8.1.0的版本,完成。
2.安装Cmake
cmake官网:https://cmake.org/download/
找一个合适的版本下载,Windows下比较方便,可以直接在线安装cmake,所以直接选择.msi
按选择的是3.26.4,推荐在线安装节省时间;
当然也可以源码安装,这就需要刚才下载的mingw了。
安装:选择添加到环境变量,新建桌面图标
检查一下环境变量,安装完成后系统会自动给你添加进去。同时桌面会生成一个cmake-gui的图标。就是可视化操作cmake编译。
cmake编译的原理和过程可以自行百度一下,了解过程有利于编译操作。
3.安装OpenCV
(1)下载opencv
OpenCV官网:https://opencv.org/releases/
Windows下可以安装exe执行程序(直接点击Windows),当然也可以下载可跨平台的源码(Sources)来安装。Linux下只能源码安装。
区别的话,直接运行编译好的exe,程序会直接将OpenCV的库打包成一个名字叫opencv_world的库,这里面包含了所有的库文件,就是说链接库文件的时候直接连接到这一个库就好了。
源码编译的自由度比较高,可以选择安装哪一些库文件,当然也可以安装成一个总的opencv_world。
为了更好的认识各种库扮演的角色,我这里选择源码安装,所以就要用到cmake编译工具。
解压zip后,OpenCV文件夹中不仅有源码还有相关测试代码和data,以及下方的CMakeLists.txt。
(2)下载opencv-contrib
自从OpenCV 3.0之后,很多经典的算法,比如sift和surf特征点检测算法,由于专利原因,已经不包含在OpenCV的源码当中了,需要下载OpenCV contrib包才能继续使用。
opencv-contrib:https://github.com/opencv/opencv_contrib/tags
找到对应的版本号下载,解压缩。
(3)cmake编译opencv源码
第一行是你的源码文件,第三行是你要编译到哪里,通常都是新建一个build来存放,这样显得整齐,不破坏源码文件。
点击configure,选择你的编译平台和架构,其他默认,开始配置:
等待2分钟左右,编译会显示done,这时候上面会出现很多模块。但是检查一下会出现很多爆红的,大概意思就是没有下载到链接(被墙了),也就意味着我们要将这一部分手动下载,这也是最麻烦的一步了,如果无法解决,那还是回到之前说的,直接exe在线安装!
到opencv-4.5.5/build目录中找到CMakeDownloadLog.txt日志文件,里面提供了无法下载的包的网址,我们要做的就是一个一个去下载;比如圈起来的部分,前面是下载网址,
打开D:\Tools\opencv-4.5.5.cache,发现里面的内容都是0kb,也说明了文件没有下载下来,我们要做的就是下载对应的文件,然后替换掉他,但要保证名字一样。
这时候分两种情况:
一种是输入网址会下载不同后缀的包文件,找到后复制到.cache文件夹下对应的目录中,并修改名字,确保和0kb的那个文件名字一致。
另一种情况是输入网址会给出一些指令,不要复制到本地保存,直接找到本地文件的名字,复制名字,在网页中右击另存为,存到目标位置并用刚才复制的名字,提示是否替换选择是。
然后重新配置,done以后没有标红了,根据自己的需要选择编译的包,我这里选择了opencv_world和with qt、with opengl。选完后点击generate生成,done后点击open project,用vs 2017来打开
打开vs2017以后,右边会出现整个sln,右击-批生成-选择两种ALL_BUILD和ALL_INSTALL:
点击生成,等待大概20分钟,如果有未编译通过的,大概率是字符规则的问题,解决方案:https://blog.csdn.net/pypyquixue/article/details/123448814
这个链接中评论区有个回答是有用的,大意就是报错区域附近有日文注释,编译器看不懂,删掉那几句日文注释就好啦。
修改完以后,一定要清理解决方案,再重复批生成那一步。大概率是没问题的,我也试过最新版本,也是没问题的。
(4)cmake编译opencv—contrib
这个文件可以理解为扩展包,里面一些特殊的库放在里面,对于常用的算法基本用不到。为了完整,也同时编一下吧,流程跟之前的几乎一致:
打开cmake-gui,保持之前的选择路径不变
搜索extra,选择路径就是你下载的opencv-contrib文件夹下面的modules;
搜索OPENCV_ENABLE_NONFREE,选择
点击configure,还是爆红,像上面一样解决,查找,手动下载,替换~~。
ok.
(5)添加环境变量、测试
打开vs,写一段代码:
#include<iostream>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
using namespace cv;
int main()
{
Mat img = imread("D:\\Users\\Desktop\\opencv_test\\lena.jpg");//换成你的地址
namedWindow("测试opencv");
imshow("测试opencv", img);
waitKey(0);
return 0;
}
这时候头文件会标红,运行的话要找不到库文件,是因为还没有配置好路径信息:
包含目录是指头文件的路径,库目录是指lib库文件的路径
最后在引入库,
保存后运行,
参考链接:
1.opencv_contrib的安装和配置
2.OpenCV安装教程:Windows 安装 Visual Studio + OpenCV + OpenCV contrib
4.Qt配置
(1)安装Qt
Qt安装镜像网址:https://download.qt.io/
直接找个安装器exe安装即可,一路点,找到合适的地方保存,并勾选安装qt creator原生IDE
选择套件这里勾选上MSVC和mingw,一个是用于vs,一个用于qt creator,下面是一些其他的小功能套件,根据需要选择,上面两个MSVC和mingw都选上。
qt这样就安装好了。
(2)vs配置Qt插件
打开vs2017,工具-扩展和更新-联机中搜索Qt-按照提示下载
安装完成后菜单栏会出现一个qt vs tools,点击进入选择qt versions,找到图示路径下的qmake.exe并选择,会自动识别到
(3)测试Qt
在新建项目之前先添加一下环境变量:}
新建一个项目,会发现多了一个Qt选项,
选择debug模式
修改一下基类吧
测试代码有爆红的,是因为还没有配置头文件之类的,
这样子就可以了,qt配置完成。
参考链接:https://zhuanlan.zhihu.com/p/632779340
(4)小问题
点击ui界面进行设计的时候,会出现闪退:
解决方法:VS打开Qt的ui界面几秒后闪退(ui无法打开文件)的解决办法
方法一就可以解决的,很简单。