Adr*_*scu 27 android opencv alignment computer-vision
我想使用ORB特征检测器和提取器实现基于特征的对齐算法.
到目前为止,我使用OpenCV中的ORB类
提取了这些特征ORB orb;
orb(gray_image,Mat(),features.keypoints,features.descriptors);
,并使用openCV中的knnMatch函数进行匹配.matcher.knnMatch(features1.descriptors, features2.descriptors, pair_matches,2);
之后我尝试使用findHomography函数找到一个单应性,但是这个函数需要在图像特征之间至少有4个匹配,并且在大多数情况下我测试过的图像不到4.
有人用过这个功能吗?是否有任何关于它的文档,或关于OpenCV的ORB类(ORB构造函数参数的含义)?
PS这是我的第一个问题.我不能发布超过2个链接.对于opencv文档,请使用此方法.
And*_*aev 48
更新:现在它是 OpenCV的文档中,在这里:
http://opencv.itseez.com/modules/features2d/doc/feature_detection_and_description.html#orb
有关该算法的详细说明,请访问:http://www.willowgarage.com/sites/default/files/orb_final.pdf
在OpenCV文档中没有提到它,但实际上OpenCV具有:
两种类型的描述符:
和相应的匹配器:
FlannBased
BruteForce<L2<float> >
BruteForce<SL2<float> >
//从2.3.1开始BruteForce<L1<float> >
BruteForce<Hamming>
BruteForce<HammingLUT>
FlannBased
LSH索引//从2.4.0开始因此,您需要修改代码以BruteForce<Hamming>
用于ORB描述符的匹配器.可以使用L2或L1距离来匹配uchar描述符,但结果将不正确并且findHomography返回不令人满意的结果.