opencv應用——腐蝕與膨脹


---恢復內容開始---

腐蝕與膨脹屬於形態學操作,所謂的形態學,就是改變物體的形狀,形象理解一些:腐蝕=變瘦    膨脹=變胖

主要是采用 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

       

 

---恢復內容結束---


免責聲明!

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



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