【OpenCV 例程200篇】13. 图像的加法运算(cv2.add)

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


【youcans 的 OpenCV 例程 200 篇】13. 图像的加法运算(cv2.add)


函数 cv2.add() 用于图像的加法运算。

函数说明:

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

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

两张图像相加时,将两张图像相同位置像素的各通道值或灰度值分别相加,可以理解为一种图像叠加方式;对一张图像与一个标量相加时,则将图像所有像素的各通道值分别与标量的各通道值相加。

参数说明:

  • scr1, scr2:进行加法运算的图像,或一张图像与一个 numpy array 标量
  • dst:输出的图像,可选项,默认值为 None
  • mask:掩模图像,8位灰度格式;掩模图像数值为 0 的像素,输出图像对应像素的各通道值也为 0。可选项,默认值为 None
  • dtype:图像数组的深度,即每个像素值的位数,可选项
  • 返回值:dst,运算结果图像,ndarray 多维数组

注意事项:

  1. OpenCV 加法和 numpy 加法之间有区别:cv2.add() 是饱和运算(相加后如大于 255 则结果为 255),而 Numpy 加法是模运算。
  2. 使用 cv2.add() 函数对两张图片相加时,图片的大小和类型(通道数)必须相同。
  3. 使用 cv2.add() 函数对一张图像与一个标量相加,标量是指一个 1x3 的 numpy 数组,相加后图像整体发白。

基本例程:1.22 图像的加法

    # 1.22 图像的加法 (cv2.add)
    img1 = cv2.imread("../images/imgB1.jpg")  # 读取彩色图像(BGR)
    img2 = cv2.imread("../images/imgB3.jpg")  # 读取彩色图像(BGR)

    imgAddCV = cv2.add(img1, img2)  # OpenCV 加法: 饱和运算
    imgAddNP = img1 + img2  # # Numpy 加法: 模运算

    plt.subplot(221), plt.title("1. img1"), plt.axis('off')
    plt.imshow(cv2.cvtColor(img1, cv2.COLOR_BGR2RGB))  # 显示 img1(RGB)
    plt.subplot(222), plt.title("2. img2"), plt.axis('off')
    plt.imshow(cv2.cvtColor(img2, cv2.COLOR_BGR2RGB))  # 显示 img2(RGB)
    plt.subplot(223), plt.title("3. cv2.add(img1, img2)"), plt.axis('off')
    plt.imshow(cv2.cvtColor(imgAddCV, cv2.COLOR_BGR2RGB))  # 显示 imgAddCV(RGB)
    plt.subplot(224), plt.title("4. img1 + img2"), plt.axis('off')
    plt.imshow(cv2.cvtColor(imgAddNP, cv2.COLOR_BGR2RGB))  # 显示 imgAddNP(RGB)
    plt.show()

例程说明 1.22:

本例程运行结果如下图所示。图 3 是 cv2.add() 饱和加法的结果,图 4 是 numpy 取模加法的结果。

  • 饱和加法以 255 为上限,所有像素只会变的更白(大于原值);取模加法以 255 为模,会导致部分像素变黑 (小于原值)。
  • 因此,一般情况下应使用 cv2.add 进行饱和加法操作,不宜使用 numpy 取模加法。

在这里插入图片描述

(本节完)


【第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)

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

youcans_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值