【CV】OpenCV基本操作④——算术操作
图像加法
- 使用Opencv的cv.add()函数把两幅图像相加
- 简单地通过numpy操作添加两个图象,如res = img1 + img2
两个图象应该具有相同的大小和类型,或者第二个图像可以是标量值
注意:Opencv加法和numpy加法之间存在差异。Opencv的加法是饱和操作,而numpy加法是模运算
x = np.unit8([250])
y = np.unit8([10])
print(cv.add(x, y)) # [[255]] 250 + 10 = 260 -->255
print(x + y) # [4] (250 + 10) % 256 = 4
所以对图像进行加法操作时,Opencv的结果会好一点
示例:将下面两张图片相加
图像的混合
其实也是加法,但是两幅图像的权重不同,这就会给人一种混合或者透明的感觉。图像混合的计算公式如下:
g(x)=(1−α)f0(x)+αf1(x)g(x) = (1-\alpha)f_0(x) + \alpha f_1(x)g(x)=(1−α)f0(x)+αf1(x)可以通过修改α\alphaα的值(0–>1),可实现很多组合
使用cv2.addWeighted()可以按下面公式对图片进行混合操作dst=α⋅img1+β⋅img2+γdst = \alpha \cdot img1 + \beta \cdot img2 + \gammadst=α⋅img1+β⋅img2+γ
示例: