gpt4 book ai didi

android - OpenCV ORB 特征检测器如何工作?

转载 作者:IT老高 更新时间:2023-10-28 22:02:08 25 4
gpt4 key购买 nike

我想使用 ORB 特征检测器和提取器实现基于特征的对齐算法。
到目前为止,我使用 ORB 提取了特征。来自 OpenCV 的类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 构造函数参数的含义)?

附:这是我的第一个问题。而且我不能发布超过 2 个链接。对于 opencv 文档,请使用 this .

最佳答案

更新:现在它在 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 有:

两种类型的描述符:

  • 浮点描述符:
    • 筛选
    • 冲浪
  • uchar 描述符:
    • ORB
    • 简述

以及对应的匹配器:

  • 对于浮点描述符:
    • FlannBased
    • BruteForce<L2<float> >
    • BruteForce<SL2<float> >//从 2.3.1 开始
    • BruteForce<L1<float> >
  • 对于 uchar 描述符:
    • BruteForce<Hamming>
    • BruteForce<HammingLUT>
    • FlannBased带 LSH 索引//自 2.4.0 起

因此您需要修改您的代码以使用例如 BruteForce<Hamming> ORB 描述符的匹配器。可以使用 L2 或 L1 距离来匹配 uchar 描述符,但结果会不正确,并且 findHomography 会返回不令人满意的结果。

关于android - OpenCV ORB 特征检测器如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7232651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com