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()
膨脹操作后,線條明顯變粗。