import cv2 #opencv读取的格式是BGR
import numpy as np
import matplotlib.pyplot as plt#Matplotlib是RGB
%matplotlib inline
# 读取
img=cv2.imread('lena.jpg')
img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# 图像二值化
ret, thresh1 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY)
# 膨胀与腐蚀分别展示
kernel = np.ones((3,3),np.uint8)
dilate = cv2.dilate(thresh1,kernel,iterations = 1)
erosion = cv2.erode(thresh1,kernel,iterations = 1)
res = np.hstack((dilate,erosion))
cv2.imshow('res', res)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 梯度=膨胀-腐蚀
gradient = cv2.morphologyEx(thresh1, cv2.MORPH_GRADIENT, kernel)
cv2.imshow('gradient', gradient)
cv2.waitKey(0)
cv2.destroyAllWindows()
膨胀与腐蚀分别展示
梯度=膨胀-腐蚀
梯度,轮廓,用圆来理解,大圆减小圆结果。