将多个图像对齐成一个图像?

时间:2010-04-07 05:29:48

标签: image-processing alignment template-matching image-stitching

将图像对齐在一起可能有不同的旋转,曝光等,但具有相同背景或其他固定参考的好方法是什么?

Adob​​e Photoshop可以通过其“Photomerge”功能实现此目的。

我该如何以编程方式执行此操作?是否有开源应用程序可以做到这一点?

2 个答案:

答案 0 :(得分:4)

您想要搜索image stitchingimage registration,因为这些名称也是众所周知的。这个wikipedia article有一些有用的信息。但我只知道这样做的商业图书馆,而不是任何开源图书馆。

该过程的基本概要(在我所知的商业图书馆中)是:

  1. 最初,您必须指定图像的粗略对齐方式,即
    • 图像A位于图像B的左侧,它们重叠的比例小于10%。
    • 图像C位于图像B的右侧,它们重叠10-20%等。
  2. 基于1)中的参数,算法将尝试在重叠区域中找到唯一的“模板”。然后,它将使用template matching技术在2个重叠图像中找到模板。
  3. 第2项可重复几次,以提供一系列匹配位置,然后可用于提供精确匹配。
  4. 在步骤3中,您还可以考虑旋转和镜头失真等失真。但是为了允许颜色变化,步骤2需要更高级(即不仅仅基于灰度像素级别)。

    有一个feature request可以将此功能添加到AForge library,但目前还没有完成,我不知道当前的状态。

答案 1 :(得分:4)

更新answer by Matt Warren,有一个article on CodeProject explaining how automatic image stitching could be done using Accord.NET。它还解释了该过程背后的一些理论。

Accord.NET Framework是一个用C#编写的框架,它使用新的工具和库扩展了原始的AForge.NET框架。