vs2019+opencv450+opencv contrib450+cmake3.25.2安装流程

目的

为了研究利用sift、orb、surf等算法进行视觉特征检测,第一次配置折腾了四五天。

电脑环境

win10
opencv4.5.0
opencv contrib 4.5.0
cmake3.25.2

报错

问题1
OpenCV(3.4.3) Error: The function/feature is not implemented (This algorithm is patented and is excluded in this configu ration; Set OPENCV_ENABLE_NONFREE CMake option and rebui1d the 1ibrary) in cv::xfeatures2d::SIFT::create, file F:\opencv343\opencv\opencv_contrib-3.4.3\modules\xfeatures2d\src\sift.cpp, 1ine 1207

在这里插入图片描述

问题2

vs2019 opencv450 无法打开opencv_world3450.lib

问题3

在这里插入图片描述

解决方法

第一次安装的版本是vs2019+opencv3.4.3+opencv contrib 3.4.3+cmake
结果就是上图中的问题1和问题3
参考这个文献,发现是cmake过程有问题

opencv+opencv_contrib+VS2019环境搭建中的许多坑

主要是通过这个现象发现配置存在问题:

  • 编译完成之后,能够在install目录下面看到x64文件夹,如果没有就说明哪个环节出了问题。

我配置完成后就没有x64这个文件夹。

以下是具体步骤:

1、下载opencv、opencv contrib和cmake

opencv 和opencv contrib的下载地址如下:

https://github.com/opencv

主要就是这俩,
在这里插入图片描述
点击进入tags,查询具体型号
在这里插入图片描述

例如我下载的就是opencv4.5.0
在这里插入图片描述
这块opencv我是下载的这个,直接安装。
在这里插入图片描述
opencv contrib 和opencv流程一样,不再赘述。

cmake可以访问这个网址:https://cmake.org/download/,找到对应的版本下载,这里下载的为win64-x64安装程序

我看网上也有说必须下源文件,不能这样直接安装,但是我这样弄了也没啥问题,我估计推荐下源代码是因为直接采用安装包这样直接安装会导致某些opencv的源代码虽然下载成功,但是没有内容,也就是大小是0k。

2、在本地电脑建立文件夹

其中new_build是个人新建的,opencv_contrib450是下载的拓展包解压后的文件夹,其余都是opencv安装时建立的文件。
在这里插入图片描述

3、cmake编译

第一个框是选择opencv自带的源码,第二个框是选择编译后放置的代码位置,
其中有以下注意事项:

  • 将OPENCV_EXTRA_MODULES_PATH路径填入opencv_contirb-master/modules
  • 将OPENCV_ENABLE_NONFREE打上对钩(这块网上说的都是因为sift因为专利问题不打钩就无法使用)

选择好后点击configure按键,然后等待完成。

在这里插入图片描述
红色就表示下载有问题,需要注意。

这块的configure可以重复多次点击,多次点击后红色的框就会全部消失,但是其实问题都还存在,解决办法就是在日志里挨个查看。

日志文件 CMakeDownloadLog.txt 地址就在新建的new_build下,里面可以查看文件地址应该在哪放着,文件名称是什么,然后自己单独下载,修改文件名字然后放置好地址即可。

例如

#use_cache "D:/study/opencv-4.0.0/.cache"
#do_copy "opencv_ffmpeg.dll" "849286ccc527c99e5a218b67f13c6e8c" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/759a23e24ab787a0979f8a93103dcc3105ec10c1/ffmpeg/opencv_ffmpeg.dll" "D:/study/opencv_with_contrib_test_sln/3rdparty/ffmpeg"

这两句的意思是说将 opencv_ffmpeg.dll(它的md5签名是 849286ccc527c99e5a218b67f13c6e8c,下载地址是  "https://raw.githubusercontent.com/opencv/opencv_3rdparty/759a23e24ab787a0979f8a93103dcc3105ec10c1/ffmpeg/opencv_ffmpeg.dll" )
 从 "D:/study/opencv-4.0.0/.cache" 拷贝到 "D:/study/opencv_with_contrib_test_sln/3rdparty/ffmpeg"目录下。

#missing "D:/study/opencv_with_contrib_test_sln/3rdparty/ffmpeg/opencv_ffmpeg.dll"
目标目录下没有此文件

#cmake_download "D:/study/opencv-4.0.0/.cache/ffmpeg/849286ccc527c99e5a218b67f13c6e8c-opencv_ffmpeg.dll" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/759a23e24ab787a0979f8a93103dcc3105ec10c1/ffmpeg/opencv_ffmpeg.dll"
下载此文件到源代码路径 /.cache/ffmpeg/,并命名为"md5-文件名"

# timeout on name lookup is not supported
# Trying 151.101.108.133...
# TCP_NODELAY set
# connect to 151.101.108.133 port 443 failed: Connection refused
# Failed to connect to raw.githubusercontent.com port 443: Connection refused
# Closing connection 0
#
连接到服务器失败

简单来说就是有两种可能

  • opencv文件下的sources下的某些文件大小为0k,为空,需要替换。
  • 编译后的new_build下某些文件丢失,其实就是 opencv文件下的sources下的某些文件。

提供个快速从github加速下载的网址:GitHub Proxy

