Visual Stdio2022+Opencv4.8.0+Opencv-contrib+Cmake3.27.1

默认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就可以使用了。

猜你喜欢

转载自blog.csdn.net/weixin_50847463/article/details/132208621
今日推荐