一、什麼是形態學 What's Morphology?
在數學上講的數學形態學(Mathematical Morphology) 是一門建立在「格論」和「拓撲學」基礎之上的圖像分析學科,也就是我們今天要拿來做影像處理部分的基本理論。
Morphology 這項工具在影像處理裡面可以說是非常的強大!到目前為止介紹過的影像處理方法裡面,你幾乎都能找到其他的方法來取代去做到類似的效果,像是如果想要 Find Edge 你可以在Spatial domain 做或者到Frequency domain 做。但唯獨 Morphology 的東西你在某些 case上,你不用 Morphology 還真的想不到什麼好的方法來做這件事。像是可以用在:
可以說是非常的實用、泛用,然後在正式開始使用之前,還是要能看懂它數學式子想表達的意思。
不知道大家對高中/職時期學的集合論還記得多少啊 >"< 接下來會在數學式中出現的大概有,聯集(OR)、交集(AND)、補集(NOT),順便在這邊幫各位複習一下。 AND、OR、NOT,其真值表如下:
用集合的圖形表示如下:
一般來說,除非有特別宣告,不然Morphology 是用於處理 Binary(二元)的影像。
另外可能還有一個我們需要知道的定義,叫做 Reflection(鏡射),其定義如下:
原來的 藍色集合 在做完 reflection 以後,就會變成 紅色集合 的那個樣子。
二、侵蝕與膨脹 Erosion and Dilation
Ok,在了解完前面介紹的那些之後,我們就可以來講 Morphology 裡最基礎的兩個動作 Dilation 跟 Erosion。
Dilation 的定義如下:
在實作上你可以理解成:
Erosion 的定義如下:
這部分的公式,理解的方式跟Dilation 那部分式一樣的,只差在最後的條件是 B 要整個包含在 A 裡面。
從上面連續幾張圖下來,我想你大概也有個概念了。
你的目標(A) 在被你用 Structures Element (B) 做完Dilation之後,目標就會變大了!所以這個動作在中文有人把它稱做「增胖」或者「膨脹」。 而 Target 在做完 Erosion 後就縮小了,這個動作也可稱做「侵蝕」。 最終 Target 會被你侵蝕/膨脹的程度是怎麼樣的則取決於你所設計 Structures Element 的大小與形狀,雖然常用的多為 m*m 或 m*n 的矩形,但它是可以被設計成其他幾何圖形的!完全取決於你今天的需求。 三、開啟與關閉 Opening and Closing
在介紹完 Dilation 跟 Erosion 後就輕鬆啦~ 因為接下來 Morphology 其他大部分的方法都是靠Dilation跟Erosion用不同的排列組合去變形,像是接下來要介紹的 「開啟運算 Opening」 跟 「關閉運算 Closing」。
開啟運算 Opening:
其實Opening 說穿了,就是先做Erosion 再做 Dilation。其作用等同是你拿 Structures Element 在Target 的內部任意移動,Structures Element 如果到不了的地方就會被消除掉,可以將圖形凸出的銳角給鈍化。
關閉運算 Closing:
接著把Closing 拿來跟 Opening 比你會發現,其實就是反過來做而已。變成先Dilation 再 Erosion,等同你拿Structures Element 在Target 的外部移動,進不去的地方就把它填滿,可以將圖形內陷的銳角給鈍化。
再來用一張圖,稍微總結一下剛剛介紹的四種 Morphology 運算: 四、形態學濾波 Morphology Filtering
就像我在這篇文章最開始的地方講的,Morphology 的應用有很多,不太可能在這篇文章把它們都講完,所以在這邊 Jason 就先提個簡單的,讓你們了解一下它有什麼用、它是怎麼用的。
至於其他的應用,有機會的話往後再多寫幾篇文張將這一方面補上。 回到今天範例,形態學濾波。 可以看到上圖左一裡面有大大小小不同的方點( 有1*1、3*3、5*5、7*7、9*9、15*15 等6種尺寸),今天我們希望把15*15的方點留下,其他的東西我們不想要是雜訊、雜點要將它給濾掉。 如果前面講的你都懂了,那麼這邊你大概就知道,我們只要設計一個11*11 or 13*13 or 15*15 的Structures Element 去跟它做 Erosion 這個部份我們就做完了,結果會長的像上圖左二。 利用Erosion 的原理,小於Structures Element 的方點會直接被侵蝕到不見,以13*13 的 Structures Element 我們想要留下的 Target 會被侵蝕到變成3*3的方點(11*11 -> 5*5、15*15 -> 1*1),這樣我們就達到我們的目的,將不必要的東西給去除,但是最終我們不希望改變 Target 的原始大小,這時我們再用同一個Structures Element 去做Dilation 將 Target 增胖回原來的尺寸,如上圖右一。 Ok,今天這篇就先寫到這邊吧~ 感謝各位看官收看 :")
4 評論
jimsong729
2/19/2020 22:06:54
謝謝您, 很好的文章. 幫助我恢復了以前學影像處理的記憶, 謝謝
回覆
Gordon
11/30/2020 23:50:51
反射的英文應該為Reflection,Refection是點心、茶點的意思,是refreshment 的同義詞。
回覆
Jason Chen
12/1/2020 02:32:38
哇~ 真的欸,你看的真仔細,你沒說我還沒發現xDD
回覆
Gordon
12/2/2020 00:17:25
感謝您xD 發表回覆。 |
Jason Chen人不光是生來就擁有一切,而是靠他從學習中得到的一切來造就自己。- 歌德 文章分類
全部
封存檔
九月 2023
|