-Harris
cv::cornerHarris(image,strength,3,3,0.01);
-Fast
cv::Ptr fast = cv::FastFeatureDetector::create();
//或
cv::FAST(InputArray image, std::vector &keypoints, int threshold)
//或
cv::FAST(InputArray image, std::vector &keypoints, int threshold, bool nonmaxSuppression, int type)
-SIFT
cv::Ptr sift = cv::xfeatures2d::SIFT::create();
//或
cv::Ptr sift = cv::xfeatures2d::SiftFeatureDetector::create();
-SURF
cv::Ptr surf = cv::xfeatures2d::SURF::create();
//或
cv::Ptr surf = cv::xfeatures2d::SurfFeatureDetector::create();
-ORB
cv::Ptr orb = cv::ORB::create();
cv::Ptr mser = cv::MSER::create();
-GFTT
cv::Ptr gftt = cv::GFTTDetector::create();
或者直接用goodFeaturesToTrack function;
-AGAST
cv::AGAST(InputArray image, std::vector &keypoints, int threshold)
//或
cv::AGAST(InputArray image, std::vector &keypoints, int threshold, bool nonmaxSuppression, int type)
//或
cv::Ptr agast = cv::AgastFeatureDetector::create();
-BRISK
cv::Ptr brisk = cv::BRISK::create();
cv::Ptr blob = cv::SimpleBlobDetector::create();
cv::Ptr kaze = cv::KAZE::create();
-AKAZE
cv::Ptr akaze = cv::AKAZE::create();
-SIFT
cv::Ptr sift = cv::xfeatures2d::SIFT::create();
//或
cv::Ptr sift = cv::xfeatures2d::SiftDescriptorExtractor::create();
-SURF
cv::Ptr surf = cv::xfeatures2d::SURF::create();
//或
cv::Ptr surf = cv::xfeatures2d::SurfDescriptorExtractor::create();
-BRIEF
Opencv中没有单独将BRIEF用来提取描述子,因为它是被用于ORB中的;
-BRISK
cv::Ptr brisk = cv::BRISK::create();
-ORB
cv::Ptr orb = cv::ORB::create();
ORB是用fast特征;
-KAZE
cv::Ptr kaze = cv::KAZE::create();
注:KAZE描述子只能使用KAZE或AKAZE特征点;
-AKAZE
cv::Ptr akaze = cv::AKAZE::create();
同样,AKAZE描述子也只能使用KAZE或AKAZE特征点;
-BruteForce-BFMatcher
cv::Ptr bf = cv::BFMatcher::create("BruteForce");
其中,匹配类型还可以是“BruteForce-L1”,“BruteForce-L2”,“BruteForce-Hamming”;
-FlannBased-FlannBasedMatcher
cv::Ptr flann = cv::FlannBasedMatcher::create("FlannBased");