(北京建筑大學測繪與城市空間信息學院 北京 102616)
分水嶺算法是一種經典有效的圖像分割方法,最初由C.Digabel和H.Lantuejoul引入到圖像處理領域,當時僅僅用于簡單的二值圖像處理[1-3]。直到20世紀90年代,Vincent對原始分水嶺算法進行改進,改進后的分水嶺算法計算速度得到了極大提高,進而促進了分水嶺算法的發展,其基本思想和方法至今是人們研究的熱點。由于任何一幅圖像都有噪點存在,而傳統分水嶺算法對噪聲極為敏感,但往往使分割效果產生過分割現象[4-5]。為了克服傳統分水嶺算法產生的過分割現象,很多學者進行了相關研究,提出了一些改進算法[6-14]。陳忠等利用非線性濾波和改進的快速區域合并算法優化了分水嶺分割算法,實驗結果表明該算法能獲得良好的分割效果[7]。崔明等提出一種基于區域融合的改進型快速分水嶺變換算法,并將改進分水嶺變換中獲得的多尺度信息作為評價邊界強度的指標[8]。Chang-min Zhang提出使用改進的自適應分割標記的分水嶺算法[9],該算法通過計算彩色圖像的向量梯度,在彩色圖像的低頻部分依據積水盆地的最小深度和標記尺寸信息的最小值,使圖像噪聲和黑色紋理信息被抑制,進而獲得分割效果同時抑制圖像的噪聲,但在分割過程中會丟失小的目標。
本文在前人對分水嶺算法研究的基礎上,提出一種結合形態學濾波的分水嶺改進算法。該算法利用開閉濾波去除圖像中大部分噪聲,得到圖像的形態學梯度,再對梯度圖像的對比度進行增強處理,以獲得相對理想的階躍邊緣,然后采用浸沒分水嶺算法對增強后的梯度圖像進行分割。實驗選取帶有噪聲的圖像為例,結果表明該算法有效的抑制了噪聲引起的過分割現象。
分水嶺算法是一種基于拓撲理論的數學形態學分割方法。其基本原理是把圖像視為一個具有拓撲結構的地形圖,圖像中每一點像素的灰度值表示該點的山峰或山谷的高度值,山峰對應圖像中灰度值最高的區域,山谷對應圖像中灰度值最低的區域,每一個谷底(局部的極小值)及鄰近區域稱為集水盆,而分水嶺就是不同山谷之間的山脊。圖像分割的基本思想是先找到圖像中各個集水盆的最小值,并在此處打孔,然后把整個地形浸沒到水中,隨著浸沒深度的不斷增加,不同集水盆中的水面會越過山脊匯合,此時構筑大壩形成分水嶺,直至水位達到整個地形中的最高點,浸沒過程中構筑的大壩就會形成一個封閉的區域,進而根據這些封閉的區域將圖像分割開[10]。圖1為分水嶺算法的物理模型。

圖1 分水嶺算法的物理模型
分水嶺算法的處理過程主要分為排序和浸沒兩步。
排序過程是將圖像按照灰度值進行升序排序,經過排序使得每個像素都可以被定位到唯一的數組單元中,從而能夠直接從排序數組中指定層高的像素值。整個排序過程占用的計算機內存幾乎可以忽略不計。
浸沒過程是指在像素排序完成以后,開始對圖像的集水盆進行浸沒操作。從像素值最小的點開始浸沒,當浸沒水位達到某一高度h,集水盆I1和I2水面開始匯合,從高度h(h+1、h+2、h+3….)開始在將要匯合的集水盆(In和In+1)間建立水壩。在水面到達數組最高點之前,所有集水盆之間都建立起水壩,當水面將所有集水盆浸沒后,圖像中不同的區域就會被各個水壩分割出來。
分水嶺算法是一種多閾值分割算法,具有計算速度快、圖像邊緣定位精確的優點。但傳統分水嶺算法對噪聲極為敏感,對于噪聲比較多的圖像邊緣查找存在一定問題,因此,往往分水嶺變換結果容易產生過量小區域而造成圖像的過分割。
圖像噪聲是指圖像中各種妨礙人們對圖像信息接受的物理因素。由于圖像獲取的技術手段、傳輸渠道、存儲介質等各種因素的影響,圖像中所含有的噪聲類型也存在很大不同,也有可能同一幅圖像含有多種噪聲類型[11]。傳統分水嶺算法由于算法自身特點,在圖像分割過程中對圖像中的噪聲極為敏感,一般錯誤的將圖像中的噪聲識別為分割目標,導致分割結果準確度下降。而圖像的噪聲往往會嚴重影響圖像的質量和后續圖像處理工作。因此,如何除噪就成為該算法的一個關鍵問題。
針對這一問題,本文基于傳統分水嶺算法和前人的研究成果,提出了一種結合形態學濾波的分水嶺改進算法。其基本原理是:首先通過形態學濾波器的開閉運算對圖像進行降噪處理,然后獲取彩色圖像的梯度圖像,再對獲得的梯度圖像進行對比度增強,最后采用浸沒分水嶺算法對具有明顯邊緣的梯度圖像進行分割。
形態學濾波處理可以簡化圖像數據,除去不相干的結構,同時可以保持圖像基本的形狀特性。形態學開閉運算操作是通過最基本的形態學操作(“膨脹”和“腐蝕”)進行線性組合。
開運算的數學定義:
fоg=(fΘg)⊕g
(1)
式中,f為原始圖像,g為結構算子,Θ代表腐蝕運算,⊕代表膨脹運算。
開運算先對圖像進行腐蝕運算,然后進行膨脹運算,圖像經過開運算以后可以實現清除背景中的小結構,濾除孤立的噪聲點。圖2 中(b)為采用3*3的矩形濾波算子進行開運算的處理結果

