win10+opencv4.1.0+contrib4.1.0+VS2017release配置(完整跳坑版)(其他opencv版本也适用)

准备工具

cmake、https://cmake.org/download/


下载后安装cmake,默认安装就好。

opencv4.1.0、opencv_contrib-4.1.0

https://github.com/opencv/
选择opencv4.1.0和对应的contrib4.1.0(当然其他版本类似)

环境

win10
VS2017

解压OPENCV和contrib

两者最好放在同一个文件夹上。

添加contrib缺失文件

下载缺失文件

链接:还没上传

第一处boostdesc_bgm.i缺失

在这里插入图片描述
将下载好的上面缺失文件直接放在 opencv_contrib/modules/xfeatures2d/src/ 路径下

第二处缺失

在这里插入图片描述

将相应缺失文件从opencv-4.0.0/modules/features2d/test/拖至对应opencv_contrib/modules/xfeatures2d/test/目录下

配置CMAKE(实际上是解析源码)

1、先在opencv目录下新建文件夹build在这里插入图片描述

2、打开cmake

默认安装在在这里插入图片描述

双击cmake-gui.exe

3、输入源码,编译解析路径

在这里插入图片描述
where is the source code:输入opencv4.1.0的源码路径
where to build the binaries:输入你想解析源码的路径。(前面在opencv4.1.0里面新建了一个build文件夹用来等下cmake执行后生成的文件,)
点击configure

4、选择vs版本 win64

在这里插入图片描述

或者是vs15 win64 总之一定要win64!要与后面的vs2017的选择x64相对于
在这里插入图片描述

5、Configuring done后勾选相关配置


完成上述后找到OPENCV_EXTRA_MODULES_RATH一项,添加你刚刚解压的opencv_contrib中的modules目录,(注意是modules目录)
把OPENCV_ENABLE_NONFREE选上,再勾选opencv world。

在这里插入图片描述

6、点击configure 没有报错后点击Generate开始编译。

(如果报错,检测目录,查看错误提示,一般都是下载或者目录问题)

generate done 后可以关闭cmake了。

此时,在自己刚刚新建的文件夹build出现很多解析文件,用vs2017打开OpenCV.sln
在这里插入图片描述

VS2017编译opencv源码

1、选择release版本,x64。(网络教程大多数是debug,这里我是配置release,这是vs的两种编译方法,任选其中一种就好了。如果你选择debug版本,到后面只需要改一处地方就好,后面会提到。但是x64,务必选择x64,不要86)
2、点击“生成—>重新生成解决方案。等待很久。
3、没有错误后,解决方案资源管理器—>CMakeTargets—>INSTALL—>仅用于项目—>仅生成INSTALL(B)

在这里插入图片描述
此时会在build文件下,新建install文件夹里面装的都是重要东西,请记住这个路径。

在这里插入图片描述
其中include是头文件,x64是vs配置的文件,刚刚我们仅生成install后会在x64目录下vc15或v14,有lib和bin目录。VS配置实际上就是告诉VS2017,include的头文件在哪,库文件lib在哪。

VS2017配置(告诉VS头文件和库文件路径)

1、 系统环境变量

右键电脑【属性】
【高级系统设置】
【环境变量】
【系统变量】【Path】
变量名随便,路径…install\x64\vc15\bin
目的是让系统找到opencv的bin目录

在这里插入图片描述

2、复制dll文件

在这里插入图片描述

将该路径所有的dll复制到下面C盘中的两个路径中,目的是为了让系统找到OpenCV的dll文件
在这里插入图片描述

在这里插入图片描述

3配置相关目录

1、打开VS2017新建一个空项目

在这里插入图片描述

新建完之后,选择release x64,(想debug配置选debug,不过要和前面用VS编译选择的对应,就是刚刚编译很长的那里选debug的话,这就选debug,选release的就选release,我选择release教学)
在这里插入图片描述

2、右击项目

在这里插入图片描述

3、选择属性

在这里插入图片描述

选择release选release,debug的选debug,x64。

4、include目录

VC++目录—>包含目录中添加:
G:\software\Opencv4.1.0\opencv-4.1.0\build\install\include\opencv2
G:\software\Opencv4.1.0\opencv-4.1.0\build\install\include
(opencv4少了G:\software\Opencv4.1.0\opencv-4.1.0\build\install\include\opencv 这一条,不是opencv4要添加这一条)

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

5、lib目录

在这里插入图片描述

在这里插入图片描述

6、通用属性—>链接器—>输入—>附加的依赖项中添加

在这里插入图片描述
数字对应版本
需要注意,release写opencv_world410.lib
debug的写opencv_world410d.lib。(这是选择两种方法,配置不同之处就在这里)

验证contrib模块代码

#include "opencv2/opencv.hpp"  
#include"opencv2/xfeatures2d.hpp"
using namespace cv;
using namespace std;
int main() {
 Mat img = imread("1.jpg");//图片路径,可以是相对路径,也可以是绝对路径
 cvtColor(img, img, COLOR_BGR2GRAY);
 Ptr<Feature2D> sift = xfeatures2d::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;
}
发布了4 篇原创文章 · 获赞 3 · 访问量 428

猜你喜欢

转载自blog.csdn.net/weixin_43193231/article/details/105102308
今日推荐