2014-02-28 173 views
8

我拥有聚焦在不同距离的相同场景的图像。我想对齐图像,使每个图像中的每个特征在完全相同的位置。我如何使用opencv来做到这一点?在opencv中对齐图像

回答

3

其基本思想是基于它们的匹配特征点在X和Y方向上平面旋转图像及其2D平移。

检出Image Alignment Algorithms您可以在这里找到两种使用OpenCV(带代码)的方法。

4

您可以使用image stitchingfeature machting算法的openCV。

特征匹配的主要步骤是:

  • 提取特征(SURF或SIFT或其他...)
  • 匹配功能(FLANN或暴力破解...)和过滤匹配数
  • 找到几何变换(RANSAC或LMeds ...)
8

首先,您已确定图像之间的转换。它可以像移位一样简单,也可以像非线性翘曲一样复杂。对焦操作不仅可以移动,而且可以轻微缩放甚至剪切图像。在这种情况下,你必须使用Homography来匹配它们。

其次,您必须尝试的最简单方法是手动选择至少4个相应点的巴黎,记录它们的坐标并将它们输入到findHomography()函数中。得到的3x3转换可用于warpPerspective()以匹配图像。如果结果是好的,你可以通过使用SURF点并匹配它们的描述符来自动查找对应关系。

最后,如果结果不理想,则必须进行比单应性更一般的转换。我会尝试分段Affine尝试分别匹配各个图像。无论如何,有关您的输入和最终目标的更多信息将有助于正确解决问题。

+0

[这里](http://stackoverflow.com/a/40640482)是在Python和O完全工作示例penCV显示如何使用SIFT/SURF自动检测匹配点并在该数据上应用findHomography()和warpPerspective()函数。 –