【问题标题】:Align images in opencv在opencv中对齐图像
【发布时间】:2016-01-12 22:46:14
【问题描述】:

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

【问题讨论】:

标签: opencv image-processing


【解决方案1】:

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

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

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

【讨论】:

  • Here 是 Python 和 OpenCV 中一个完整的工作示例,展示了如何使用 SIFT/SURF 自动检测匹配点并在该数据上应用 findHomography() 和 warpPerspective() 函数。跨度>
【解决方案2】:

你可以使用openCV的image stitching或feature machting算法。

特征匹配的主要步骤是:

  • 提取特征(SURF 或 SIFT 或其他...)
  • 匹配特征(FLANN 或 BruteForce...)并过滤匹配项
  • 求几何变换(RANSAC 或 LMeds...)

【讨论】:

    【解决方案3】:

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

    查看Image Alignment Algorithms,您可以在其中找到两种使用 OpenCV(带代码)的方法。

    【讨论】:

      猜你喜欢
      • 2016-12-12
      • 2019-11-09
      • 2019-10-31
      • 2014-01-02
      • 2019-06-11
      • 1970-01-01
      • 1970-01-01
      • 2014-03-17
      • 2012-12-03
      相关资源
      最近更新 更多