默认Visual Stdio已经安装完成。之前只安装了opencv,发现有些功能实现不了,还需要依赖opencv-contrib,所以这里对其进行一个记录。
一.安装opencv、opencv-contrib、Cmake
opencv安装链接:Releases - OpenCVhttps://opencv.org/releases/
opencv-contrib安装链接: Tags · opencv/opencv_contrib · GitHubhttps://github.com/opencv/opencv_contrib/tags
Cmake安装链接:Download | CMakehttps://cmake.org/download/
我安装的Cmake是3.27.1版本的.msi文件,操作相对简单一点,如图所示:
安装完以后解压:
二、Cmake编译
1.双击cmake-3.27.1-windows-x86_64,一路Next。
安装完成后打开cmake,有的时候进来是如下图这种情况,遇到这种情况将鼠标光标放在空白区域与Where to build the binaries这句话之间,鼠标就会变成可以上下拉动的滑块,按着鼠标左键拉开就行。
1是下载的opencv文件路径,即源码路径;2是编译后存放的路径,这个路径很重要,后续还会用到。
路径填写完毕后点击Configure,会弹出一个框,第一个选择框一般会检测出来,一般不需要修改,第二个选择框选择x64,点击Finish后等一会,在这个过程中一般会报错。
BUILD_opencv_world这一项一定要打勾,OPENCV_EXTRA_MODULES_PATH:将opencv_contrib/modules的路径填上,我的是在D:/opencv_contrib-4.8.0/modules 。
2. 报错情况1:我之前还有报错的情况,但问题解决,重新卸载再来一遍的时候报错没有了,没办法进行记录。当时是找到编译的存放路径D:\opencv\opencv-4.8.0-Build下的CMakeDownloadLog.txt文件,按照他的提示将没有下载成功的文件重新进行下载,并替换掉没有成功的文件,参考的是这个博客。Visual Studio 2022配置OpenCV455+CMake(Win11)_opencv cmake vs2022_qq_44658189的博客-CSDN博客https://blog.csdn.net/qq_44658189/article/details/125030551报错情况2:无法下载ADE,我找到了一篇博客下的评论,按照这位网友的方法解决了,他说是找到这个路径D:\opencv\opencv\sources\modules\gapi\cmake\,打开DownloadADE.cmake文件,找到20~22行,修改为自己的实际路径。我的ade-release_0.1是在这个网址下载的GitHub - opencv/ade at release_0.1
警告1:我遇到的警告如图所示,它说在CmakeLists.txt文件的第649行有问题,我先去网上搜的,说是CMP0148在cmake3.12版本以后,已经弃用之类的,之后我又找到了opencv源码路径D:\opencv\opencv\sources下的CMakeLists.txt文件打开找到这一行。
将与之相关的注销掉了。警告就没有了。
Configuring成功,且没出现红色说明成功,点击Generate进入下一步。出现如下情况,且没有爆红说明成功。
三.Visual Studio编译
找到cmake编译生成文件下的OpenCV.sln文件并用Visual Studio打开,注意要以管理员身份运行,可以先以管理员身份打开visual studio,然后再从vs里找到该路径打开。
右键点击解决方案->生成解决方案,这个过程有点漫长。
完成以后如图所示。
在右侧栏中找到CMakeTargets->INSTALL右键找到仅用于项目->仅生成INSTALL(B)点击。
完成后找到cmake生成路径下的install文件打开,如图所示。
复制如下路径到电脑Path环境变量中,在此之前如果已经有了opencv环境变量,记得要删除。
四.测试
打开Visual Studio软件,重新建一个工程,或者打开你需要用到opencv的项目。点击项目->属性找到VC++目录中的包含目录和库目录。
在包含目录中添加:D:\opencv\opencv-4.8.0-Build\install\include和D:\opencv\opencv-4.8.0-Build\install\include\opencv2;在库目录中添加D:\opencv\opencv-4.8.0-Build\install\x64\vc17\lib。
在链接器中的输入选项找到附加依赖项,添加D:\opencv\opencv-4.8.0-Build\install\x64\vc17\lib\opencv_world480d.lib(Debug版,release不带d),如果在Cmake编译时BUILD_opencv_world没有打勾,是没有opencv_world480d.lib这一项的,我看有些博主说是如果没有选的话需要把里边所有带d的都放进来,不知道行不行。
完成后点击确定,配置完成。可以运行代码进行测试。我跑了一段yolov检测马的视频,如图所示。
补充说明:我在之后做图像拼接时,用到了SURF算法,发现程序没报错,但是运行不出来,但是运行SIFT算法时,就可以,我在网上找了一些解决办法,说是opencv版本过高,没有SURF的版权,需要把OPENCV和opencv_contrib卸载掉,安装低版本的,但是一路磕磕绊绊总算可以了,不想放弃,后来在一篇博客中看到说是需要重新打开cmake找到OPENCV_ENABLE_NONFREE这一项打勾,重新Configure->Generate,然后重新进行三.Visual Studio编译,由于之前遇到的问题都完美解决了,所以重新再来一遍很顺利,没有耽误多少时间。之后SURF就可以使用了。文章来源:https://www.toymoban.com/news/detail-718050.html
文章来源地址https://www.toymoban.com/news/detail-718050.html
到了这里,关于Visual Stdio2022+Opencv4.8.0+Opencv-contrib+Cmake3.27.1的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!