【问题标题】:Alpha blending with two transparent imagesAlpha 混合与两个透明图像
【发布时间】:2015-02-03 10:54:16
【问题描述】:

我正在尝试与两个图像在 OpenCV 中都有 alpha 通道的 alpha 混合。

double r, g, b, a; //source image colors
double Rd, Gd, Bd, Ad; //destination image colors

....

double result_r = r∗a + Rd*(1−a);
double result_g = g∗a + Gd*(1−a);
double result_b = b∗a + Bd*(1−a);
double result_a = a∗a + Ad*(1−a);

如果目标图像不透明,它可以正常工作。但我需要源和目标上的透明图像。 OpenCV还有其他的计算方法或功能吗?

问候

【问题讨论】:

    标签: image opencv image-processing graphics


    【解决方案1】:

    查看 cvFunction addWeighted()。它执行您需要的 这是link

    【讨论】:

    • 感谢您的回复!似乎addWeighted() 函数对所有像素采用相同的 alpha 值。我可以为每个像素应用 src1 和 src2 拥有的不同 alpha 值吗?
    • 不,addWeighted() 不可能。您可以初始化 mat 元素并使用 multiply()。但是,如果我之前的答案适用于您的第一个问题,请将其标记为已接受的答案
    猜你喜欢
    • 2015-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-28
    • 2011-12-06
    • 1970-01-01
    • 2012-04-13
    相关资源
    最近更新 更多