win10+vs2019+opencv3.1.0+contrib

参考、拼凑了多篇博文,感谢这几位博主:

https://blog.csdn.net/weixin_42012977/article/details/82992962   (此博文在最后一步添加附加依赖项时有错误)

https://blog.nowcoder.net/n/a2a23494a1714a18837dfb74760824bc         (此博文较详细,完全按此博文来,应该没问题)

(开始之前,先确保电脑装了python(我是Python3.6)及numpy,不知道不装有没有影响,反正我装了。。)

首先下载cmake、opencv3.1.0、opencv_contrib3.1.0,由于cmake下载速度很快,因此本文只给出Opencv及contrib的云盘地址:

链接:https://pan.baidu.com/s/1wWA3ocaQShjpM5967bNAOQ 
提取码:yrbz

(都是博主从Opencv官网下的,放心用)

第一步,双击下载的Opencv3.1.0,选择一个合适的路径(纯英文路径),安装。

第二步,解压Opencv_contrib-3.1.0,我是解压到Opencv3.1.0路径里面,即依存关系为Opencv3.1.0包含Opencv_contrib-3.1.0。(后来看到网上大部分人是把Opencv3.1.0和Opencv_contrib-3.1.0放到同级目录下,即在一个文件夹File_new中包含有Opencv3.1.0和Opencv_contrib-3.1.0。但是我的做法也没出错误,不太懂有啥区别。)

第三步,安装cmake,注意安装过程中会用英文问你是否要将cmake添加到环境变量,默认是不添加的,你要手动改成添加。

第四步,打开cmake

1.where is the source code 选择opencv文件夹中source的目录,我的是D:/document/Cpp/opencv/sources,你可以根据实际情况更改目录

2.where to build the binaries 选择需要存放生成文件的目录,根据其他教程我选择的是D:/document/Cpp/opencv/new_bulid 这里要注意的是我们选择的目录最好还在opencv文件夹中,但不能是opencv文件夹中原有的目录,命名你开心就好,但最好是纯英文

3.点击configure,第一次使用会弹出对话框,选择对应的vs版本即可,其他的不用管。我的是vs2019 64位,所以我选择的是vs2019 Win64,之后点确认,程序开始运行,运行完成后会在最下方显示configuration done.

4.在cmake搜索框中搜索OPENCV_EXTRA_MODULES_PATH,将其值选择为opencv_contrib文件夹中的modules文件夹,我的是D:\document\Cpp\opencv\opencv_contrib-3.4.3,你需要选择对应的文件夹。同时要保证WITH_CUDA未被勾选,我的默认是不勾选的。最后再一次点击configure,成功之后依然会在最下边显示configuration done.对了,这两次点击之后都要等比较长的时间

点击generate,这一次很快。然后直接在cmake面板点击open project打开项目。至此Cmake中的操作全部完成,可以关掉它了。
之后的操作都是在vs2019中完成的。在第五步中已经打开了项目文件,因此接下来继续操作就好了。首先是选择x86或x64的DebugeRelease(注意Debuge和Release都要操作一遍此步骤),在菜单栏选择生成->生成解决方案,每次都需要十几分钟的等待,会提示生成的情况,我的是成功104个,有的可能会少,具体原因不是很清楚,但可以先往下进行。
之后右键CMakeTargets中的INSTAKLL,选择仅限于项目->仅生成INSTALL,等待一小会就好了。注意:debug和release之后都需要运行INSTALL,不然会少文件
第五步,配置环境变量(即将以下两个路径添加到电脑的环境变量中)

①、环境变量设置:

变量名:OPENCV
变量值:*\opencv\new_build\install

注:*表示安装目录

②、用户变量配置:

*\opencv\new_build\install\bin
注:*表示安装目录

第六步,配置项目环境

打开VS->新建一个空项目,创建空项目之后->源文件上右键->添加新建项目,然后调成Debug|x64模式。首先在属性管理器下(视图中可以找到)->右击Debug|X64->添加新项目属性表,然后给它起个OpenCV3.2.0Environments_Debug方便以后找到和分辨,之后可以自己将该项目下的该配置文件保存出来,以后直接添加即可。双击这个OpenCV3.2.0Environments_Debug,即可操作以下步骤。

①、包含目录:

*\opencv\new_build\install\include
*\opencv\new_build\install\include\opencv
*\opencv\new_build\install\include\opencv2

注:*表示安装目录

如下图:

win10+vs2019+opencv3.1.0+contrib_第1张图片

②、库目录:

*\opencv\new_build\install\lib
*\opencv\new_build\install\staticlib

注:*表示安装目录

如下图:

win10+vs2019+opencv3.1.0+contrib_第2张图片
③、附加依赖项:

首先打开上一步中出现过的*\opencv\new_build\install\lib这个文件夹,可以看到里面全是以.lib为后缀的文件,这里,注意,如果你要用Debug模式,就只将.lib前一个字母为d的文件的名字复制下来,添加到附加依赖项中;如果用Release模式,则把.lib前不是d的文件的名字复制下来,添加到附加依赖项中,否则会出错!

具体操作如下图:

win10+vs2019+opencv3.1.0+contrib_第3张图片

然后重启电脑,一定要重启电脑!重启后应该就成功了。

测试程序如下:

#include 
#include 

#include 
#include 
#include 

using namespace cv;
using namespace std;

int main()
{
	Mat src = imread("1.jpg");
	Mat src2 = imread("2.jpg");
	if ((src.data == NULL) || (src2.data == NULL))
	{
		cout << "No exist" << endl;
		return -1;
	}

	Ptr sift = xfeatures2d::SIFT::create(400); //括号参数越大越精确,自定

	vector  keypointsa, kp2;

	Mat a, b;
	sift->detectAndCompute(src, noArray(), keypointsa, a); //得到特征点和特征点描述
	sift->detectAndCompute(src2, noArray(), kp2, b);
	drawKeypoints(src, keypointsa, src);//画出特征点

	drawKeypoints(src2, kp2, src2);

	//接下来就是显示了
	imshow("pic1", src);
	imshow("pic2", src2);
	//这里只显示了pic1的特征点提取,pic2去掉注释即可显示。

	waitKey();
	return 0;
}

测试结果如下:

 win10+vs2019+opencv3.1.0+contrib_第4张图片

你可能感兴趣的:(学习笔记)