将多张图像对齐到一张图像中?

发布于 2024-08-27 22:21:41 字数 144 浏览 11 评论 0原文

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

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

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

What is a good method to align images together that may have different rotations, exposures, etc, but have the same background or other fixed reference?

Adobe Photoshop can do this with its "Photomerge" feature.

How can I do this programatically? Is there an Open Source application that does it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

假装不在乎 2024-09-03 22:21:41

您想要搜索图像拼接图像配准,因为这些也是它的众所周知的名称。这篇维基百科文章提供了一些有用的信息。但我只知道商业图书馆可以做到这一点,而不知道任何开源图书馆。

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

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

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

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

You want to search for image stitching or image registration as these are the names that it's also known by. This wikipedia article has some useful information. But I only know of commercial libraries that do it, not any open source ones.

The basic outline of the process (in the commercial library I know of) is this:

  1. Initially you have to specify the rough alignment of the images, i.e.
    • Image A is to the left of image B and they overlap by less that 10%.
    • Image C is to the right of image B and they overlap by 10-20% etc.
  2. Based on the parameters in 1) the algorithm will attempt to find unique a "template" in the overlapping regions. It will then use a template matching technique to locate the template in each of the 2 overlapping images.
  3. Item 2) can be repeated several times to give a series of matching locations, that can then be used to provide an exact fit.

In step 3 you can also take account of distortion such as rotation and lens distortion. But to allow for changes in colour step 2 would need to be more advanced (i.e. not just based on the greyscale pixel level).

There's an feature request to add this functionality to the AForge library, but at the moment it's not been done and I don't know the current status.

柳若烟 2024-09-03 22:21:41

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

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

Updating the answer by Matt Warren, there is an article on CodeProject explaining how automatic image stitching could be done using Accord.NET. It also explains some of the theory behind the process.

The Accord.NET Framework is a framework written in C# which extends the original AForge.NET Framework with new tools and libraries.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文