Opencv - 没有cvAddWeighted的叠加图像

时间:2011-11-26 16:45:08

标签: c++ image opencv

有很多教程展示了如何在opencv中混合两个图像:

但所有这些都是基于这个等式:

opencv blending http://opencv.itseez.com/_images/math/afeb868ed1632ace1fe886b5bfbb6fd933b742b8.png

这意味着我将通过平均它们来合并两个图像,因此我将在两个图像上失去强度

例如,设 alpha = 0.5,f0(x)= 255,f1(x)= 0 。应用此等式后,结果图像 g(x)= 127 。这不是我需要的。第一张图片应保持不变。透明度必须在第二个中应用。

我的问题是:

当第一个图像f0(x)覆盖第一个图像f0(x)时,不应该改变第一个图像f0(x),并且应该对第二个图像f1(x)应用α。

我无法弄清楚如何做到这一点。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

不幸的是,OpenCV不支持Alpha通道。来自imread文档:
请注意,在当前实现中,alpha通道(如果有)将从输出图像中剥离。例如,如果flags > 0

,则将4通道RGBA图像加载为RGB

有关使用imagemagick的可能解决方法,请参阅this SO帖子。

希望有帮助!