• 沒有找到結果。

形態學分水嶺分割

在文檔中 中 華 大 學 (頁 31-35)

第二章 相關文獻回顧

2.7 形態學分水嶺分割

分水嶺分割法可說是目前有效的影像分割法之一,原是由Vincent and Soille 所提出[16],分水嶺概念是以三維(兩個空間座標對強度值)的方式來看此影像為 基礎。分水嶺分割方法,是一種基於拓樸理論的數學形態學的分割方法,基本思 想是把影像看做是測量地質學上的拓璞面貌,影像中每個點的像素灰階值表示該

L LH

點的海拔高度,每一個特定的區域極小值和其影響區域稱為集水盆地(catchment basin),而集水盆地的邊界則形成分水嶺(watershed)。如圖2.21所示。

圖 2. 21 集水盆地[16]

以這些公式為基礎的分割演算法的主要目的是找出分水線[4]。基本想法,

假定在每個區域性最小值處鑽洞,讓水穿過洞,從底部以均勻速率上升使整個地 形淹水。當在不同的集水盆地的水位上升到快要匯流時,就建立水壩以避免匯 流。最後氾濫將會到達只有水壩的上方在水面上可見的一個階段。這些水壩的邊 界對應分水嶺的分開線。因此,可以從分水嶺分割演算法中抽取連續的邊界。分 水嶺分割的一個主要應用是從背景抽取出接近均勻的物體。有強度小變化特徵區 域有小的梯度值,因此,常看到分水嶺分割使用在影像的梯度上,而不是影像本 身,所以集水盆地的區域最小值與對應於感興趣物體的小梯度值之間高度有關。

2.7.1 分水嶺演算法流程

針對一張灰階影像,首先依照其像素值的大小加以排列,由小到大分別儲 存在一個一維的陣列裡,但是這裡必須包含下列兩個步驟:

步驟一: 對像素的大小的排序(sorting)。

先將一張灰階影像依照像素的灰階值由小到排列,存入一個陣列裡,必須可 以對影像中的任何像素及其鄰近像素的值做隨機存取。首先對灰階影像求其像素 對灰階值的頻率分佈,由此再計算出累積機率分佈。這樣算出的累積分佈,可以 在排序陣列(sorting array)中,對單一的一維陣列裡的某一個特定像素值做直接讀 取和分配。假設一張灰階影像有n個像素,而hmin和hmax分別代表這張灰階影像 最小和最大的灰階值,那麼對像素大小做排列的方法就需要對整張影像做兩次的

23

像素掃描,一次是決定像素的累積機率分佈,另一次是指派不同值的像素在不同 的排序陣列裡;這樣子計算像素值的累積機率分佈,遠比每次要找某個特定灰階 值就要尋找整張影像的方式,在所花的時間和記憶體的大小上面來的少很多,分 水嶺演算法在對某個特定像素值做存取的順序,就是依照排序陣列裡面的像素大 小。而處理過的像素,如果符合某一個再處理的條件時,這時後就必須使用到佇 列的資料結構,而以first-in-first-out (FIFO)的流程,再對這些像素做處理。

步驟二:模擬水氾濫的過程(flooding)。

排序完成後,開始模擬漲水的動作,假設水漲到高度h,此時已進水的蓄水 盆地之個別最小值高度一定是小於等於h,這些最小值的點都會給予一個獨特的 標籤(label)。由於之前完成排序,即可以對h+1高度(即灰階值為h+1)的像素做存 取,給予這些像素一個標籤值MASK,此時需要一個FIFO(first infirst out)的 queue,將那些標示為MASK且鄰近像素已有被標上label的像素推入queue,然後 一個一個拿出來,根據它的鄰近像素來決定它的標籤值,如果鄰近像素也有標上 MASK的,也把它丟進queue裡,屬於同一個蓄水盆地的像素都會被標上相同的 標籤值,如此便會從蓄水盆地的最低點慢慢往外延伸。而那些雖然是標示成 MASK但鄰近像素都沒有被標過label的像素,它就是一個新的區域最小值,我們 給予它們不同於其它蓄水盆地的標籤數值,經過此步驟後,不屬於任何蓄水盆地 的pixel都會被標成分水嶺點,最後產生出分水嶺線。圖2.22為Vincent所提出的分 水嶺演算法流程。

圖 2. 22 Vincent 所提出的分水嶺演算法流程

25

在文檔中 中 華 大 學 (頁 31-35)

相關文件