我正在尝试实现两张图片的alpha混合以进行图像拼接。第一张图片如下所示-> 这是我的第二张图片-> 这是我的结果图片-> 您可以看到结果不太好。我认为我首先需要找到它们之间的重叠区域,然后在重叠部分实现alpha混合。
首先,您看到了OpenCV 2.3中引入的新的“拼接”模块吗?它提供了一组构建拼接流程的模块,包括混合和“查找重叠区域”(例如注册)步骤。这是文档:http://docs.opencv.org/modules/stitching/doc/stitching.html,这里有一个拼接应用的示例:stitching_detailed.cpp 我建议您学习此示例代码以更好地理解细节。关于查找重叠区域,计算机视觉中有几种常见方法:- 光流法 - 模板匹配 - 特征匹配对于您的情况,我推荐最后一种方法 - 它在照片上效果非常好。而且这种方法已经在OpenCV中实现 - 探索OpenCV源代码,看看cv::detail::BestOf2NearestMatcher如何工作。