在利用opencv进行图像处理的过程中,很多时候需要对两张图像混合,或者为其中一张图像加上一个LOGO等操作。
在opencv中的addWeight函数提供了很好的处理方法:
addWeighted()
dst = cv2.addWeighted(src1, alpha, src2, beta, gamma,dst,dtype)
其中src1和src2是输入图像数组,而alpha,beta是执行加权加法时要考虑的相应权重。gamma是静态权重,将被添加到图像的所有像素中
dst和dtype默认值未None
addWeighted()函数返回包含结果图像像素值的numpy数组, 其原理可以由如下公式描述:
dst = scr1*alpha + scr2*beta + gamma
示例1:使用addWeighted融合两个图像
我们将拍摄两张图像,并将它们的alpha和beta值相加0.5进行混合:
import cv2
# read two images
src1 = cv2.imread('./image1.png', cv2.IMREAD_COLOR)
src2 = cv2.imread('./image2.png', cv2.IMREAD_COLOR)
# add or blend the images
dst = cv2.addWeighted(src1, 0.5, src2, 0.5, 0.0)
# save the output image
cv2.imwrite('./image.png', dst)
原图1和原图2: