---恢復內容開始---
腐蝕與膨脹屬於形態學操作,所謂的形態學,就是改變物體的形狀,形象理解一些:腐蝕=變瘦 膨脹=變胖
主要是采用 cv2.erode() 和 cv2.dilate()
例如以下圖片所示:
這樣就很形象生動容易理解了,需要注意一點的是,腐蝕和膨脹主要針對二值化圖像的白色部分
腐蝕:
在原圖的每一個小區域里取最小值,由於是二值化圖像,只要有一個點為0,則都為0,來達到瘦身的目的
看圖:
上代碼應用cv2.erode() 函數
img = cv2.imread('j.bmp', 0) kernel = np.ones((5, 5), np.uint8) erosion = cv2.erode(img, kernel) # 腐蝕
這個時候的任務就是指定一個上圖中區域的大小,也就是核的大小,這個核叫做結構元素,形態學操作也是通過卷積實現的
我們可以通過 cv2.getStructuringElement()
來生成不同形狀的結構元素
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5)) # 矩形結構
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5)) # 橢圓結構
kernel = cv2.getStructuringElement(cv2.MORPH_CROSS, (5, 5)) # 十字形結構
膨脹:
就是取得局部最大值,效果是“變胖”
dilation = cv2.dilate(img, kernel) # 膨脹
文章參考:https://www.jianshu.com/p/05ef50ac89ac#%E5%BC%95%E7%94%A8
---恢復內容結束---