圖像形態學處理


一.最基本兩個形態學運算----膨脹與腐蝕

 

啥叫形態學操作

形態學操作其實就是改變物體的形狀,比如腐蝕就是”變瘦”,膨脹就是”變胖”,看下圖就明白了:

(http://ex2tron.wang/opencv-python-erode-and-dilate/)

 

經驗之談:形態學操作一般作用於二值化圖,來連接相鄰的元素或分離成獨立的元素。腐蝕和膨脹是針對圖片中的白色(即前景)部分!

開/閉運算

先腐蝕后膨脹叫開運算(因為先腐蝕會分開物體,這樣容易記住),其作用是:分離物體,消除小區域。

經驗之談:很多人對開閉運算的作用不是很清楚,但看上圖↑,不用怕:如果我們的目標物體外面有很多無關的小區域,就用開運算去除掉;如果物體內部有很多小黑洞,就用閉運算填充掉。

為什么有了膨脹腐蝕還要開運算閉運算呢?其實開閉運算最重要的一點就是,可以保持物體原有大小。然后一個是消除物體內部孔洞的另一個是增強物體之間連接點的。

其他形態學操作

  • 形態學梯度:膨脹圖減去腐蝕圖,dilation - erosion,這樣會得到物體的輪廓:

 


 

膨脹與腐蝕能夠實現以下作用:

   1.消除噪聲

   2.分割出獨立的圖像元素,在圖像中連接相鄰的元素

   3.尋找圖像中的明顯的極大值區域或者極小值區域

   4.求出圖像的梯度

需要注意之處: 腐蝕和膨脹都是對圖像的白色部分(高亮部分)而言。膨脹是圖像中的高亮部分進行膨脹,類似於領域擴張,效果圖擁有比原圖更大的高亮區域;腐蝕是原圖的高亮部分被腐蝕,類似於領域被蠶食,效果圖擁有比原圖更小的高亮區域。

從數學的角度來說,膨脹和腐蝕操作就是將圖像與核進行卷積,核可以是任意形狀和大小的。

膨脹到底是怎么實現的呢?求局部最大值。

原圖與核進行卷積,將最大值賦予指定像素,從而使亮者更亮,效果就是亮的區域膨脹了。

再講腐蝕(Erosion):

操作與膨脹相反,求局部最小值。

可以理解為,移動結構B(核),如果結構B與結構A的交集完全屬於結構A的區域內,則保存該位置點,所有滿足條件的點構成結構A被結構B腐蝕的結果。

A被腐蝕后的結果貌似不對,好像應該是這樣的:

 


se_diamond =strel('diamond',4)創建一個菱形的結構元素,4是從結構化元素原點到其點的距離,必須為非負整數。

 


免責聲明!

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



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