分水嶺分割方法,是一種基於拓撲理論的
數學形態學的分割方法,其基本思想是把圖像看作是測地學上的拓撲地貌,圖像中每一點像素的
灰度值表示該點的海拔高度,每一個局部極小值及其影響區域稱為集水盆,而集水盆的邊界則形成分水嶺。分水嶺的概念和形成可以通過模擬浸入過程來說明。在每一個局部極小值表面,刺穿一個小孔,然後把整個模型慢慢浸入水中,隨著浸入的加深,每一個局部極小值的影響域慢慢向外擴展,在兩個集水盆匯合處構築大壩,即形成分水嶺。
分水嶺的計算過程是一個疊代標註過程。分水嶺比較經典的計算方法是L. Vincent提出的。在該算法中,分水嶺計算分兩個步驟,一個是排序過程,一個是淹沒過程。首先對每個像素的灰度級進行從低到高排序,然後在從低到高實現淹沒過程中,對每一個局部極小值在h階高度的影響域採用先進先出(FIFO)結構進行判斷及標註。
分水嶺變換得到的是輸入圖像的集水盆圖像,集水盆之間的
邊界點,即為分水嶺。顯然,分水嶺表示的是輸入圖像極大值點。因此,為得到圖像的邊緣信息,通常把梯度圖像作為輸入圖像,即
g(x,y)=grad(f(x,y))={[f(x,y)-f(x-1,y)]2[f(x,y)-f(x,y-1)]2}0.5
式中,f(x,y)表示原始圖像,grad{.}表示梯度運算。
分水嶺算法對微弱邊緣具有良好的回響,圖像中的噪聲、物體表面細微的
灰度變化,都會產生過度分割的現象。但同時應當看出,分水嶺算法對微弱邊緣具有良好的回響,是得到封閉連續邊緣的保證的。另外,分水嶺算法所得到的封閉的集水盆,為分析圖像的區域特徵提供了可能。
為消除分水嶺算法產生的過度分割,通常可以採用兩種處理方法,一是利用先驗知識去除無關邊緣信息。二是修改梯度函式使得集水盆只回響想要探測的目標。
為降低分水嶺算法產生的過度分割,通常要對梯度函式進行修改,一個簡單的方法是對梯度圖像進行閾值處理,以消除灰度的微小變化產生的過度分割。即
g(x,y)=max(grad(f(x,y)),gθ)
式中,gθ表示閾值。
程式可採用方法:用
閾值限制梯度圖像以達到消除
灰度值的微小變化產生的過度分割,獲得適量的區域,再對這些區域的邊緣點的灰度級進行從低到高排序,然後在從低到高實現淹沒的過程,梯度圖像用Sobel運算元計算獲得。對梯度圖像進行閾值處理時,選取合適的閾值對最終分割的圖像有很大影響,因此閾值的選取是
圖像分割效果好壞的一個關鍵。缺點:實際圖像中可能含有微弱的邊緣,灰度變化的數值差別不是特別明顯,選取閾值過大可能會消去這些微弱邊緣。