前言

       因为专业选修课是视觉,需要安装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博客

Win10 opencv-contrib-4.5.4 完全成功安装记录 - 知乎 (zhihu.com)

GitHub 加速计划 / op / opencv_contrib
9.28 K
5.75 K
下载
opencv/opencv_contrib: OpenCV_contrib 是 OpenCV 的扩展模块仓库,包含了许多额外的算法、功能模块以及对主OpenCV库的补充,如高级特征检测器、图像分割、对象识别等。
最近提交(Master分支:2 个月前 )
475f6fae wechat_qrcode: fix ineffective decoding retrial after inverting image 9 天前
c76792f4 cuda - update npp calls to use the new NppStreamContext API if available 16 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