Opencv学习笔记:addWeighted函数(图像融合)

这个函数的作用是计算两个数组(图像阵列)的加权和。原型如下:

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

  • 第一个参数,InputArray 类型的srcl, 表示需要加权的第一个数组,常常填一个Mat;
  • 第二个参数,double类型的alpha, 表示第一个数组的权重;
  • 第三个参数,InputArray 类型的src2, 表示第二个数组,它需要和第一个数组拥有相同的尺寸和通道数;
  • 第四个参数,double 类型的beta, 表示第二个数组的权重值;
  • 第五个参数,double类型的gamma, 一个加到权重总和上的标量值。其含义通过接下来列出的式子自然会理解;
  • 第六个参数,OutputArray 类型的dst,输出的数组,它和输入的两个数组拥有相同的尺寸和通道数:
  • 第七个参数,int类型的dtype, 输出阵列的可选深度,有默认值-1。当两个输入数组具有相同的深度时,这个参数设置为-1 (默认值),即等同于srcl .depth()。

下面的数学公式表示:用addWeighted函数计算以下两个数组(src1 和src2 )的加权和,得到结果输出给第四个参数,也就是addWeighted 函数的作用的矩阵表达式。

	dst = src1 [I]*alpha+ src2[I]*beta + gamma;

理论和函数的讲解就是上面这些,接下来我们来看代码实例,以融会贯通。

int main()
{
	Mat src1, src2, dst;
	src1 = imread("E:\\picture\\马.png");
	src2 = imread("E:\\picture\\星空.png");

	imshow("src1图", src1);
	imshow("src2图", src2);


	addWeighted(src1, 0.3, src2, 0.7, 0, dst);


	imshow("【效果】", dst);

	waitKey(0);

    return 0;
}

待 融合的两张图src1,src2:
在这里插入图片描述

效果图dst:

在这里插入图片描述

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值