首页 > 其他 > 详细

OpenCV之特征检测器(Feature Detector),描述子提取器(Descriptor Extractor)和描述子匹配器(Descriptor Matcher)

时间:2016-05-12 20:29:56      阅读:1096      评论:0      收藏:0      [点我收藏+]

1.特征检测子

    -Harris

cv::cornerHarris(image,strength,3,3,0.01);

    -Fast

cv::Ptr<cv::FastFeatureDetector> fast = cv::FastFeatureDetector::create();
//或
cv::FAST(InputArray image, std::vector<KeyPoint> &keypoints, int threshold)
//或
cv::FAST(InputArray image, std::vector<KeyPoint> &keypoints, int threshold, bool nonmaxSuppression, int type)

    -SIFT

cv::Ptr<cv::xfeatures2d::SIFT> sift = cv::xfeatures2d::SIFT::create();
//或
<pre name="code" class="cpp">cv::Ptr<cv::xfeatures2d::SiftFeatureDetector> sift = cv::xfeatures2d::SiftFeatureDetector::create();


    -SURF

cv::Ptr<cv::xfeatures2d::SURF> surf = cv::xfeatures2d::SURF::create();
//或
cv::Ptr<cv::xfeatures2d::SurfFeatureDetector> surf = cv::xfeatures2d::SurfFeatureDetector::create();

    -ORB

cv::Ptr<cv::ORB> orb = cv::ORB::create();

    -MSER

cv::Ptr<cv::MSER> mser = cv::MSER::create();

    -GFTT

cv::Ptr<cv::GFTTDetector> gftt = cv::GFTTDetector::create();

或者直接用goodFeaturesToTrack function;

    -AGAST

cv::AGAST(InputArray image, std::vector<KeyPoint> &keypoints, int threshold)
//或
cv::AGAST(InputArray image, std::vector<KeyPoint> &keypoints, int threshold, bool nonmaxSuppression, int type)
//或
cv::Ptr<cv::AgastFeatureDetector> agast = cv::AgastFeatureDetector::create();

    -BRISK

cv::Ptr<cv::BRISK> brisk = cv::BRISK::create();


    -SimpleBlob

cv::Ptr<cv::SimpleBlobDetector> blob = cv::SimpleBlobDetector::create();

    -KAZE

cv::Ptr<cv::KAZE> kaze = cv::KAZE::create();

    -AKAZE

cv::Ptr<cv::AKAZE> akaze = cv::AKAZE::create();

2.描述子提取器

    -SIFT

<span style="font-weight: normal;"><span style="font-size:12px;">cv::Ptr<cv::xfeatures2d::SIFT> sift = cv::xfeatures2d::SIFT::create();
//或
cv::Ptr<cv::xfeatures2d::SiftDescriptorExtractor> sift = cv::xfeatures2d::SiftDescriptorExtractor::create();</span></span>

    -SURF

<span style="font-weight: normal;"><span style="font-size:12px;">cv::Ptr<cv::xfeatures2d::SURF> surf = cv::xfeatures2d::SURF::create();
//或
cv::Ptr<cv::xfeatures2d::SurfDescriptorExtractor> surf = cv::xfeatures2d::SurfDescriptorExtractor::create();</span></span>

    -BRIEF

Opencv中没有单独将BRIEF用来提取描述子,因为它是被用于ORB中的;

    -BRISK

<span style="font-weight: normal;"><span style="font-size:12px;">cv::Ptr<cv::BRISK> brisk = cv::BRISK::create();</span></span>

    -ORB

<span style="font-size:12px;font-weight: normal;">cv::Ptr<cv::ORB> orb = cv::ORB::create();</span>
ORB是用fast特征; 

   -KAZE

<span style="font-size:12px;font-weight: normal;">cv::Ptr<cv::KAZE> kaze = cv::KAZE::create();</span>

注:KAZE描述子只能使用KAZE或AKAZE特征点;

    -AKAZE

<span style="font-size:12px;font-weight: normal;">cv::Ptr<cv::AKAZE> akaze = cv::AKAZE::create();</span>

同样,AKAZE描述子也只能使用KAZE或AKAZE特征点;

3.描述子匹配器

   -BruteForce-BFMatcher

cv::Ptr<cv::BFMatcher> bf = cv::BFMatcher::create("BruteForce");

其中,匹配类型还可以是“BruteForce-L1”,“BruteForce-L2”,“BruteForce-Hamming”;

   -FlannBased-FlannBasedMatcher

cv::Ptr<cv::FlannBasedMatcher> flann = cv::FlannBasedMatcher::create("FlannBased");



OpenCV之特征检测器(Feature Detector),描述子提取器(Descriptor Extractor)和描述子匹配器(Descriptor Matcher)

原文:http://blog.csdn.net/eternity1118_/article/details/51333364

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!