在OpenCV中使用SIFT、SURT等需要头文件#include <opencv2/nonfree/nonfree.hpp>
同时需要初始化模块 initModule_nonfree();
通过定义FeatureDetector的对象可以使用多种特征检测方法。
Ptr<FeatureDetector> FeatureDetector::create(const string& detectorType);
detectorType包括:
“FAST” – FastFeatureDetector
“STAR” – StarFeatureDetector
“SIFT” – SIFT (nonfree module)
“SURF” – SURF (nonfree module)
“ORB” – ORB
“MSER” – MSER
“GFTT” – GoodFeaturesToTrackDetector
“HARRIS” – GoodFeaturesToTrackDetector with Harris detector enabled
“Dense” – DenseFeatureDetector
“SimpleBlob” – SimpleBlobDetector
通过定义DescriptorExtractor的对象创建特征向量生成器
Ptr<DescriptorExtractor>descriptor_extractor = DescriptorExtractor::create(const string& detectorType)
通过定义DescriptorMatcher的对象创建特征匹配器
Ptr<DescriptorMatcher>descriptor_matcher = DescriptorMatcher::create(const string& detectorType)