opencv实现两幅图像加权融合

addWeighted()函数来实现两幅图像的线性(不同系数下)融合。

函数原型:

void addWeighted(InputArray src1, double alpha, InputArray src2,double beta, double gamma, OutputArray dst, int dtype=-1);

参数:
第一个参数:src1,表示进行加权操作的第一个图像对象

第二个参数:double型的alpha,表示第一个图像的加权系数

第三个参数:src2,表示进行加权操作的第二个图像对象

第四个参数:double型的beta,表示第二个图像的加权系数,很多情况下,有关系 alpha+beta=1.0

第五个参数:double型的gamma,表示一个 作用到加权和后的图像上的标量,可以理解为加权和后的图像的偏移量

第六个参数:dst,表示两个图像加权和后的图像,尺寸和图像类型与src1和src2相同。

 

调用方法:

float rate = 0.5;

addWeighted(image1,rate,image2,1-rate,0,image);

注意,image1和image2的大小和通道数要相同。

opencv实现两幅图像加权融合      opencv实现两幅图像加权融合

融合后:

opencv实现两幅图像加权融合