图像运算
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
def show(img):
if img.ndim == 2:
plt.imshow(img, cmap='gray')
else:
plt.imshow(cv.cvtColor(img, cv.COLOR_BGR2RGB))
plt.show()
obj = cv.imread('pic/hedgehog500x500.jpg', 0)
bg = cv.imread('pic/line500x500.jpg', 0)
mask = cv.imread('pic/mask500x500.jpg', 0)
noise = cv.imread('pic/hedgehog_noise_500x500.jpg', 0)
show(np.hstack([obj, bg, mask, noise]))
img_add = obj + bg + mask + noise
show(img_add)
img_add = cv.add(obj*0.5, bg*0.5)
show(img_add)
减法
img_sub = np.uint8((img_add - bg * 0.5)*2)
img_sub2 = cv.subtract(img_add, bg*0.5)
show(np.hstack([img_sub, img_sub2]))
参考:极棒的数字图像处理入门到进阶教程:Python OpenCV实战