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。

 

 

               3.1 图像加法

 

 

 

注意:做加法的时候,图像类型需要一致。

 

例1:

'''
图像加法:使用Numpy的方式
'''

import cv2
import numpy as np

 

lena = cv2.imread("image/lena256.bmp")
lena2 = lena

result = lena + lena2

 

cv2.imshow("original", lena)
cv2.imshow("numpy", result)

 

cv2.waitKey()
cv2.destroyAllWindows()

 

结果:

3.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。

 

3.1 图像加法

 

注意:做加法的时候,图像类型需要一致。

 

 

 

例1:

'''
图像加法:使用Opencv库
'''

 

import cv2
import numpy as np

 

lena = cv2.imread("image/lena256.bmp")
lena2 = lena

result = cv2.add(lena, lena2)                              #加法

 

cv2.imshow("original", lena)
cv2.imshow("numpy", result)

 

cv2.waitKey()
cv2.destroyAllWindows()

结果:

3.1 图像加法

 

可以看到,脸本来偏白,像素值较大,比如是200。两个偏白的相加,得到的是纯白色了。200+200 > 255 , 取255。