【VS2019+OpenCV4.5.1+OpenCV_contrib4.5.1安装+配置保姆式教程】

2023-11-08 13:59

本文主要是介绍【VS2019+OpenCV4.5.1+OpenCV_contrib4.5.1安装+配置保姆式教程】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、搭建环境
  • 二、OpenCV_contrib4.5.1安装步骤(正文来了,敲黑板!)
    • 1.OpenCV_contrib拓展包编译
    • 2.Visual Studio2019编译
    • 3.环境配置
      • 3.1 系统环境配置
      • 3.2 Visual Studio项目环境配置
      • 3.3 测试
  • 三、Reference


前言

背景:初入OpenCV的世界,没人指导没人教,我一开始就直接下了OpenCV4.5.1(当时还没了解3和4的区别,只知道技术的东西肯定新有新的优势,虽然也会伴随着更多的未知,但还是毅然下了4),配合着原本装好的VS2019使用。这几天需要用到SIFT特征点检测的一些函数需要contrib拓展包的一些头文件,故在已经装好VS2019+OpenCV4.5.1的基础上,继续安装OpenCV_contrib4.5.1拓展包,因为4.5.1版本又是最新的,所以很多东西都是自己实践亲测出来的,真就每次装个东西,各位前辈们碰到的问题都全部集中在我身上,这就是all in吗?爱了爱了。
时长:历时3天(当然不是完完全全的72小时,但至少每天10+小时堆在这上面)。
吐槽:我看到有些帖子写:VS2015、VS2019装OpenCV_contrib不稳定,最后重装VS2017才成功安装和配置contrib拓展包。拜托,都什么时代了,还信这些,我就一愣头青的,非就用着最新的版本照样安装成功,时代在进步,当然我们也要努力突破啊(小白内心独白自述,dalao们当笑话看看就好哈哈哈哈)。


一、搭建环境

操作系统:Windows 10
软件:Visual Studio 2019、OpenCV4.5.1、OpenCV_contrib4.5.1拓展包、Cmake3.19.3.

注释:OpenCV和contrib拓展包的版本一定要一致!!!上述各安装包有很多博主前辈都有教在哪里找,也有教怎么安装,我就不赘述了。
比较难找的就只有contrib4.5.1拓展包,实在找不到的话可以去我发布的资源上下载,找资源不易,请多多包涵。

二、OpenCV_contrib4.5.1安装步骤(正文来了,敲黑板!)

1.OpenCV_contrib拓展包编译

在这里插入图片描述

第一栏Where is the source code是指OpenCV4.5.1解压后得到的source文件的路径;
第二栏where to build the binaries是指编译后输出文件的路径,我是直接在opencv的同个大文件夹下创了一个名为“contrib_new”的文件夹,此点看个人喜好和此时心情。

这两个路径设置好之后就可以点击【Configure】按钮,选择将源码编译成与VS版本相应的工程文件,如下图所示。
在这里插入图片描述
第一栏:对应的VS版本;
第二栏:编译后工程文件适用的操作平台版本,我电脑是64位的,所以我选择的是编译成是64位的OpenCV_contrib工程文件;
第三栏:跳过;
选项:选择本地编译器“Use default native compilers”;
最后Finish走起,几分钟后即可完成编译。
:编译前,请打开你的vpn!而且编译对网络要求很高,如果网线不行,请开手机热点,换着试。
有些东西就是玄学,我以前刚玩ROS的时候各位大神也是这么教的。
在这里插入图片描述

如果你足够幸运,只有上面那一栏报错,下栏毫无红色字体错误,那恭喜你,直接按我的文字配置上栏的即可。然而大部分人可能会像我一样,并不是那么幸运,结果就是这样,上下都红:

在这里插入图片描述

