目录
一、环境
二、addWeighted函数
三、代码演示
一、环境
本文使用环境为:
- Windows10
- Python 3.9.17
- opencv-python 4.8.0.74
二、addWeighted函数
OpenCV中的cv.addWeighted函数是一个用于图像叠加的函数,它可以将两个具有相同尺寸和类型的图像按照指定的权重进行加权叠加。这个函数的主要作用是将两个图像融合在一起,以实现特定的视觉效果。
函数原型如下:
cv2.addWeighted(src1, alpha, src2, beta, gamma)
参数说明:
- src1:第一个输入图像,可以是任意大小和类型。
- alpha:第一个输入图像的权重,范围为0到1。alpha越大,第一个输入图像在结果中所占的比重越大。
- src2:第二个输入图像,与src1具有相同的尺寸和类型。
- beta:第二个输入图像的权重,范围为0到1。beta越大,第二个输入图像在结果中所占的比重越大。
- gamma:可选参数,用于调整输出图像的亮度。默认值为0。
返回值:
- dst:加权叠加后的输出图像,与输入图像具有相同的尺寸和类型。
三、代码演示
给定两张图片:
完整代码,注意执行代码后,需要在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的效果图: