【问题标题】:SIFT descriptors on subimages do not sum up to those on the whole image?子图像上的 SIFT 描述符不能与整个图像上的描述符相加?
【发布时间】:2011-10-28 16:15:31
【问题描述】:

我在 OpenCV 2.3 中使用了 SIFT 检测器和提取器,发现在子图像上检测到的关键点数量与整个图像上的关键点数量之和并不相同。

具体来说,如果我在图像 A 上使用 SIFT 检测器,检测器会检测到 N 个 SIFT 关键点。 如果我将 A 划分为四个子区域 A_1、A_2、A_3、A_4 并分别在这些区域上运行检测器,检测器会相应地检测到 N_1、N_2、N_3、N_4 个 SIFT 关键点。 令人惊讶的是,N_1 + N_2 + N_3 + N_4 不等于 N!

这种现象对于 SIFT 算法是否正确?或者这是由于 OpenCV 2.3 的实施不善造成的?

【问题讨论】:

    标签: computer-vision sift


    【解决方案1】:

    SIFT 检测器在图像上使用一组高斯滤波器。这些过滤器的结果在图像子区域的边缘附近不会相同。如果您查看关键点位置,您会发现变化最多的点是图像子区域附近的点。

    此外,在SIFT算法中有一个关键点非极大值抑制阶段,其中关键点强度与最强关键点进行比较,如果较弱则丢弃。在完整图像中将使用全局最大值,而在基于区域的使用中,每个点都将使用正常子区域的最大值进行测试,导致差异很小。

    【讨论】:

    • 非常感谢!!这真的很有帮助!
    猜你喜欢
    • 2015-10-27
    • 2011-07-19
    • 2014-04-12
    • 1970-01-01
    • 2017-04-23
    • 2012-01-09
    • 1970-01-01
    • 2012-10-07
    • 2012-04-16
    相关资源
    最近更新 更多