标签: opencv video transformation
我有两个来自视频输入的连续帧,我使用FAST算法检测两个关键点。我使用平方差方法(SSD)来匹配关键点 所以基本上我在两个帧之间匹配了关键点。现在我想计算匹配关键点集中两个帧之间的仿射变换(缩放+旋转+平移) 我知道如何从一对两点计算仿射变换 我的问题是我们如何计算它超过两个或三个点?我知道我必须使用最小中位数方法,但我是这个领域的新手,所以我不知道如何使用它。 有人可以详细解释一下这个问题,还是提供一个有用的链接,以简单的方式做到这一点?
答案 0 :(得分:2)
您可以使用函数findHomography,doc来实现此目的。
findHomography
如果您提供的所有点匹配都是匹配良好,则可以保留参数method的默认值(即值0)。然后将使用最小二乘法。
method
但是,如果您从SSD关键点匹配中获得了点匹配,那么您可能会在真正的匹配中出现一些错误的匹配。因此,使用RANSAC或Least Medians等稳健方法可以获得更好的结果。
请注意,此findHomography函数返回透视变换(即完整的3x3矩阵)。如果你真的想要一个仿射变换(2x3矩阵),你必须自己实现最小二乘(看{4}})或RANSAC(见this post)。