openCV2.4.13+VS2015+Cmake开发环境配置,解决nonfree问题

我用的是opencv3.1.0,挺好用的,且和VS20115配置压迫简单很多。但是对于nonfree这个库不支持,所以我又下了一个opencv2.4.13的源代码包,用Cmake编译,工具下载:点击打开链接,首先是解压opencv的文件,然后用Cmake编译,这些详细过程我就不写了,网上资料一大把,编译器选择vs2015 win64或vs2015,都可以,这和系统没有关系。但是要和VS2015的配置相对应。一般在VS2015下选择Debug Win32或Debug x64。这就和上面选择的编译器相对应了。接下来参考点击打开链接配置VS2015,过程一模一样。nonfree就可以使用了。这是我的测试程序:

#include
#include
#include
#include
#include
using namespace cv;
using namespace std;
int main()
{
	system("color 2F");	//改变console字体颜色
	//载入元图片并显示
	Mat srcIamge1 = imread("C:\\Users\\wjch\\Desktop\\house.png", 1);
	Mat srcIamge2 = imread("C:\\Users\\wjch\\Desktop\\tower.jpg", 1);
	if (!srcIamge1.data||!srcIamge2.data)
	{
		printf("读取图片错误,请检查路径");
		return false;
	}
	imshow("原始图1", srcIamge1);
	imshow("原始图2", srcIamge2);

	//定义要用到的变量和类
	int minHassian = 400;//定义SURF中的hessian阈值特征点检测算子
	SurfFeatureDetector detector(minHassian);//定义一个surfFeatureDetector(SURF)特征检测类对象
	vectorkeypoints_1, keypoints_2;//vector模板类是可以存放任意类型的动态数组,能够增加和压缩数据
	//调用detect函数检测SURF特征关键点,保存在vector容器中
	detector.detect(srcIamge1, keypoints_1);
	detector.detect(srcIamge2, keypoints_2);
	//绘制特征关键点
	Mat img_keypoints_1, img_keypoints_2;
	drawKeypoints(srcIamge1, keypoints_1, img_keypoints_1, Scalar::all(-1), DrawMatchesFlags::DEFAULT);
	drawKeypoints(srcIamge2, keypoints_2, img_keypoints_2, Scalar::all(-1), DrawMatchesFlags::DEFAULT);
	 //显示效果图
	imshow("特征检测效果图1", img_keypoints_1);
	imshow("特征检测效果图2", img_keypoints_2);
	waitKey(0);
	return 0;
}
测试结果:

openCV2.4.13+VS2015+Cmake开发环境配置,解决nonfree问题_第1张图片

openCV2.4.13+VS2015+Cmake开发环境配置,解决nonfree问题_第2张图片

提示:因为我的opencv3.1.0配置的vs2015下Debug x64,为了避免冲突和方便切换,opencv2.4.13配置为Debug Win32。

你可能感兴趣的:(图像处理,CMake编译,openCV,nonfree,vs2015)