行吧,我们先一栏一栏来解决问题(ps:即使上下栏都有错误,都需要按如下步骤操作;仅有上栏错误的只需要按“上栏操作”进行):
上栏操作:在上栏界面中的变量中找到“BUILD_opencv_world”和“OPENCV_ENABLE_NONFREE”两个变量,在变量后面的方框中勾选,即打上“√”(含义可自行百度,但没必要)。随后,找到“OPENCV_EXTRA_MODULES_PATH”变量,在此变量后面加上【opencv_contrib4.5.1】文件夹里的【modules文件夹】的路径。最后再次点击【Configure】,直到上栏所有的红色变量变成白色(来来来,保姆上图!)。
在这里插入图片描述
在这里插入图片描述

下栏操作:首先,我们按照下栏找到编译日志的路径,点开CMakeDownloadLog.txt,看你所缺失的文件,也就是下载失败的文件,你按着路径进去看,会看到你需要下载的那几个文件目前在文件夹里的都是0k,即失效文件,我们要做的就是手动下载正确的文件来替换掉他们。
来了来了,又敲重点了,我第一次打开这个时有一共缺了14个文件,好家伙,我是重新编译了好几次后才变得这么少的,为什么又编译了好几次呢,这就是我走过的坑了,希望大家看完不要再走我的老路,节约时间,献身科研
在这里插入图片描述

正文开始CMakeDownloadLog.txt文件打开后可能很多人不知道怎么看,我拿一个缺失文件的描述来举例解释一下吧。

#do_copy "boostdesc_bgm.i" "0ea90e7a8f3f7876d450e4149c97c74f" 
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm.i" 
"D:/OpenCV/opencv/contrib_new/downloads/xfeatures2d"
#missing "D:/OpenCV/opencv/contrib_new/downloads/xfeatures2d/boostdesc_bgm.i"
#check_md5 "D:/OpenCV/opencv/sources/.cache/xfeatures2d/boostdesc/0ea90e7a8f3f7876d450e4149c97c74f-boostdesc_bgm.i"
#copy "D:/OpenCV/opencv/contrib_new/downloads/xfeatures2d/boostdesc_bgm.i" "D:/OpenCV/opencv/sources/.cache/xfeatures2d/boostdesc/0ea90e7a8f3f7876d450e4149c97c74f-boostdesc_bgm.i"

你的缺失文件是:boostdesc_bgm.i,其MD5值是:0ea90e7a8f3f7876d450e4149c97c74f,你需要做的是把这个文件下载回来,并改成相应的文件名放到指定的文件路径下。
下载的网址是:https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm.i
下载后文件要改成的名字是:MD5值+“-”+文件名,即例子中最后一行的:0ea90e7a8f3f7876d450e4149c97c74f-boostdesc_bgm.i
存放文件的路径是:D:/OpenCV/opencv/sources/.cache/xfeatures2d/boostdesc

按着这个方法,去下载所缺失的文件,并放到相应的路径替换掉他们。
上面这个只是例子,不是MD5值全部一模一样按着这个改,是教你怎么看!!!

注意(请认真看,这也是为什么编译了好几次的原因):

  1. 下载这些文件时,请打开你的VPN!打开你的VPN!打开你的VPN!如果打开了vpn还是打不开网页,请你换个vpn的服务器或者换个时间段,或者换个网络再打开这个网页(不要质疑我,我就是第一次打打不开,疯狂质疑各位dalao让我在浏览器打开这些网址的做法,走了很多弯路)。
  2. 后缀为.cmake.i的文件在浏览器中打开会显示出源码,请直接在网页上找到另存为的选项,将这些文件直接保存成对应的文件格式,不然使用不了。即,不要将代码复制下来,保存在新建的.txt文件中,再改名,这样没用!没用!没用!
  3. 全部替换完后,记得打开VPN,再回到CMake中,点击【Configure】。

如果实在搞不定这些文件,也可以在我过两天整理后上传的资源中下载,寻找和整理不易,勿喷(如果你搞得定,你也不会找资源了哈哈哈哈哈,我就是那个没钱下载只能疯狂自己探索的人哈哈哈哈哈哈哈)。

