图像的运算必须保证两张图片的shape一致
一、加法
add的运算规则,两个图对应位置的元素相加,如果超过255,全部变成255
代码:
import cv2
import numpy as np
cat=cv2.imread('./cat1.jpeg')
dog=cv2.imread('./dog1.jpeg')
print(cat.shape)
print(dog.shape)
new_cat=cat[0:330,0:600]
new_dog=dog[0:330,0:600]
img=cv2.add(new_cat,new_dog)
cv2.imshow('img',np.hstack((new_cat,new_dog,img)))
print(img.real)
key=cv2.waitKey(0)
cv2.destroyAllWindows()
二、减法
#减法,对应位置的元素相减,对应位置的元素小于0,统一变成0
import cv2
import numpy as np
cat=cv2.imread('./cat1.jpeg')
dog=cv2.imread('./dog1.jpeg')
print(cat.shape)
print(dog.shape)
new_cat=cat[0:330,0:600]
new_dog=dog[0:330,0:600]
img=cv2.subtract(new_cat,new_dog)
cv2.imshow('img',np.hstack((new_cat,new_dog,img)))
print(img.real)
key=cv2.waitKey(0)
cv2.destroyAllWindows()
三、乘法
import cv2
import numpy as np
cat=cv2.imread('./cat1.jpeg')
dog=cv2.imread('./dog1.jpeg')
print(cat.shape)
print(dog.shape)
new_cat=cat[0:330,0:600]
new_dog=dog[0:330,0:600]
img=cv2.multiply(new_cat,new_dog)
cv2.imshow('img',np.hstack((new_cat,new_dog,img)))
print(img.real)
key=cv2.waitKey(0)
cv2.destroyAllWindows()
四、除法
import cv2
import numpy as np
cat=cv2.imread('./cat1.jpeg')
dog=cv2.imread('./dog1.jpeg')
print(cat.shape)
print(dog.shape)
new_cat=cat[0:330,0:600]
new_dog=dog[0:330,0:600]
img=cv2.divide(new_cat,new_dog)
cv2.imshow('img',np.hstack((new_cat,new_dog,img)))
print(img.real)
key=cv2.waitKey(0)
cv2.destroyAllWindows()
五、图片和数字的运算
相加:每个元素和100进行加运算,超出255的数字,都会被截断,相当于%256
import cv2
import numpy as np
dog=cv2.imread('./dog1.jpeg')
print(dog.shape)
#图片还可以和单个的数字进行运算
#每个和100进行加运算,超出255的数字,都会被截断,相当于%256
new_dog=dog+100
cv2.imshow('img',np.hstack((dog,new_dog)))
print(img.real)
key=cv2.waitKey(0)
cv2.destroyAllWindows()
版权声明:本文为LYSSLQ2015原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。