OpenCV-Python[第三章]——加法操作与alpha blending

说明

普通的python加法’+’是溢出操作,opencv的加法函数cv2.add是饱和操作。

x = np.uint8([250])
y = np.uint8([10])
print x+y  # got 4
print cv2.add(x,y) # got 255

此外,OpenCV提供了权重加法函数cv2.addWeighted,其进行如下操作:
这里写图片描述
使用Win7系统自带的两张图片做测试,其结果如下:

左边的是cv2.add,可以看到饱和像素点变成了全白色了。右边使用权重加法cv2.addWeighted()实现了alpha blending。

完整代码

import numpy as np
import cv2
import matplotlib.pyplot as plt

x = np.uint8([250])
y = np.uint8([10])
print x+y
print cv2.add(x,y)

img1 = cv2.imread('Desert.jpg',1)
img2 = cv2.imread('Koala.jpg',1)
img3 = cv2.add(img1,img2)
img4 = cv2.addWeighted(img1,0.5,img2,0.5,0)
img3 = cv2.cvtColor(img3,cv2.COLOR_BGR2RGB)
img4 = cv2.cvtColor(img4,cv2.COLOR_BGR2RGB)
plt.subplot(121);plt.imshow(img3)
plt.subplot(122);plt.imshow(img4)

k = cv2.waitKey(0)
cv2.destroyAllWindows()

你可能感兴趣的:(OpenCV)