1

我不确定这是否属于 stackoverflow 或其他 stackexchange 站点 - 非常欢迎在这里输入。

我使用 python OpenCV 将目标图像的 BRISK 关键点描述符与三个不同的模板进行匹配。

什么是确定哪个模板是最合适的模板的实用、稳健、统计合理的方法?

现在我计算cv2.RANSAC返回的内点数cv2.findHomography(顺便说一下,它不会返回拟合优度统计数据)并采用具有最高数字的模板。

我查看了描述符距离的直方图,它似乎总是以高斯为中心(奇怪地)在大约 105(单位?)。

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

非常感谢指导 - 谢谢!

4

1 回答 1

3

这开始是一个评论,但有点太长了。

实际上,OpenCV 在内部计算重投影误差并且不返回它。但是一旦你获得了单应性,你可以自己做同样的事情,不是吗?事实上,该算法最小化了所有点的重投影误差之和。OpenCV 文档中对该过程的完整描述

由于您有匹配项(因此源点和模板点的图像坐标)。您可以计算每个模板的平均重投影误差,可能只使用被视为内点的点,然后选择最低的一个。

从另一个网站上的类似答案:

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) )

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

于 2018-08-07T14:01:38.130 回答