图像的运算
代码和笔记
python
import cv2
import numpy as np
"""
图像的运算
"""
# 读取图片
cat1 = cv2.imread('./img/cat.jpeg')
cat2 = cv2.imread('./img/cat.jpeg')
"""
加减乘除
"""
# 加法(有点杂交的感觉) 图片长宽和通道数相同
# 如果不一样使用ndarray的切片方法如cat[0:360,:499]
# 加法规则 两个图对应位置的元素相加,如果超过255,则变为255
# 也可以和数字相加, 超出255则 %256
new_img = cv2.add(cat1, cat2)
cv2.imshow('new_img', new_img)
# 减法 结果小于0,全部为0,变黑
new_img1 = cv2.subtract(cat1, cat2)
cv2.imshow('new_img1', new_img1)
# 乘法multipy 除divide类似
"""
图像融合(图片做线性运算)0.3和0.7是两张需要融合的图片各自的权重,-100是偏置(明暗程度)
"""
new_img2 = cv2.addWeighted(cat1, 0.3, cat2, 0.7, -100)
cv2.imshow('new_img2', new_img2)
"""
与&(bitwise_and) 异或^(bitwise_) 非~(bitwise_not)(0-255,即0反过来为255,也就是相当于255减去原来的值) 运算,OpenCV中对应位置对应进行运算
"""
cv2.waitKey(0)
cv2.destroyAllWindows()