opencv形態學操作之開運算、閉運算


原圖:

開運算:

先腐蝕后膨脹叫開運算(因為先腐蝕會分開物體,這樣容易記住),其作用是:分離物體,消除小區域。這類形態學操作用cv2.morphologyEx()函數實現:

下面兩份代碼分別對應通過先腐蝕后膨脹的效果 和 直接通過開運算的效果

import cv2
import numpy as np

img = cv2.imread("zw.jpg", 0)
kernel = np.ones((3, 3), np.uint8)
kerne2 = np.ones((5, 5), np.uint8)
erodtion = cv2.erode(img, kernel, iterations=2)
dilation = cv2.dilate(erodtion, kerne2, iterations=1)
import cv2
import numpy as np

img = cv2.imread("zw.jpg", 0)
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))  # 矩形結構
open = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)

 

 可以看到兩者差別不大。

閉運算

先膨脹后腐蝕(先膨脹會使白色的部分擴張,以至於消除/"閉合"物體里面的小黑洞,所以叫閉運算)

import cv2
import numpy as np

img = cv2.imread("zw.jpg", 0)
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))  # 矩形結構
open = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel, iterations=2)

 

 可以看出左側原圖中的黑點,通過閉運算后被填充掉了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM