我有相同场景的图像聚焦在不同的距离。我想对齐图像,使每个特征在每个图像中处于完全相同的位置。我怎么能用opencv做到这一点?
答案 0 :(得分:9)
首先,您已确定图像之间的转换。它可以像移位一样简单,也可以像非线性翘曲一样复杂。聚焦操作不仅可以移动,还可以略微缩放甚至剪切图像。在这种情况下,您必须使用Homography来匹配它们。
其次,您必须尝试的最简单方法是手动选择至少4个对应点的巴黎,记录它们的坐标并将它们输入findHomography()函数。得到的3x3变换可以在warpPerspective()中用于匹配图像。如果结果良好,您可以通过使用SURF点并匹配其描述符来自动查找对应关系的过程。
最后,如果结果不令人满意,你必须进行比单应性更普遍的转换。我会尝试分段试图分别匹配图像。无论如何,有关您的输入和最终目标的更多信息将有助于正确解决问题。
答案 1 :(得分:5)
您可以使用openCV的image stitching或feature machting算法。
功能匹配的主要步骤是:
答案 2 :(得分:3)
基本思想是在X和Y方向上对图像及其2D平移进行面内旋转,以便根据匹配的特征点进行旋转。
查看Image Alignment Algorithms,您可以在其中找到两种使用OpenCV(带代码)的方法。