3.1 图像加法
一、Numpy加法 二、OpenCV加法
图像加法运算,有两种方法。 第一种使用Numpy包进行加法运算;第二种是使用OpenCV实现加法运算。 两种加法的运算方法不同。
一、Numpy加法(取模运算) Numpy加法,实现方式是直接使用"+"进行运算。 格式:result = image1 + image2
使用Numpy的加法运算称作是取模运算。什么是取模运算呢? 图像中任何一个像素表示成二进制,以8位为例,就是0000 0000 ~ 1111 1111,对应的十进制是0-255。 当两个图像相加时,就是对应的像素值相加。相加之后,像素值很可能超过255。 取模运算就是:如果两个像素值相加<=255,那就取他们的和作为结果。比如100+58,结果为158。 如果两个像素相加,值超过255,那就把这个值对255进行取模。比如:255+58 > 255,结果为58。
注意:做加法的时候,图像类型需要一致。
例1:
结果:
可以看到,脸本来偏白,像素值较大,比如是200。两个偏白的相加,得到的黑色了。(200+200)% 255 = 155。
二、OpenCV加法(饱和运算) 如果用OpenCV来实现加法,实现方式是通过cv2.add()函数实现。
result = cv2.add(image1, image2)
cv2.add()实现的是饱和运算。即如果两个像素值相加<=255,那就取他们的和作为结果。比如100+58,结果为158。 如果两个像素相加,值超过255,那就取255。比如:255+58 > 255,结果为255。
注意:做加法的时候,图像类型需要一致。
例1:
结果:
可以看到,脸本来偏白,像素值较大,比如是200。两个偏白的相加,得到的是纯白色了。200+200 > 255 , 取255。
|
||