opencv4.0.0 +opencv_contrib在vs2015下编译 :win10 调用SIFT特征检测

运行环境:

win10

visual studio 2015(vc14)

opencv4.0.0

 

♠opencv4.0.0安装依赖(五步)

1.下载opencv_contri ,下载地址:https://github.com/opencv/opencv_contrib 

在Branch->Tags里面对版本号进行修改,之后下载到本地即可。

opencv4.0.0 +opencv_contrib在vs2015下编译 :win10 调用SIFT特征检测_第1张图片

关于解压位置:我的解压位置供参考:

opencv4.0.0 +opencv_contrib在vs2015下编译 :win10 调用SIFT特征检测_第2张图片

说明:opencv是我下载的opencv4.0.0解压的文件夹;

          opencv_buildx64是我新建的文件夹,存储安装依赖后的opencv。名字可以任取,建议全英文格式;

          opencv_contrib-4.0.0是下载依赖后解压的文件夹。

 

2. 安装cmake,下载地址:https://cmake.org/download/ 

安装完成后即出现在软件列表里面。点击运行。

opencv4.0.0 +opencv_contrib在vs2015下编译 :win10 调用SIFT特征检测_第3张图片

如果软件列表里面没有出现,打开解压位置的bin文件夹,双击运行cmake-gui.exe即可。

打开,会有编译器选择:

opencv4.0.0 +opencv_contrib在vs2015下编译 :win10 调用SIFT特征检测_第4张图片

【重要的事情说三遍】

 编译器选择我选了visual studio 2015 Win64。下面用默认的compiler就行,无需修改。

 编译器选择我选了visual studio 2015 Win64。下面用默认的compiler就行,无需修改。

 编译器选择我选了visual studio 2015 Win64。下面用默认的compiler就行,无需修改。

默认的是Visual Studio 14 2015,这个到vs那里生成解决方案是【Win32】!!!这里不建议选这个。因为win32编译(install文件夹里)出来对应文件是x86,和opencv默认版本x64不匹配。

(别问我是怎么知道的 /微笑)

 

 之后设置source code,按图片里的即可。

source code放opencv文件夹里的source

where to build the binaries放在一个新建文件夹里

opencv4.0.0 +opencv_contrib在vs2015下编译 :win10 调用SIFT特征检测_第5张图片

 中间红框name和value的选择(三处):

●BUILD_opencv_world 打勾

opencv4.0.0 +opencv_contrib在vs2015下编译 :win10 调用SIFT特征检测_第6张图片

●OPENCV_ENABLE_NONFREE 打勾

●OPENCV_EXTRA_MODELS_PATH添加G:\opencv_400\opencv_contrib-4.0.0\opencv_contrib-4.0.0\modules

添加路径的时候建议按右边三个点那里选择,直接路径复制过去可能会有小错误。

opencv4.0.0 +opencv_contrib在vs2015下编译 :win10 调用SIFT特征检测_第7张图片

完成上述三步后,分别【Configure】->【Generate】->【Open Project】

直到name和value那里没有红色,configure和generate都提示一行成功。open project即用vs2015打开新建文件夹(G:\opencv_400\opencv_buildx64)下的OpenCV.sln文件。

 

3.生成解决方案,生成install文件夹

(这个过程大概需要半小时,详细操作如下)

●解决方案配置:Debug 和x64

opencv4.0.0 +opencv_contrib在vs2015下编译 :win10 调用SIFT特征检测_第8张图片

生成->生成解决方案

(大概十几分钟的样子,我也不太清楚这一过程是否需要联网)

opencv4.0.0 +opencv_contrib在vs2015下编译 :win10 调用SIFT特征检测_第9张图片

● 仅生成install

解决方案管理器,右击install

opencv4.0.0 +opencv_contrib在vs2015下编译 :win10 调用SIFT特征检测_第10张图片

选择:【仅用于项目】->【仅生成INSTALL】(如下图所示)

(而后大概等待十几分钟) 

opencv4.0.0 +opencv_contrib在vs2015下编译 :win10 调用SIFT特征检测_第11张图片

 ●将解决方案配置调为 Release x64,重复上述操作。

 

 4.环境变量及工程中的一些设置:

环境变量:将新生成的install\x64\vc14\bin加入环境变量PATH中。

opencv4.0.0 +opencv_contrib在vs2015下编译 :win10 调用SIFT特征检测_第12张图片

工程中的设置:新文件夹中的install取代之前的opencv。

之前工程设置三部分,这里只需要对包含目录和库目录进行修改,链接器里的内容无需做修改。

opencv4.0.0 +opencv_contrib在vs2015下编译 :win10 调用SIFT特征检测_第13张图片

 opencv4.0.0 +opencv_contrib在vs2015下编译 :win10 调用SIFT特征检测_第14张图片

opencv4.0.0 +opencv_contrib在vs2015下编译 :win10 调用SIFT特征检测_第15张图片

5.完成!测试代码:

#include 
#include 

#include 
#include 
#include 

using namespace cv;
using namespace std;

int main()
{
	Mat src= imread("H.jpg");
	Mat src2 = imread("22.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;
}

opencv4.0.0 +opencv_contrib在vs2015下编译 :win10 调用SIFT特征检测_第16张图片

参考博客

 

特征点匹配drawmatch待续...

你可能感兴趣的:(opencv4.0.0 +opencv_contrib在vs2015下编译 :win10 调用SIFT特征检测)