我不确定这是否属于 stackoverflow 或其他 stackexchange 站点 - 非常欢迎在这里输入。
我使用 python OpenCV 将目标图像的 BRISK 关键点描述符与三个不同的模板相匹配。
确定哪个模板最合适的实用、稳健、统计可靠的方法是什么?
现在,我计算 cv2.findHomography
返回的 cv2.RANSAC
内点数(顺便说一句,它不返回拟合优度统计数据)并取具有最高编号的模板。
我看过描述符距离的直方图,它似乎总是以高斯分布为中心(奇怪地)在大约 105(单位?)。
https://en.wikipedia.org/wiki/Random_sample_consensus看起来很有用。
非常感谢指导 - 谢谢!
最佳答案
这开始是评论,但有点太长了。
事实上,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) )
计算两点之间的欧式距离。
关于python - 关键点描述符匹配 : How to calculate a goodness-of-fit per template?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51721466/