OpenCV学习之路-13. 图像的加法运算

OpenCV学习之路-13.

OpenCV学习之路-13. 图像的🐻加法运算

前言

【OpenCV学习:satisfied:之路】是针对Python OpenCV学习所🔥打造的一场刷题狂🐖欢party!
对基础知识把握🐂不牢固的话,欢迎来⭐学习嗷~喜欢的话就🎲抓紧收藏起来吧!

如:satisfied:果对学习没有自制🐒力或者没有一起学👅习交流的动力,欢迎🐻进学习交流群 正在🔥跳转
,我们一起交流🎲学习,报团打卡!


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

函数说明:

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

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

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

参数说🐒明:

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

注意事项:

  • OpenCV 加法和 numpy 🐕加法之间有区别:cv2.add() 是🎲饱和运算(相加后如🎲大于 255 则结果为 255),而 Numpy 加:satisfied:法是模运算。
  • 使用 cv2.add() 函⭐数对两张图片相加🎲时,图片的大小和类🐂型(通道数)必须相同。
  • 🎲使用 cv2.add() 函数对一张图🐕像与一个标量相加,💙标量是指一个 1×3 的 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()

例🐕程说明

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

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

OpenCV学习之🎲路-13. 图像的加法运算

(👅本节完)

未经允许不得转载:青年小说 » OpenCV学习之路-13. 图像的加法运算