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

Adobe Photoshop 可以通过其“Photomerge”功能来做到这一点。

我怎样才能以编程方式做到这一点?有没有开源应用程序可以做到这一点?

有帮助吗?

解决方案

您想要搜索 image stitching 或者 image registration 因为这些也是它众所周知的名字。这 维基百科文章 有一些有用的信息。但我只知道商业图书馆可以做到这一点,而不知道任何开源图书馆。

该过程的基本轮廓(在我所知道的商业图书馆中)是这样的:

  1. 最初,您必须指定图像的粗略对齐方式,即
    • 图像 A 位于图像 B 的左侧,并且它们的重叠小于 10%。
    • 图像 C 位于图像 B 的右侧,它们重叠 10-20% 等。
  2. 基于 1) 中的参数,算法将尝试在重叠区域中找到唯一的“模板”。然后它将使用一个 模板匹配 在 2 个重叠图像中定位模板的技术。
  3. 第 2) 项可以重复多次,以给出一系列匹配位置,然后可以使用这些位置来提供精确的配合。

在步骤 3 中,您还可以考虑扭曲,例如旋转和镜头扭曲。但为了允许颜色变化,步骤 2 需要更高级(即不仅仅是基于灰度像素级别)。

有一个 功能要求 将此功能添加到 AForge 库, ,但目前还没有完成,不知道目前的状况。

其他提示

更新中 马特·沃伦的回答, , 有一个 CodeProject 上的文章解释了如何使用 Accord.NET 完成自动图像拼接. 。它还解释了该过程背后的一些理论。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top