Alpha与两个透明图像混合

问题描述:

我想与两个图像的alpha混合都有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还有其他计算方法或函数吗?

问候

看那cvFunction addWeighted()。它执行你需要的东西 这里是link

+0

感谢您的回复!看来'addWeighted()'函数对所有像素采用相同的alpha值。我可以为每个像素应用src1和src2拥有的不同的alpha值吗? – 2014-12-05 11:52:26

+0

不,使用addWeighted()是不可能的。你可以初始化mat元素并使用multiply()。 但是,如果我以前的答案适用于您的第一个问题,请将其标记为接受的答案 – rafaoc 2014-12-08 05:31:03