OpenCv-Python学习笔记(四):图像上的算术运算

目录

  • 图像加法
  • 图像混合

图像加法

你可以使用函数 cv2.add() 将两幅图像进行加法运算,当然也可以直接使用 numpy(res=img1+img)。两幅图像的大小,类型必须一致,或者第二个图像可以使一个简单的标量值。
注意:OpenCV 中的加法与 Numpy 的加法是有所不同的。OpenCV 的加法
是一种饱和操作,而 Numpy 的加法是一种模操作。
例如下面的两个例子:

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

这种差别在你对两幅图像进行加法时会更加明显。OpenCV 的结果会更好一点。所以我们尽量使用 OpenCV 中的函数。

图像混合

这其实也是加法,但是不同的是两幅图像的权重不同,这就会给人一种混合或者透明的感觉。图像混合的计算公式如下:g (x) = (1 − α) f0 (x) + αf1 (x)。
例如,把两幅图混合在一起。第一幅图的权重是 0.7,第二幅图的权重是 0.3。

import cv2

img_1 =cv2.imread("../data/image/2.jpeg")
img_2 = cv2.imread("../data/image/4.jpeg")
#将两幅图像混合
dst = cv2.addWeighted(img_1,0.7,img_2,0.3,0)
cv2.imshow("img1",img_1)
cv2.imshow("img2",img_2)
cv2.imshow("dst",dst)
cv2.waitKey()

OpenCv-Python学习笔记(四):图像上的算术运算_第1张图片
cv2.addWeighted()函数,计算两个数组(图像也看做是数组)的加权和。
第一个参数表示第一个图像。
第二个参数表示第一个图像的系数(权重)。
第三个参数表示第二个图像。
第四个参数表示第二个图像的系数(权重)。

你可能感兴趣的:(OpenCv-python,opencv,python,计算机视觉)