圖2 形態學開運算結果
閉運算的數學定義:
fоg=(f⊕g)Θg
(2)
式中,f為原始圖像,g為結構算子,Θ代表腐蝕運算,⊕代表膨脹運算。
閉運算則是先對圖像進行膨脹運算,然后進行腐蝕運算。經過閉運算可以對圖像中目標內孔進行修復。圖3中(b)為采用3*3的矩形濾波算子進行閉運算的處理結果。

圖3 形態學閉運算結果
由于自然圖像中不存在理想的階躍邊緣,按照分水嶺算法的原理,將整幅梯度圖像看作地形圖,圖上各像素的梯度值就是該點的海拔高度。局部梯度極大的像素對應于山峰,局部梯度極小值則對應于谷底。因此獲得圖像良好的梯度特征是圖像準確分割的一個重要因素,傳統Prewitt梯度算子對于邊緣變化不大的圖像存在一定的缺陷。單尺度形態學梯度算子結構元素過大或過小都不能檢測到滿意的結果。多尺度形態梯度算子是將大尺度元素與小尺度元素相結合,該算子可以準確提取圖像梯度信息,且具有很強的抗邊緣間相互影響的能力和抗噪能力[12-14]。本文采用多尺度形態梯度算子對濾波后圖像進行梯度處理,處理結果如圖4所示。

圖4 開閉濾波運算后的梯度計算結果
圖像經過形態學運算后,雖然在濾除噪聲的同時憑借形態學算子特性能夠在一定程度上保留圖像中的部分邊緣信息,但不可避免的削弱甚至消除了這些邊緣與周圍非邊緣像素的梯度落差,因此,需要對于對梯度圖像進行對比度增強處理[15-16]。Canny邊緣檢測算子是公認的性能優良的邊緣檢測算子。其具有準確完備的邊緣檢測能力,檢測出的邊緣圖像正是梯度圖像中山峰的理想位置,因此可以大幅提高梯度圖像中山峰位置的梯度值。因此,本文采用Canny算子實現對梯度圖像峰值的增強。由于Canny算子邊緣檢測技術已經非常成熟,去處理過程本文不再贅述。
為驗證本文提出分割方法的有效性,選取帶有較強噪聲的圖像進行傳統分水嶺分割和融合形態學濾波的分水嶺算法進行實驗,以檢驗本文算法的去噪能力。兩組實驗均采用(i7-4790cpu、3.6GHz、16G內存)硬件平臺。
實驗一:選取大小為226*140像素且帶有大量噪聲的圖像進行分割實驗。實驗中濾波處理和梯度計算采用3*3的結構元進行處理。圖5為實驗過程中及分割結果的圖,表1為分割方案性能分析表。

表1 傳統分水嶺與本文分割方案性能分析

圖5 實驗1部分過程和分割結果圖
實驗二:選取大小為512*512像素的人物圖像進行分割實驗。本次實驗中濾波處理和梯度計算采用5*5的結構元進行處理。圖6為實驗過程中及分割結果圖,表2為分割方案性能分析表。

圖6 實驗2部分過程和分割結果圖

分割方法圖像大小(像素)分割數量消耗時間(s)分割效果傳統分水嶺512?51216641.13過分割嚴重,輪廓邊界不清晰本文分割方法512?5125760.59過分割減少,目標邊界特征清晰
從圖5和圖6的(e)可知,使用傳統形態梯度分水嶺分割時,分割結果中存在大量的細小區域,這是因為圖像中大量噪聲引起的過分割現象。從圖5和圖6的(g)可知,利用形態學濾波以后分割結果有了顯著改進,使得分割圖像的目標區域輪廓更加準確美觀。比較性能分析表1和2可知,在相同條件下本文提出的分割算法分割用時約為傳統分水嶺算法的一半,運算效率得到了較大的提升,且分割效果也更能體現出圖像的目標特征。因此,結合分割效果與運算用時可知,本文提出的分割算法相對傳統的分水嶺分割不僅對圖像中噪聲具有很好的過濾作用,使分割結果更加準確,而且分割視覺效果和分割效率也都有了一定程度的改善和提高。
綜上,本文提出的結合形態學濾波的分水嶺分割算法不僅有效抑制了原始圖像中的噪聲,去除了噪聲引起的明暗細節,而且還獲得了較為良好的階躍邊緣。從最終的分割結果可知本文的分割算法改善了傳統分水嶺分割方法的過分割問題,能夠獲得更有意義的分割結果。
本文針對傳統分水嶺算法對噪聲敏感容易造成過分割問題,提出了結合形態學濾波的分水嶺改進算法。該算法先使用形態學開閉濾波器對圖像進行濾波降噪處理,有效地去除了圖像中的大量噪聲,保留了圖像的細節特征;再利用Canny算子對圖像梯度信息增強獲得了良好的階躍邊緣,同時提高了邊緣信息的準確性;最后利用浸沒分水嶺分割方法實現目標圖像的準確分割。實驗以帶有噪聲的圖像分割為例,利用本算法得到了位置準確、輪廓清晰的分割目標,更加體現出了圖像目標特征。實驗結果表明,該算法有效地消除了噪聲引起的傳統分水嶺算法過分割現象,且分割效率方面也有一定提升。
在實際處理過程中,雖然該算法去除了大量噪聲,但在去燥過程中算子閾值的選擇尚未實現自動判定,還需要通過人工選擇來進行干預。此外,對于不同圖像的魯棒性還需要進一步檢驗。因此,針對這兩個方面的研究將是下一步的工作重點。