OpenCV 完整例程17. 两张图像的渐变切换

Posted Python小白进阶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV 完整例程17. 两张图像的渐变切换相关的知识,希望对你有一定的参考价值。

17. 两张图像的渐变切换

函数 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,加权加法运算结果的图像数组

注意事项:

  1. 使用 cv2.addWeight() 函数对两张图片相加时,图片的大小和类型(通道数)必须相同。
  2. alpha,beta,gamma 可调,可以根据需要调整图像的权重,以达到不同的显示效果。推荐取 beta=1-alpha, gamma=0。

扩展例程:1.26 两张图像的渐变切换 (改变加权叠加的权值)

    # 1.26 两张图像的的渐变切换 (改变加权叠加的权值)
    img1 = cv2.imread("../images/imgLena.tif")  # 读取图像 imgLena
    img2 = cv2.imread("../images/imgGiga.jpg")  # 读取彩色图像(BGR)
    wList = np.arange(0.0, 1.0, 0.05)  # start, end, step
    for w in wList:
        imgAddW = cv2.addWeighted(img1, w, img2, (1 - w), 0)
        cv2.imshow("imgAddWeight", imgAddW)
        cv2.waitKey(100)


以上是关于OpenCV 完整例程17. 两张图像的渐变切换的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV 完整例程21. 图像的叠加

OpenCV 完整例程54. OpenCV 实现图像二维卷积

OpenCV 完整例程62. 图像锐化——钝化掩蔽

OpenCV 完整例程39. 图像灰度的线性变换

OpenCV 完整例程38. 图像的反色变换(图像反转)

OpenCV 完整例程52. 图像的相关与卷积运算