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

32 篇文章 1 订阅
23 篇文章 2 订阅

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");



  • 8
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值