问题描述
我想用ORB特征检测,并提取实现基于特征的比对算法。
到目前为止,我使用<一个提取的特征href="http://opencv.itseez.com/modules/features2d/doc/feature_detection_and_description.html?highlight=orb#ORB">ORB来自OpenCV的类 ORB的球体;
宝珠(gray_image,垫(),features.keypoints,features.descriptors);
并使用来自OpenCV中knnMatch功能 matcher.knnMatch缡(features1.descriptors,features2.descriptors,pair_matches,2);
从那以后,我想找到使用findHomography功能的单应,不过这个功能需要至少4图像特征之间的匹配,以及大多数的图像我测试我得到了不到4。
I want to implement a feature-based alignment algorithm using the ORB feature detector and extractor.
So far, I extracted the features using ORB class from OpenCVORB orb;
orb(gray_image,Mat(),features.keypoints,features.descriptors);
and matched them using the knnMatch function from openCV matcher.knnMatch(features1.descriptors, features2.descriptors, pair_matches,2);
After that I am trying to find a homography using findHomography function, but this function needs at least 4 matches between the image features, and on most of the images i tested I got less than 4.
有没有人使用这个功能吗?有没有关于它的任何文件,或有关从OpenCV的(ORB的构造函数参数的意思)?在ORB类
Has anybody used this feature? Is there any documentation about it, or about the ORB class from OpenCV(the meaning of the ORB constructor parameters)?
P.S。这是我的第一个问题。我不能发布超过2链接。对于OpenCV的文件用这。
P.S. This is my first question. and I can't post more than 2 links. For opencv documentation use this.
推荐答案
更新:现在的是的OpenCV的文档,在这里: http://opencv.itseez.com/modules/features2d/doc/feature_detection_and_description.html#orb
UPDATE: Now it is in the OpenCV documentation, here: http://opencv.itseez.com/modules/features2d/doc/feature_detection_and_description.html#orb
该算法的详细说明这里找到:http://www.willowgarage.com/sites/default/files/orb_final.pdf
A detailed description of the algorithm is found here: http://www.willowgarage.com/sites/default/files/orb_final.pdf
这不是在OpenCV的文件中提到,但实际上OpenCV的:
It is not mentioned in OpenCV documentation but actually OpenCV has:
两种类型的描述符:
- 浮动描述:
- SIFT
- SURF
- float descriptors:
- SIFT
- SURF
- ORB
- 简介
和相应的匹配:
- 浮法描述:
-
FlannBased
-
暴力破解&LT; L2&LT;浮动&GT; &GT;
-
暴力破解&LT; SL2&LT;浮动&GT; &GT;
//自2.3.1 -
暴力破解&LT; L1&LT;浮动&GT; &GT;
- for float descriptors:
FlannBased
BruteForce<L2<float> >
BruteForce<SL2<float> >
//since 2.3.1BruteForce<L1<float> >
-
暴力破解&LT;海明&GT;
-
暴力破解&LT; HammingLUT&GT;
-
FlannBased
与LSH索引//自2.4.0
BruteForce<Hamming>
BruteForce<HammingLUT>
FlannBased
with LSH index //since 2.4.0
所以,你需要修改code使用例如
暴力破解&LT;海明&GT;
匹配的ORB描述。它可以使用的L2或L1距离匹配UCHAR描述符,但结果将是不正确的,findHomography返回不能令人满意的结果。So you need to modify your code to use for example
BruteForce<Hamming>
matcher for ORB descriptors. It is possible to use L2 or L1 distance for matching uchar descriptors but results will be incorrect and findHomography returns unsatisfactory results.这篇关于如何OpenCV的ORB特征检测器的工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
-