在 OpenCV 图像拼接中混合伪影

Posted

技术标签:

【中文标题】在 OpenCV 图像拼接中混合伪影【英文标题】:Blending artifacts in OpenCV image stitching 【发布时间】:2016-03-01 22:54:01 【问题描述】:

我正在使用 OpenCV 来混合一组预变形图像。作为输入,我有一些 4 通道图像(*.png 或 *.tif),我可以从中提取一个 bgr 图像和一个带有与图像(白色)和背景(黑色)相关的区域的 alpha 蒙版。 image 和 mask 都是 Blender 模块 cv::detail::Blender::blend 的输入。

当我使用羽毛 (alpha) 混合时,结果还可以,但是,我想避免重影效果。当我使用多波段时,图像边缘会出现一些伪影:

这个问题类似于here提出的问题,并解决了here。问题是,如果解决方案是创建一个二进制掩码(我已经从 alpha 通道中提取),它对我不起作用。如果我在两个图像之间的重叠处添加填充,它会从背景中获取像素,并且会更加混乱。

我想这可能与pyrUppyrDown 函数有关,因为创建高斯和拉普拉斯金字塔的模糊可能应用于整个图像,而不仅仅是正alpha 区域。无论如何,我不知道如何使用这些功能解决问题,也找不到其他有效的解决方案。

当我使用另一种多分辨率混合实现时,它可以完美运行,但是,我对集成 OpenCV 的多波段实现非常感兴趣。知道如何解决这个问题吗?

【问题讨论】:

【参考方案1】:

问题已在此处报告并解决:

http://answers.opencv.org/question/89028/blending-artifacts-in-opencv-image-stitching/

【讨论】:

以上是关于在 OpenCV 图像拼接中混合伪影的主要内容,如果未能解决你的问题,请参考以下文章

使用OpenCV进行图像全景拼接

Matlab:图像拼接和混合

OpenCV图像处理--常用图像拼接方法

OpenCV探索:图像拼接和图像融合技术

OpenCV 将浮点数据输入图像拼接过程

已知相机参数时的OpenCV图像拼接