加载中…
个人资料
涛声依旧e
涛声依旧e
  • 博客等级:
  • 博客积分:0
  • 博客访问:3,402
  • 关注人气:5
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

OpenCV各个detector/descriptor/matcher的创建和使用

(2014-08-21 13:38:46)
标签:

佛学

分类: 程序调试
OpenCV里有很多的feature,建立和使用方法也比较杂,现在整理一下避免以后用到。
1、detector 
统一的定义方式:
Ptr  detector = FeatureDetector::create("STAR");
"FAST" – FastFeatureDetector
"STAR" – StarFeatureDetector
"SIFT" – SIFT (nonfree module)
"SURF" – SURF (nonfree module)
"ORB" – ORB
"BRISK" – BRISK
"MSER" – MSER
"GFTT" – GoodFeaturesToTrackDetector
"HARRIS" – GoodFeaturesToTrackDetector with Harris detector enabled
"Dense" – DenseFeatureDetector
"SimpleBlob" – SimpleBlobDetector

除了统一定义方式之外,有的可以用它自己的feature名字定义,比如
SurfFeatureDetector detector;
SiftFeatureDetector detector;
FastFeatureDetector detector;
STARFeatureDetector detector;

还有一种统一定义方式:
cv::Ptr  detector2 = cv::Algorithm::create("BRISK");
其中cv::可以去掉。
动态的特征点定义方式:
Ptr detector =
            new DynamicAdaptedFeatureDetector(
            AdjusterAdapter::create("SURF"), 100, 500, 5);


2、Descriptorextractor
统一定义方式:  Ptr extractor=DescriptorExtractor::create("SURF");
"SIFT" – SIFT
"SURF" – SURF
"BRIEF" – BriefDescriptorExtractor
"BRISK" – BRISK
"ORB" – ORB
"FREAK" – FREAK

个别定义方式:Ptr extractor=new SiftDescriptorExtractor;
Ptr extractor =new SurfDescriptorExtractor;
Ptr extractor =new BriefDescriptorExtractor;
其他定义方式:
 SurfDescriptorExtractor extractor;
SiftDescriptorExtractor extractor;
BriefDescriptorExtractor extractor;
其他的一些特征可以直接定义对象并用来detect和extract特征
比方说 BRISK  BRISKD(60,4,1.0f);
   BRISKD.create("BRISK");
   BRISKD.detect(object,kp_object);
   BRISKD.compute(object,kp_object,des_object);
3、matcher
统一定义方式 Ptr matcher = DescriptorMatcher::create("FlannBased");
BruteForce (it uses L2 )
BruteForce-L1
BruteForce-Hamming
BruteForce-Hamming(2)
FlannBased
其他定义方式:
BFMatcher matcher(type);
normType – One of NORM_L1, NORM_L2, NORM_HAMMING, NORM_HAMMING2. L1 and L2 norms are preferable choices for SIFT and SURF descriptors, NORM_HAMMING should be used with ORB, BRISK and BRIEF, NORM_HAMMING2 should be used with ORB when WTA_K==3 or 4 (see ORB::ORB constructor description).
FlannBasedMatcher matcher;

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有