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

news/2024/12/13 1:46:01/

目的

为了研究利用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“


http://www.ppmy.cn/news/170516.html

相关文章

NVIDIA发布新驱动,支持RTX 4090,性能飞起!

随着“性能王者”4090新卡上市&#xff0c;NVIDIA发布了新版522.25驱动程序&#xff0c;和首批DLSS 3游戏一起亮相。 和RTX 3090 Ti相比&#xff0c;RTX 4090实现了速度和性能的飞跃&#xff0c;游戏性能提高了2倍&#xff1b;在光线追踪游戏中&#xff0c;性能提高了4倍。 &a…

OpenCV4+VS2015的配置

以前学习过OpenCV1.0&#xff0c;OpenCV2.0以后的版本就没怎么用过了&#xff0c;现在官网上OpenCV4.0都已经推出了&#xff0c;正好项目和教学中要用到&#xff0c;还是从头开始学起吧&#xff01; 1.软件的下载和安装 &#xff08;1&#xff09;获取OpenCV安装文件 下载地…

vs2015 + opencv3.4 配置

首先是准备工作&#xff1a; 1、下载并安装vs2015 2、下载opencv并把安装目录加到环境变量path中 我的是这个D:\Professional\opencv\opencv3.4\build\x64\vc14\bin vs中的配置与测试&#xff1a; 1、新建win32控制台应用程序 2、选择空项目 3、打开属性管理器 视图->…

解决V450低音炮问题

在ubuntu热心的给我升级了内核之后&#xff0c;一直困扰我的V450低音炮问题又来&#xff0c;昨晚搞了一个小时都没有搞定&#xff0c;只大约记得原来就是按网上改源码的方法解决的&#xff0c;这次怎么没反应呢&#xff1f;真后悔上一次没有记下来。 早晨起来&#xff0c;认真回…

联想V450笔记本 加装固态硬盘

笔记本加固态硬盘可提高系统启动速度&#xff0c;运行速度&#xff0c; 我的笔记本硬盘是&#xff1a;西数 WDC WD3200BEVT-22ZCT0 (蓝盘) 我买了块120G固态硬盘&#xff0c;京东买的&#xff0c;不到600块钱&#xff0c;当系统盘挺好&#xff0c; 固态硬盘是&#xff1a;金…

nvidia-smi命令详解和一些高阶技巧介绍

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

Visual Studio 2015 配置 OpenCV4.5.5

最近需要使OpenCV处理图像&#xff0c;在现有VS2015的基础上&#xff0c;配置OpenCV4.5.5 1、下载OpenCV4.5.5 点击链接下载OppenCV4.5.5&#xff08;opencv-4.5.5-vc14_vc15.exe&#xff09; 2、提取OpenCV4.5.5 双击下载好的将exe文件&#xff0c;将其提取到指定文件夹&…

老笔记本安装CENTOS和FTP调试

Centos 服务器安装练习 1安装centos 到联想V450上 1.1准备工作 linux官网对比兼容的笔记本型号中没有lenovo V450&#xff0c;但是还是要试一试 0 笔记本lenovo V450配置 &#xff1a;cpu Intel core 2 硬盘&#xff1a;300G 内存&#xff1a;2G U盘&#xff1a;64G &#…