【OpenCV 例程200篇】16. 不同尺寸的图像加法

专栏地址:『youcans 的 OpenCV 例程 200 篇』
文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』


【youcans 的 OpenCV 例程 200 篇】16. 不同尺寸的图像加法


函数 cv2.add() 用于图像的加法运算, 对两张相同大小和类型的图像进行加法运算,或对一张图像与一个标量进行加法运算。

函数说明:

cv2.add(src1, src2 [, dst[, mask[, dtype]]) → dst

函数 cv2.addWeight() 用于图像的加权加法运算,对两张相同大小和类型的图像按权重相加,可以实现图像的叠加和混合。

函数说明:

cv2.addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]]) → dst 

注意事项:

  1. 使用函数 cv2.add()、cv2.addWeight() 对两张图片相加时,图片的大小和类型(通道数)必须相同。

  2. 对于不同尺寸的图像加法,将小图叠加到大图的指定位置,可以按扩展例程 1.25 处理。


扩展例程:1.25 不同尺寸的图像加法

    # 1.25 不同尺寸的图像加法
    imgL = cv2.imread("../images/imgB2.jpg")  # 读取大图
    imgS = cv2.imread("../images/logoCV.png")  # 读取小图 (LOGO)

    x,y = 300,50  # 叠放位置
    W1, H1 = imgL.shape[1::-1]  # 大图尺寸
    W2, H2 = imgS.shape[1::-1]  # 小图尺寸
    if (x + W2) > W1: x = W1 - W2  # 调整图像叠放位置,避免溢出
    if (y + H2) > H1: y = H1 - H2

    imgCrop = imgL[y:y + H2, x:x + W2]  # 裁剪大图,与小图 imgS 的大小相同
    imgAdd = cv2.add(imgCrop, imgS)  # cv2 加法,裁剪图与小图叠加
    alpha, beta, gamma = 0.2, 0.8, 0.0  # 加法权值
    imgAddW = cv2.addWeighted(imgCrop, alpha, imgS, beta, gamma)  # 加权加法,裁剪图与小图叠加

    imgAddM = np.array(imgL)
    imgAddM[y:y + H2, x:x + W2] = imgAddW  # 用叠加小图替换原图 imgL 的叠放位置

    cv2.imshow("imgAdd", imgAdd)
    cv2.imshow("imgAddW", imgAddW)
    cv2.imshow("imgAddM", imgAddM)
    cv2.waitKey(0)

需要说明的是,对不同尺寸的图像叠加可以有不同的理解和处理。本例程是将小图叠加到大图的指定位置,运行结果如下图所示。

在这里插入图片描述

(本节完)


【第2章:图像的数值运算】
13. 图像的加法运算(cv2.add)
14. 图像与标量相加(cv2.add)
15. 图像的加权加法(cv2.addWeight)
16. 不同尺寸的图像加法
17. 两张图像的渐变切换


版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/125112487)
Copyright 2022 youcans, XUPT
Crated:2021-11-18
欢迎关注专栏: 『youcans 的 OpenCV 例程 200 篇』
更多内容请见:>『youcans 的 OpenCV 例程200篇 - 总目录』(https://blog.csdn.net/youcans/article/details/125112487)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

youcans_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值