4

我正在尝试使用两个图像实现 alpha 混合以进行图像拼接。我的第一张图片是这个-> 在此处输入图像描述

这是我的第二张图片-> 在此处输入图像描述

这是我的结果图像-> 在此处输入图像描述

如您所见,结果不正确。我想我首先必须找到两者之间的重叠区域,然后在重叠部分上实现 alpha 混合。

4

2 回答 2

4

首先,你有没有看到 OpenCV 2.3 中引入了一个新的“拼接”模块?

它提供了一组用于拼接管道的构建块,包括混合和“找到重叠”(例如注册)步骤。这是一个文档:http ://docs.opencv.org/modules/stitching/doc/stitching.html和一个拼接应用示例:stitching_detailed.cpp

我建议您研究此示例的代码,以便更好地理解细节。

关于发现重叠,计算机视觉中有几种常见的方法:

  • 光流
  • 模板匹配
  • 特征匹配

对于你的情况,我推荐最后一个 - 它在照片上效果很好。这种方法已经在 OpenCV 中实现了——探索 OpenCv 源代码,看看它是如何cv::detail::BestOf2NearestMatcher工作的。

于 2012-06-01T20:21:29.210 回答
1

我认为最常见的方法是 SIFT,在两张图像中找到一些关键点,然后将它们扭曲以获得您的结果。看到这个

这里是关于 SIFT 和全景拼接的解释。

于 2012-06-02T04:30:41.173 回答