1.用到的API
这些操作要求两张图片的宽高和通道数都相同,因此需要用到resize操作
new_bus = cv2.resize(bus,(dog.shape[:-1][::-1]))
以下的所有new_bus和dog都是自己写代码时定义的图片的名字,new_img是用来接收进行运算之后的图片
new_img = cv2.add(new_bus,dog)
new_img = cv2.subtract(new_bus,dog)
new_img = cv2.multiply(new_bus,dog)
new_img = cv2.divide(new_bus,dog)
其中,如果值超过了255,就等于255,如果值小于0,就等于0
2.完整代码
import cv2
import numpy as np
dog = cv2.imread("image/dog.png")
bus = cv2.imread("image/bus.jpg")
#加减乘除操作要求两张图片的大小和通道数一致
new_bus = cv2.resize(bus,(dog.shape[:-1][::-1]))
#在进行加减乘除运算的时候,如果数值大于255,就会等于255,如果小于0,就会等于0
#加法 add
new_img = cv2.add(new_bus,dog)
#减法subtract
new_img = cv2.subtract(new_bus,dog)
#乘法multiply
new_img = cv2.multiply(new_bus,dog)
#除法divide
new_img = cv2.divide(new_bus,dog)
#除了对两张图片进行加减乘除操作外,还能对一张图片进行自增和自减之类的操作
#如果超过了255,就对255取模
new_dog = dog+100
cv2.imshow("show",np.hstack((new_img,new_dog)))
cv2.waitKey(0)
cv2.destroyAllWindows()