专栏地址:『youcans 的 OpenCV 例程 200 篇』
文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』
【youcans 的 OpenCV 例程 200 篇】15. 图像的加权加法(cv2.addWeight)
函数 cv2.addWeight() 用于图像的加权加法运算。
函数说明:
cv2.addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]]) → dst
函数 cv2.addWeighted() 对两张相同大小和类型的图像按权重相加,可以实现图像的叠加和混合。加权加法的计算表达式为:
dst = src1 * alpha + src2 * beta + gamma
参数说明:
- scr1, scr2:ndarray 多维数组,表示一个灰度或彩色图像
- alpha:第一张图像 scr1 的权重,通常取为 0~1 之间的浮点数
- beta:第二张图像 scr2 的权重,通常取为 0~1 之间的浮点数
- gamma: 灰度系数,图像校正的偏移量,用于调节亮度
- dtype 输出图像的深度,即每个像素值的位数,可选项,默认等于 src1.depth()
- 返回值:dst,加权加法运算结果的图像数组
注意事项:
- 使用 cv2.addWeight() 函数对两张图片相加时,图片的大小和类型(通道数)必须相同。
- alpha,beta,gamma 可调,可以根据需要调整图像的权重,以达到不同的显示效果。推荐取 beta=1-alpha, gamma=0。
基本例程:1.24 图像的混合(加权加法)
# 1.24 图像的混合(加权加法)
img1 = cv2.imread("../images/imgGaia.tif") # 读取图像 imgGaia
img2 = cv2.imread("../images/imgLena.tif") # 读取图像 imgLena
imgAddW1 = cv2.addWeighted(img1, 0.2, img2, 0.8, 0) # 加权相加, a=0.2, b=0.8
imgAddW2 = cv2.addWeighted(img1, 0.5, img2, 0.5, 0) # 加权相加, a=0.5, b=0.5
imgAddW3 = cv2.addWeighted(img1, 0.8, img2, 0.2, 0) # 加权相加, a=0.8, b=0.2
plt.subplot(131), plt.title("1. a=0.2, b=0.8"), plt.axis('off')
plt.imshow(cv2.cvtColor(imgAddW1, cv2.COLOR_BGR2RGB)) # 显示 img1(RGB)
plt.subplot(132), plt.title("2. a=0.5, b=0.5"), plt.axis('off')
plt.imshow(cv2.cvtColor(imgAddW2, cv2.COLOR_BGR2RGB)) # 显示 imgAddV(RGB)
plt.subplot(133), plt.title("3. a=0.8, b=0.2"), plt.axis('off')
plt.imshow(cv2.cvtColor(imgAddW3, cv2.COLOR_BGR2RGB)) # 显示 imgAddS(RGB)
plt.show()
本例程运行结果如下:
(本节完)
【第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)