我本次缺少了以下三个文件,下载后文件名称如下:
opencv_videoio_ffmpeg.dll
opencv_videoio_ffmpeg_64.dll
face_landmark_model.dat

将其修改后为:
37e2dadf776631acc8856e281f29cf42-opencv_videoio_ffmpeg.dll
cf5dba83edf8619f57ccff4edb989c62-opencv_videoio_ffmpeg_64.dll
7505c44ca4eb54b4ab1e4777cb96ac05-face_landmark_model.dat

全部将其放置到对应文件夹下以后,可以再次点击configure按键,然后看看日志文件,显示没有缺失后就证明安装完成。


这块是别人的问题描述:
在这里插入图片描述


这块比较麻烦,刚开始我也不懂,后来弄得多了就明白其实就是没下载下来文件,如果还不懂可以参考以下文章:

代码笔记24 windows+cmake+Opencv4.5.5安装中出现的IPPICV: Download:ippicv_2020_win_intel64_20191018 general.zipl问题

【从零学习OpenCV 4】安装过程中问题解决方案

CMake编译OpenCV4.0时opencv_ffmpeg.dll等下载失败的解决思路总结

总结下注意事项

  • 在 search 对话框中输入OPENCV_EXTRA_MODULES_PATH,找到OPENCV_EXTRA_MODULES_PATH后在value中填入编译opencv_contrib解压目录中的modules路径(注意此处路径的反斜杠\要改成正斜杠/,反斜杠\有转义字符的意思),最好是搜索填入路径,不要在文件夹下复制然后粘贴路径。

4、vs编译

我的文件在new_build下,点击opencv.sln,然后进入到vs2019中,首先选择是在debug64下进行编译,点击下图所示的 生成解决方案 ,点击下方的 重新生成解决方案 也可以。
在这里插入图片描述

然后在 CMakeTargets 中的 INSTALL ,然后右键选择 “仅限于项目” --> “仅生成INSTALL”;
在CMakeTargets中的INSTALL,然后右键选择“仅限于项目”-->“仅生成INSTALL”;

其次,完成编译后,可在切换至Release模式下,把重新生成解决方案和生成install的操作再来一次。此时,install目录包含了我们需要的头文件、库文件等;

5、配置环境

附上我的电脑环境
在这里插入图片描述
具体的位置如下图所示
在这里插入图片描述

6、测试代码

#include "opencv2/opencv.hpp"  
#include"opencv2/xfeatures2d.hpp"


using namespace cv;
using namespace std;

int main() {
 
    Mat img = imread("C:/Users/Desktop/test_1/1.png", 1);
    Ptr<Feature2D> sift = SIFT::create();
    vector<KeyPoint> keypoints;
    Mat descriptors;

    sift->detectAndCompute(img, noArray(), keypoints, descriptors);
    drawKeypoints(img, keypoints, descriptors, Scalar(0, 255, 255));
    imshow("Result", descriptors);
    waitKey(0);

    return 0;
}

运行需要设置属性

在VC++目录下,包含目录:

F:\opencv455\opencv\new_build\install\include\opencv2
F:\opencv455\opencv\new_build\install\include

库目录:

F:\opencv455\opencv\build\x64\vc15\lib
F:\opencv455\opencv\new_build\install\x64\vc16\lib

在连接器下,常规,添加库目录:

F:\opencv455\opencv\build\x64\vc15\lib
F:\opencv455\opencv\new_build\install\x64\vc16\lib
F:\opencv455\opencv\build\x64\vc14\lib

输入,附加依赖项:

opencv_world450d.lib

————————————————————————————————————————————————————————
这块可以参考这个文章:
包含目录、库目录、附加包含目录、附加库目录、附加依赖项之详解

VS项目中的包含目录、库目录、附加包含目录、附加库目录、附加依赖项均在"项目->属性->配置属性"下进行配置,具体说明如下:

VC++目录:

包含目录:寻找#include<xxxx.h>中的xxxx.h的搜索目录

库目录:寻找.lib文件的搜索目录

C/C++:

常规->附加包含目录:寻找#include<xxxx.h>中的xxxx.h的搜索目录(每一项对应一个文件夹XXXX,文件夹中包含了编译时所需的头文件,使用时直接#include<XXXX>即可)

链接器:

常规->附加库目录:寻找.lib文件的搜索目录

输入->附加依赖项:lib库(C++的库会把函数、类的声明放在*.h中,实现放在*.cpp或*.cc中。编译之后,*.cpp,*.cc,*.c会被打包成一个.lib文件,这样可以保护源代码)

————————————————————————————————————————————————————————

测试原图如下所示:

在这里插入图片描述

最后的效果如下图所示
在这里插入图片描述

附上我查找问题时的一些参考:

win10+vs2019+opencv+opencv_contirb 安装教程

VisualStudio2019安装配置OpenCV的C++环境

OpenCV + OpenCV Contrib安装教程(windows)

win10-vs2019-opencv_contrib安装教程(一步到位)

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

关于CMake Warning at cmake/OpenCVDownload.cmake:202 (message): FFMPEG: Download下载失败解决办法(傻瓜教程)

OpenCV之扩展模块安装

IPPICV: Download failed: 6;“Couldn‘t resolve host name“

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值