目录
本文使用环境为:
OpenCV中的cv.addWeighted函数是一个用于图像叠加的函数,它可以将两个具有相同尺寸和类型的图像按照指定的权重进行加权叠加。这个函数的主要作用是将两个图像融合在一起,以实现特定的视觉效果。
函数原型如下:
cv2.addWeighted(src1, alpha, src2, beta, gamma)
参数说明:
返回值:
给定两张图片:
完整代码,注意执行代码后,需要在bash窗口输入一个0-1之间的小数:
- from __future__ import print_function
- import cv2 as cv
-
- # opencv-python 4.8.0.74
- alpha = 0.5
- try:
- raw_input # Python 2
- except NameError:
- raw_input = input # Python 3
-
- print(''' Simple Linear Blender
- -----------------------
- * Enter alpha [0.0-1.0]: ''')
- input_alpha = float(raw_input().strip())
- if 0 <= alpha <= 1:
- alpha = input_alpha
- # 读取图片
- src1 = cv.imread(cv.samples.findFile('LinuxLogo.jpg'))
- src2 = cv.imread(cv.samples.findFile('WindowsLogo.jpg'))
- # 判断是否正常读取
- if src1 is None:
- print("Error loading src1")
- exit(-1)
- elif src2 is None:
- print("Error loading src2")
- exit(-1)
- # 渲染图片
- beta = (1.0 - alpha)
- dst = cv.addWeighted(src1, alpha, src2, beta, 0.0)
- # 显示
- cv.imshow('dst', dst)
- cv.waitKey(0)
- # 释放窗口
- cv.destroyAllWindows()
如下图是我输入0.5的效果图: