**
opencv3.4.4
//opencv2.4.10**
//增加头文件
#include<opencv2/core/core.hpp>
#include<opencv2/xfeatures2d/nonfree.hpp>
//提取特征点
cv::Ptr<cv::xfeatures2d::SurfFeatureDetector> surfDetector = cv::xfeatures2d::SurfFeatureDetector::create(Threshold);
///cv::SurfFeatureDetector surfDetector(Threshold); // 海塞矩阵阈值,在这里调整精度,值越大点越少,越精准
//特征点描述,为下边的特征点匹配做准备
cv::Ptr<cv::xfeatures2d::SurfDescriptorExtractor> SurfDescriptor = cv::xfeatures2d::SurfDescriptorExtractor::create();
///cv::SurfDescriptorExtractor SurfDescriptor;
//获得匹配特征点
cv::Ptr<cv::DescriptorMatcher> matcher = cv::DescriptorMatcher::create("FlannBased");
///cv::FlannBasedMatcher matcher;
surfDetector->detect/compute(...)
///surfDetector.detect/compute(...)
matcher->add(train_desc);
matcher->train();
matcher->match(imageDesc1, imageDesc2, matchePoints, cv::Mat());
///matcher.add(train_desc);
///matcher.train();
///matcher.match(imageDesc1, imageDesc2, matchePoints, cv::Mat());
完整测试代码对比:
opencv2.4.10:
#include "include_files.h"
#include <opencv2/opencv.hpp>
cv::Mat SURF_test(cv::Mat image01,cv::Mat image02,int Threshold)
{
cv::Mat image1,image2;
cv::Mat img_match;
cvtColor(image01, image1, CV_RGB2GRAY);
cvtColor(image02, image2, CV_RGB2GRAY);
//提取特征点
cv::SurfFeatureDetector surfDetector(Threshold); // 海塞矩阵阈值,在这里调整精度,值越大点越少,越精准
vector<c