待下栏中出现Configuring done,且上下两栏都没有红色的错误文字提示时,恭喜你,你度过了最艰难的一步了。随后即可点击【Generate】,等待下栏出现Generating done,就基本完成了对OpenCV_contrib拓展包的编译,编译完之后文件夹会变得很大,小事情,不要慌,很大才说明编译成功了,很小的话说明有问题(此处无图,因为太激动了,没保存)。


我当初缺失的文件:
在这里插入图片描述
我一开始一共缺了16个,所以不要放弃,加油吧。
注:如果找不到可以到我发布的资源下载,鼓励自己找。

2.Visual Studio2019编译

进入刚刚编译好的.sln文件,可以从【Generate】后CMake界面进入,点击Generate旁边的【Open Project】直接进入,也可以从刚刚你创建用于存放编译项目工程文件的文件夹中找到.sln文件直接进入。
在这里插入图片描述
进入VS界面后,选择生成->批生成,勾选如下四个项目,点击【生成】。
在这里插入图片描述

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

生成的时间会比较长,如果你上述所有步骤都没错的话,生成后的结果会是全都成功,有些步骤可能在CMake中【Configure】和
【Generate】都通过并没有警告字样,但有错误的话,在VS2019中生成是会有错误的(注:生成的数量因人而异)。

生成的数量因人而异

3.环境配置

注:以下添加文件的路径都是你刚刚自己创建用于存放编译项目工程文件的文件夹里文件,我的是在D:\OpenCV\opencv\contrib_new,“contrib_new”是我创建用于存放编译项目工程文件的文件夹
。环境配置的过程与配置OpenCV的过程很像。

3.1 系统环境配置

在“此电脑”-“属性”-“高级系统设置”-“高级”-“环境变量”-“系统变量”-“Path”,添加“...\install\x64\vc14\bin”,我的是D:\OpenCV\opencv\contrib_new\install\x64\vc16\bin。然后重启VS。
(注:我看有些博主是选择改“用户变量”,这个我是直接把整个系统变量的PATH配置了,一劳永逸。)

在这里插入图片描述

3.2 Visual Studio项目环境配置

在VS中新建一个空项目,进入后,右击,打开该项目的【属性】。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

① 在该属性页中,将“配置”和“平台”分别改为“所有配置”和“所有平台”;
② 在“VC++目录”中:
③ 在包含目录中加入:

...\install\include
...\install\include\opencv2

我自己的路径是:
D:\OpenCV\opencv\contrib_new\install\include D:\OpenCV\opencv\contrib_new\install\include\opencv2

在这里插入图片描述

④ 在库目录中加入:

...\install\x64\vc16\lib

我的路径是:
D:\OpenCV\opencv\contrib_new\install\x64\vc16\lib

在这里插入图片描述
⑤ 将“配置”改成“Debug”模式;
⑥ 选择“链接器”-“输入”
⑦ 在“附加依赖性”中加入:

opencv_world451d.lib

在这里插入图片描述

在这里插入图片描述
⑧ 同理,配置“Release”模式,在“附加依赖性”中加入:

opencv_world451.lib

在这里插入图片描述

在这里插入图片描述
注:可能很多博主在附加依赖项这一步的时候加了很多依赖,实际上我加了很多依赖后反而用不了,不加更能够使用。

附一堆附加依赖项
Debug模式:

