opencv-------图像的运算之加减乘除

图像的运算必须保证两张图片的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版权协议,转载请附上原文出处链接和本声明。