王慧琴
(銀川能源學院,寧夏 銀川 750100)
圖像分割是完成所有圖像分析的基礎,也是數字圖像處理的核心技術。分割是把圖像細分成組成圖像的區域或者物體,分割出來的每個區域的某些特征有一定的相似性。分割的最終結果就是將具有相似特征的區域提取出來,得到想要研究的部分。經過多年的發展,現有的分割方法主要分4種:基于閾值的分割方法、基于區域的分割方法、基于特定理論的分割方法和基于邊緣的分割方法,它們屬于最基本同樣也是最重要的方法,所有的研究(包括衍生的新技術)都需要使用上述方法[1]。圖像處理對構成圖像的元素進行分解,從分解的元素中提取研究所需要的信息。圖像的邊緣所攜帶的信息能夠在圖像處理過程中發揮識別的作用,這也正是它作為圖像基本特征的重要原因。因為能夠從不同區域的邊緣得到各種各樣的信息,所以這也是邊緣檢測得以實現的原因。在邊緣上得到的最有用的信息就是不連續的像素灰度的變化,這些灰度的變化就是實現分割的依據,然后利用一階和二階導數進行邊緣檢測。邊緣檢測總是隨著圖像處理的發展而進步的,發展至今,已經出現了許多邊緣檢測方法,它們適用于不同的環境[2]。因此,邊緣檢測也是該文所研究的一個重要內容。
閾值分割方法是一種常見的區域并行技術,原理上利用1個或者多個閾值對像素點的灰度直方圖進行區分,將其分成幾個不同的類,得到的像素灰度值在同一類的屬于同一個物體。由于直接利用灰度直方圖可以簡化計算的部分,因此,選取一個適合的閾值就顯得尤為重要。想要找到合適的閾值就離不開一個準則函數[3]。而在實際的研究中,選擇合適的閾值并不容易,影響閾值設定的主要因素有光的亮度以及噪聲。隨著研究的進步,逐步發展了幾種解決上述問題的辦法,應用比較廣泛的有自適應閾值法、最大熵法、類間閾值法以及模糊閾值法等。并且為了保證準確性,至少會采用2種或者更多方法來確定閾值。
首先把想要處理的原始 圖像假設為f(x,y),閾值分割的主要任務就是將原始的輸入函數轉 化成輸出函數g(x,y),如公式(1)所示。

式中:p為閾值;t0為0;t1為1。
邊緣分割算法的表面意思是指基于邊緣處的分割算法,對圖像的不同區域進行搜索,其目的是識別區域之間的邊界,從而完成分割。具體方法就是運用邊緣檢測算子找出不同區域中的邊緣像素,把這些邊緣像素連接起來并對其進行標注,連接在一起的邊界就是區域邊界[4]。
圖像的邊緣實際上就是一些像素,不過像素發生了空間突變,這些變化在空間形狀上表現為階躍狀和屋頂狀。階躍狀邊緣位于其兩邊的像素灰度值有突出變化的地方;屋頂狀邊緣位于灰度值從增加到減少的地方。
邊緣檢測的實質就是計算圖像上發生變化的像素的導數。一階導數通常用來檢測原圖像中的一個點是否在斜波上。然后通過二階導數得出過零點的位置,邊緣的正確位置對應一階導數的最大值或者二階導數的過零點。常用的邊緣檢測算子有一階微分算子(例如Roberts算子、Prewitt算子和Sobel算子)、二階微分算子(例如Laplacian算子)、Kirsch算子、Frei-Chen綜合正交算子、Canny算子以及LOG算子[5]。該文主要對Roberts算子、Prewitt算子、Sobel算子和LOG算子進行詳細介紹。
1.2.1 Roberts 邊緣檢測算子
Roberts是最早的邊緣檢測算子,是一種能夠通過局部差分完成檢測的算子,能夠精準地對邊緣進行定位,經常用于噪聲較小且邊緣陡峭的圖像分割中[6]。
函數的梯度定義如公式(2)所示。

為了給照片增加沖擊力并定格畫面,建議使用一至兩個外置閃光燈。Dina用的是尼康SB-910。打光時要注意均勻,以免出現醒目的陰影。
圖像的梯度如公式(3)所示。


