1.腐蚀操作:
类似于化学反应,用酸腐蚀金属等等效果类似,因而被称为腐蚀操作。
import cv2 import matplotlib.pyplot as plt import numpy as np # 载入汉字 展示原图 img = cv2.imread('E:/img/6.jpg') cv2.imshow('img',img) cv2.waitKey(0) cv2.destroyAllWindows() # 腐蚀范围2x2 kernel = np.ones((2,2),np.uint8) # 迭代次数 iterations=1 erosion = cv2.erode(img,kernel,iterations = 1) cv2.imshow('erosion',erosion) cv2.waitKey(0) cv2.destroyAllWindows()
原图如下,带有许多不需要的细线,可以利用腐蚀操作去除细线:
腐蚀操作后
2.膨胀操作
与名称同义,进行一个膨胀。上图明显腐蚀后,线条与原来相比变细了。这时可以采取一个膨胀操作来增宽线条。
代码为先腐蚀后膨胀的操作:
import cv2 import matplotlib.pyplot as plt import numpy as np # 载入汉字 展示原图 img = cv2.imread('E:/img/6.jpg') cv2.imshow('img',img) cv2.waitKey(0) cv2.destroyAllWindows() # 腐蚀范围2x2 kernel = np.ones((2,2),np.uint8) # 迭代次数 iterations=1 erosion = cv2.erode(img,kernel,iterations = 1) cv2.imshow('erosion',erosion) cv2.waitKey(0) cv2.destroyAllWindows() # 膨胀范围 kernel = np.ones((3,3),np.uint8) # 迭代次数 img_dilate = cv2.dilate(erosion,kernel,iterations = 1) cv2.imshow('dilate', img_dilate) cv2.waitKey(0) cv2.destroyAllWindows()
膨胀操作后,线条明显变粗。