opencv_aruco451d.lib
opencv_bgsegm451d.lib
opencv_bioinspired451d.lib
opencv_calib3d451d.lib
opencv_ccalib451d.lib
opencv_core451d.lib
opencv_datasets451d.lib
opencv_dnn451d.lib
opencv_dnn_objdetect451d.lib
opencv_dpm451d.lib
opencv_face451d.lib
opencv_features2d451d.lib
opencv_flann451d.lib
opencv_fuzzy451d.lib
opencv_gapi451d.lib
opencv_hfs451d.lib
opencv_highgui451d.lib
opencv_imgcodecs451d.lib
opencv_imgproc451d.lib
opencv_img_hash451d.lib
opencv_line_descriptor451d.lib
opencv_ml451d.lib
opencv_objdetect451d.lib
opencv_optflow451d.lib
opencv_phase_unwrapping451d.lib
opencv_photo451d.lib
opencv_plot451d.lib
opencv_quality451d.lib
opencv_reg451d.lib
opencv_rgbd451d.lib
opencv_saliency451d.lib
opencv_shape451d.lib
opencv_stereo451d.lib
opencv_stitching451d.lib
opencv_structured_light451d.lib
opencv_superres451d.lib
opencv_surface_matching451d.lib
opencv_text451d.lib
opencv_tracking451d.lib
opencv_video451d.lib
opencv_videoio451d.lib
opencv_videostab451d.lib
opencv_xfeatures2d451d.lib
opencv_ximgproc451d.lib
opencv_xobjdetect451d.lib
opencv_xphoto451d.lib

Release模式:

opencv_aruco451.lib
opencv_bgsegm451.lib
opencv_bioinspired451.lib
opencv_calib3d451.lib
opencv_ccalib451.lib
opencv_core451.lib
opencv_datasets451.lib
opencv_dnn451.lib
opencv_dnn_objdetect451.lib
opencv_dpm451.lib
opencv_face451.lib
opencv_features2d451.lib
opencv_flann451.lib
opencv_fuzzy451.lib
opencv_gapi451.lib
opencv_hfs451.lib
opencv_highgui451.lib
opencv_imgcodecs451.lib
opencv_imgproc451.lib
opencv_img_hash451.lib
opencv_line_descriptor451.lib
opencv_ml451.lib
opencv_objdetect451.lib
opencv_optflow451.lib
opencv_phase_unwrapping451.lib
opencv_photo451.lib
opencv_plot451.lib
opencv_quality451.lib
opencv_reg451.lib
opencv_rgbd451.lib
opencv_saliency451.lib
opencv_shape451.lib
opencv_stereo451.lib
opencv_stitching451.lib
opencv_structured_light451.lib
opencv_superres451.lib
opencv_surface_matching451.lib
opencv_text451.lib
opencv_tracking451.lib
opencv_video451.lib
opencv_videoio451.lib
opencv_videostab451.lib
opencv_xfeatures2d451.lib
opencv_ximgproc451.lib
opencv_xobjdetect451.lib
opencv_xphoto451.lib

3.3 测试

测试代码什么的我是不会给的了,自己写!
其实哪里需要测试什么,你在编程的时候试一试能不能找到xfeature2d.hpp头文件即可,如果配置失败,你这个头文件编译器是找不到的,如图即成功。
在这里插入图片描述
如果你加入了一堆附加依赖项后,反而最后生成解决方案找不到.hpp文件时,你不妨删掉试试?版本越高或许并不需要那么多花里胡哨的东西。

这是我调用SIFT测试的图(嗯,原图我也是偷来的,应该是安装OpenCV时偷哪位博主的,忘了哈哈哈哈哈):
在这里插入图片描述

祝君成功,献身科研!!!


三、Reference

https://blog.csdn.net/GIS_feifei/article/details/102531891
https://blog.csdn.net/weijifen000/article/details/93377143
https://blog.csdn.net/weixin_42331201/article/details/111560667
《OpenCV4 快速入门》人民邮电出版社出版

这篇关于【VS2019+OpenCV4.5.1+OpenCV_contrib4.5.1安装+配置保姆式教程】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/370317

相关文章

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

PyCharm 接入 DeepSeek最新完整教程

《PyCharm接入DeepSeek最新完整教程》文章介绍了DeepSeek-V3模型的性能提升以及如何在PyCharm中接入和使用DeepSeek进行代码开发,本文通过图文并茂的形式给大家介绍的... 目录DeepSeek-V3效果演示创建API Key在PyCharm中下载Continue插件配置Con

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤

《SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤》本文主要介绍了SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤,文中通过示例代码介绍的非常详... 目录 目标 步骤 1:确保 ProxySQL 和 mysql 主从同步已正确配置ProxySQL 的

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.