加法运算符“+”和cv2.add()函数可用于执行图像加法运算。
用“+”运算符执行两个图像数组加法时,如果两个像素相加大于256,则会将其按256取模。cv2.add()函数执行两个图像数组加法时,如果两个像素相加大于256,则取255,示例代码如下。
test2-13.py:图像加法运算
import cv2
img1=cv2.imread('lena.jpg',cv2.IMREAD_REDUCED_COLOR_2) #读取图像
img2=cv2.imread('opencvlog.jpg',cv2.IMREAD_REDUCED_COLOR_2) #读取图像
img3=img1+img2
img4=cv2.add(img1,img2)
cv2.imshow('lena',img1) #显示原图像
cv2.imshow('log',img2) #显示原图像
cv2.imshow('lena+log',img3) #显示“+”运算结果图像
cv2.imshow('lenaaddlog',img4) #显示add()函数运算结果图像
cv2.waitKey(0)
cv2.addWeighted()函数可执行图像的加权加法运算,其基本格式如下。
dst = cv2.addWeighted(src1, alpha, src2, beta, gamma)
其中,变量dst保存结果,src1和src2为执行加权加法运算的两个图像数组,alpha和beta为权重,gamma为附加值。OpenCV按下面的公式执行图像数组的加权加法运算。
dst = src1alpha + src2beta + gamma
示例代码如下。
test2-14.py:图像的加权加法运算
import cv2
img1=cv2.imread('lena.jpg',cv2.IMREAD_REDUCED_COLOR_2) #读取图像
img2=cv2.imread('opencvlog.jpg',cv2.IMREAD_REDUCED_COLOR_2) #读取图像
img3=cv2.addWeighted(img1,0.8,img2,0.2,0)
cv2.imshow('lena',img1) #显示原图像
cv2.imshow('log',img2) #显示原图像
cv2.imshow('lena+log',img3) #显示addWeighted()函数运算结果图像
cv2.waitKey(0)