1.2.2 Sobel 邊緣檢測算子
如果利用Sobel算子提取邊緣信息,就可以用Sobel檢測算子對像素點的灰度進行一階求導,從而得到梯度值,進而可以得到圖像的邊緣。
Sobel算子使用的卷積核大小為 3×3 的矩陣。這種矩陣包括水平模板和垂直模板[7]。檢測時,它們分別在水平方向和垂直方向上有作用,如公式(5)所示。

1.2.3 Prewitt 邊緣檢測算子
Prewitt 邊緣檢測算子屬于一階微分算子,進行邊緣檢測時,在圖像空間上利用水平 方向的模板和垂直方向的模版與圖像進行卷積,水平模板檢測水平邊緣,垂直模板檢測垂直邊緣[8]。
Prewitt算子模板,如公式(6)所示。

1.2.4 高斯-拉普拉斯算子(LOG)
高斯-拉普拉斯算子是高斯和拉普拉斯2個算子的雙結合,因此,LOG算子具有兩者的優勢,通過高斯算子能夠很平滑地處理目標,在開始真正的檢測時,可以充分地提高目標自身 的品質和質量,相當于為目標鍍了一層金,最后用拉普拉斯算子求取邊緣,可以將其看作是二階導函數[9]。
拉普拉斯算子如公式(7)所示。

拉普拉斯算子的卷積模板如公式(8)所示。

首先采用基于閾值分割算法對圖像進行分割,并且采用2種方式選擇閾值,第一個仿真是采用人工選擇的閾值,筆者選擇了2個閾值。先得到該圖像的灰度直方圖,根據觀察選取的閾值為150和200,仿真結果分別如圖1、圖2所示??梢钥闯鲞x擇的閾值不同,實驗結果也不同,閾值為150的仿真結果更佳。

圖1 閾值150的分割圖像

圖2 閾值200的分割圖像
這2個閾值的選擇是根據灰度直方圖來判斷的,灰度直方圖符合雙峰分布的特征,閾值是在峰谷的位置,由結果可知,閾值的選取會影響圖像分割的效果。第二個仿真是采用經典的Otsu算法自動選取的閾值,這種算法最大的特點就是根據圖像本身的特點自動選擇閾值,原理上與統計中的方差分析有關系。Otsu算法自動選取閾值的仿真結果如圖3所示。

圖3 Otsu閾值分割
為了實驗的嚴謹性,選擇2個閾值進行觀察,由上述仿真結果可知,閾值為150的圖像分割與Otus自動選取法的結果還是較為相近的,但是另一個結果相差較遠。由此可見,選擇閾值為150是合理的。
檢測算子的仿真是在灰度圖的基礎上完成的,仿真結果如圖4~圖7所示。4張圖分別為Roberts、Sobel、Prewitt和LOG算子的分割結果圖像,對分割后的結果進行比較分析。

圖4 Roberts算子分割結果

圖7 LOG算子分割結果
觀察仿真結果,Roberts算子分割后的邊緣比其他邊緣的連續性好,但是漏檢的內容較多,而且得到的邊緣較粗。Sobel和 Prewitt算子的仿真結果較為相似,但是比較分散(不連續)。而LOG算子漏檢的內容是最少的,分割之后圖像呈現的內容也較多。
該文主要研究圖像處理技術中的幾種比較基礎且重要的檢測算法,并對閾值分割算法和邊緣檢測算法的仿真結果進行詳細分析。在進行閾值分割時,根據灰度直方圖選擇的閾值只能通過經驗來判斷,因此人為因素會干擾仿真結果,在目前的研究中,人們也采取了新的方法避免外部因素的影響。而利用Otsu方法自動選取閾值的方法非常方便且應用較為廣泛,但是Otsu算法也不是萬能的,當分割的目標與背景的大小比例較大時,所呈現的效果并不理想。

圖5 Sobel算子分割結果

圖6 Prewitt算子分割結果
基于邊緣的分割方法在進行分割仿真時都有自己明顯的缺點,但這并不影響它在研究中的地位,它憑借操作簡單、超高效率、計算量小以及運行穩定等優點被廣泛應用于相關研究中,在某些情況下稍加改善,結果也較為理想。未來圖像分割技術會有廣闊的應用前景,并會不斷進步出現新的理論。