Win11 opencv4.8.0和opencv_contrib4.8.0安装
前言
因为专业选修课是视觉,需要安装opencv 和opencv contrib库。但是安装过程非常不顺利,多次失败,从刚开始的抓狂到逐渐平静,心理防线一步步崩塌。终于历经接近一星期的时间成功安装。这对于我这个新手而言,是一次困难但是非常珍贵的历程,因此写了这篇博客来记录本篇博客主要详细记录一下如何在Windows11 操作系统下,搭建Visual Studio 2019+OpenCV4.8.0+OpenCV contrib4.8.0安装配置环境中遇到的所有问题。
一. 安装资料准备
1.opencv官方下载网址:Releases - OpenCV
2.opencv contrib下载网址:mirrors / opencv / opencv_contrib · GitCode
注:contrib要下载与opencv相同的版本
3.cmake下载网址:Download | CMake
根据自己电脑型号下载,且以下框选的两种皆可,至于cmake具体版本没有要求。
下载完成后,解压opencv,opencv_contrib,cmake到文件夹
二. cmake编译opencv
1.安装cmake
我自己下载的是cmake-3.26.5 windows-x86_64.msi。
双击cmake,打开文件。
至此,cmake安装完成。
2.cmake编译,安装opencv和oepncv_contrib
1.选择路径
第一个路径:是opencv解压后的sources文件夹。
第二个路径:要自己在opencv文件夹中新建一个文件夹,newbuild是自己新建的文件夹。
最后点击Configure。
2.弹窗出来的配置,按照自己的开发环境配置即可(本文的环境是VS 2019,平台是X64平台),然后点击"Finish"即可。
3.排错:1区和2区全部没有红色
一般finish完成后,会出现如下图所示的错误。将错误区域分为1区和2区。
对于1区:首先找到“BUILD_opencv_world”和“OPENCV_ENABLE_NONFREE”这两个变量,在变量后面的方框内打上“√”。之后找到“OPENCV_EXTRA_MODULES_PATH”变量,选择我们刚才下载的opencv_contrib安装包里的modules文件夹。再次点击Configure,一般要点两次,此时1区会不再存在红色区域。如下图所示:
对于2区:(难点)
2区报错的原因是缺少相应文档,需要自己手动下载。
如上图2区报错显示,首先根据报错信息找到对应路径下的CMakeDownloadLog.txt文档。使用记事本打开它,然后查找"cmake_download"。cmake_download后面是路径,路径后面是文档名称,最后是这个缺失文档的下载网址。需要自己手动下载替换,将原来的文档删除。因为原来的文档都是0KB。
但是,其中的文档都无法从提供的网址中下载,此时要么科学上网。这里提供一个网址,可以从这里下载(从知乎的一篇文章中找到的):ghproxy.com
此外,有些文件的链接点开是直接在网页打开的文件,直接点击另存为即可。
记住:所有下载的文件都要改名。名称改为cmake_download后路径的文件名。
下载完成后,再次点击Configure。当上下两个框,即1区和2区,都没有红字时,且最后一行显示 Configure done,则表示成功。
4.Generate生成。如果前面没有红字,这步也不会出问题,最后一行会显示Generating done,如下图所示:
三. VS编译
1.在上述Generating done后,点击Open Project,会直接打开VS。
2.点击生成中的批生成,勾选ALL_BUILD和INSTALL,点击生成。
这个过程时间很长,可以休息一下。只要这个过程不报错,就应该没问题了。如果是同样的配置,用这个方法,应该是不会报错的(本人血泪的教训,亲测)。
四. VS配置
1、添加系统环境变量:
右键电脑点击属性,在弹出的窗口中找到高级系统设置,在弹出的窗口中找到环境变量
在系统变量中找到Path,点击编辑,新建一个路径,将之前CMake设置的build目录D:\Open CV\opencv-4.8.0-windows\opencv\newbuild\install\x64\vc16\bin,确定后退出。
2.项目环境配置
创建一个新的空项目,点击项目——属性。首先将配置右边两系那个项设置为所有配置、所有平台。
然后点击包含目录,加入两个路径:
D:\Open CV\opencv-4.8.0-windows\opencv\newbuild\install\include\opencv2
D:\Open CV\opencv-4.8.0-windows\opencv\newbuild\install\include
点击库目录,加入一个路径:
D:\Open CV\opencv-4.8.0-windows\opencv\newbuild\install\x64\vc16\lib
再将配置改为Debug,点击链接器,输入,在附加依赖项中添加 d.lib文档。此文档名称在opencv自己命名的那个newbuild文件下的lib文件中,分为Debug和Release文件。输入文档后缀名是 d.lib的文档名称。然后Release配置下,输入后缀是 .lib的文档名称。
注:有些博客,包括opencv书,这一步添加了很多文档。但是opencv4.8.0不需要,只需要上图所示的两个文档(即Debug和Release文件下的文档)。我自己最先添加的文档是在其他博客(opencv不是一个版本)下复制并改为4.8.0后添加进去的,最后运行项目的时候会报错。
五.代码测试时出现的错误
如下图所示,是在测试代码时出现的错误。
此问题的解决方法,是图片的路径问题,不能是单斜杠,应该是双斜杠:
还有一种可能是环境配置错误,需要把opencv\build\x64\vc16\bin文件夹里面后缀为 .dll 的三个文档拷贝到 C:\Windows\systems32文件夹里面。但是我没用到这种方法,将图片路径改为双斜杠就解决了。
六. 代码测试
#include <opencv2\opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
Mat src = imread("D:\\Open CV\\Test\\Project1\\屏幕截图 2023-09-22 214956.png"); // 这里的路径要指定你的电脑上的一张图片
imshow("input", src);
waitKey(0);
destroyAllWindows();
return 0;
}
运行结果
最后,感谢给我提供帮助的博主大佬。参考链接如下:
win10+OpenCV4.3.0+Cmake3.17.1源码安装_43171.c蟽m_Yilien10的博客-CSDN博客
快速上手opencv_contrib安装(Windows11)_contrib4.2.0安装包_星星爱说话的博客-CSDN博客
更多推荐
所有评论(0)