代码之家  ›  专栏  ›  技术社区  ›  jtlz2

关键点描述符匹配:如何计算每个模板的拟合优度?

  •  0
  • jtlz2  · 技术社区  · 8 年前

    我不确定这是属于stackoverflow还是另一个stackexchange站点-这里非常欢迎输入。

    我使用python OpenCV将目标图像的轻快的关键点描述符依次匹配到三个不同的模板。

    什么是一个实用的,健壮的,统计上合理的方法来决定哪个模板是最合适的?

    现在我计算 cv2.RANSAC inliers返回者 cv2.findHomography (顺便说一句,它不返回拟合优度统计值)并取数值最大的模板。

    我看过描述距离的柱状图,它看起来总是以高斯为中心(奇怪地)大约105(单位?).

    https://en.wikipedia.org/wiki/Random_sample_consensus 似乎很有用。

    非常感谢指导-谢谢!

    1 回复  |  直到 8 年前
        1
  •  2
  •   Demplo    8 年前

    这开始只是一个评论,但时间太长了。

    实际上,OpenCV在内部计算重投影错误,并且不返回它。但是一旦你得到了单字,你也可以自己做同样的事情,不是吗? 实际上,该算法将所有点上的重投影误差之和最小化。一个相当完整的过程描述在 OpenCV docs

    因为您有匹配项(因此源点和模板点的图像坐标)。您可以计算每个模板的平均重新投影错误,可能只使用作为内联处理的点,并选择最低的一个。

    从 a similar answer 在另一个站点上:

    computed_pt = H * source_pt
    error_pt = sqrt( (computed_pt.x - dst_pt.x)*(computed_pt.x - dst_pt.x) + (computed_pt.y - dst_pt.y)*(computed_pt.y - dst_pt.y) )
    

    计算两点之间的欧几里德距离。

    推荐文章