【Opencv】图像融合addWeighted()函数示例和详解

本文通过原理和示例对addWeighted()函数进行详解,,并通过改变融合系数展示多个结果,帮助大家理解和使用。

函数原理

addWeighted()函数的功能是根据给定的权重,将两个图像加权融合到一个输出图像中。加权融合是将两个图像的像素值根据其对应的权重进行加权求和,然后再加上一个标量值。这个过程是元素级的,也就是说,每个像素都会单独进行加权求和。

函数原型:

addWeighted(src1, alpha, src2, beta, gamma, dst, dtype)

参数解释;

src1:输入图像1。
alpha:输入图像1的权重。
src2:输入图像2。
beta:输入图像2的权重。
gamma:添加到结果中的标量。
dst:输出图像,其大小和类型与输入相同。
dtype:输出数组的深度类型,当参数为负数时函数会根据参数dst自动计算类型。

示例

我们首先读取了两个图像img1和img2,然后设置融合阈值,通过改变融合阈值可以查看不同的融合结果。

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main() {
    // 读取两个图像
    Mat img1 = imread("image01.jpg");
    Mat img2 = imread("image02.jpg");

    // 使用addWeighted函数进行加权融合
    addWeighted(img1, 0.5, img2, 0.5, 1, img1);
    // 显示结果图像
    imshow("Result", img1); 
    //保存结果
    imwrite("result.jpg", img1);
    waitKey(0); 
    destroyAllWindows();
    return 0;
}

img1在这里插入图片描述
img2
在这里插入图片描述

权重(0.5,0.5)

img1和img2权重为0.5和0.5时融合结果:
在这里插入图片描述

权重(0.8,0.2)

img1和img2权重为0.8和0.2时融合结果:
在这里插入图片描述

权重(0.2,0.8)

img1和img2权重为0.2和0.8时融合结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木彳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值