北方民族大學電氣信息學院 陶 然 楚栓成
邊緣是圖像的最基本特征,它體現了用于識別的有用信息,為人們用作描述、識別目標以及解釋圖像提供了一個重要的特征參數。邊緣檢測是圖像處理、圖像分析和計算機視覺領域中最經典的研究內容之一,是進行模式識別和圖像信息提取的基本手段。醫學X射線的圖像邊緣檢測是圖像檢測的一個重要應用領域,在醫療診斷中起著越來越重要的作用。
目前進行主要邊緣檢測的方法是sobel算子、canny算子、prewitt算子、roberts算子、LOG算子檢測方法。圖像邊緣檢測必須滿足兩個條件:(1)能有效地抑制噪聲;(2)必須盡量精確確定邊緣的位置。本文將研究集中常見的算子檢測方法對于醫學邊緣圖像的應用,以為進一步的圖像應用提供依據。
對圖像{f(i,j)}的每個像素,考慮它上,下,左,右鄰點的灰度的加權差,與之接近鄰點的權值最大。據此,定義Sobel算子[1]如下:

適當取門限TH,作如下判斷:S(i,j)>TH,(i,j)為階躍邊緣點,{S(i,j)}為邊緣圖像。
Sobel算子很容易在空間上實現,Sobel邊緣檢測不但產生較好的邊緣檢測效果,而且受噪聲影響也比較小。當使用大的鄰域時,抗噪聲能力會更好,但這樣會增加計算量,并且得出的邊緣也會相應變粗。Sobel算子對噪聲有平滑作用,能夠提供較精確的邊緣方向信息,是一種較為常用的邊緣檢測方法。基于Sobel算子在數字圖像的邊緣檢測方法,存在著許多不足之處,例如在基于Sobel梯度算子時,其邊緣檢測雖然說速度快,但得到的往往是不連續的、不完整的結構信息。這類方法對噪聲比較敏感,為了有效抑制噪聲,一般都首先對原圖像進行平滑,再進行邊緣檢測就能成功地檢測到真正的邊緣。
根據對信噪比與定位乘積進行測度,得到最優化逼近算子,這就是Canny邊緣檢測算子。Canny算子邊沿檢測的基本思想是:先對處理的圖像選擇一定的Gussian濾波器進行平滑濾波,然后采用一種稱之為“非極值抑制”的技術,對平滑后的圖像處理,得到最后所需的邊緣圖像[3]。
Canny算子是邊緣檢測中最具代表的一種局部極值邊緣檢測算子,提取的邊緣線型連接程度較好,對邊緣提取的較完整,邊緣線提取很細。Canny算子具有較好的抗噪能力和較高的邊緣定位精度。對于高噪聲的模糊圖像,Canny算子在抑制噪聲的同時往往錯過一些低強度的邊緣,而一些高強度噪聲被檢測為邊緣。Canny方法則以一階導數為基礎來判斷邊緣點,它是一階傳統微分中檢測階躍型邊緣效果最好的算子之一,它比Roberts算子、Sobel算子和Prewitt算子極小值算法的去噪能力都要強,但它也容易平滑掉一些邊緣信息。
Roberts邊緣檢測算子根據任意一對互相垂直方向上的差分可用來計算梯度的原理,采用對角線方向相鄰兩象素之差,即:

有了Δxf,Δyf之后,很容易計算出Roberts的梯度幅值R(i,j)

適當取門限TH,作如下判斷:R(i,j)>TH,(i,j)為階躍邊緣點,{R(i,j)}為邊緣圖像[1]。
Roberts算子采用對角線方向相鄰兩像素之差近似梯度幅值檢測邊緣。它適合于得到方向不同的邊緣,對不同方向的邊緣都比較敏感,檢測水平和萬垂直邊緣的效果好于斜向邊緣,定位精度高。但是在進行差分計算的過程中對噪聲敏感,即有噪聲影響的像素點可能被檢測為邊緣點。Robert s算子定位比較精確,但由于不包括平滑,所以對于噪聲比較敏感。
對圖像{f(i,j)}的每個像素,考慮它上,下,左,右鄰點的灰度之差,據此,定義Prewitt算子如下:

卷積算子為:

適當取門限TH,作如下判斷:P(i,j)>TH,(i,j)為階躍邊緣點。{P(i,j)}為邊緣圖像。Prewitt算子是一階的微分算子,是平均濾波,這對灰度漸變低噪聲的圖象有較好的檢測效果,但是對于混合多復雜噪聲的圖像的處理效果就不理想了。
拉普托斯算子是最常用的二階基于導數的邊緣檢測算子,它易受噪點影響,為減少對噪點敏感度,Marr和Hildreth將高斯濾波和拉普拉斯邊緣檢測結合在一起,形成了LOG算子。LOG首先進行高斯平滑,然后進行拉普拉斯運算[5]。
設原圖像為f(i,j),高斯濾波函數為G(i,j),兩者進行卷積運算,然后利用拉普拉斯算子?2實現邊緣檢測,輸出的圖像h(i,j),則LOG算子如下:

用LOG算子處理圖像時,是先用G(i,j)進行平滑處理,然后用 ?2對圖像進行二階導數增強。
LOG算子在進行邊緣檢測時,能很大程度的抑制噪聲。通過將圖像原值與LOG函數值進行比較,發現部分由圖像上絕大部分噪聲組成。它對于噪點不太敏感,因為高斯函數減少噪點,并σ且拉普拉斯模版使檢測到假邊緣的概率減到最小。通過圖像平滑,消除了一切尺度小于的圖像強度變化,若用其它算子檢測法,需要計算不同方向的微分,而它無方向性,所以可以節省計算量。它定位精度高,邊緣連續性好,可以提取對比度較弱的邊緣點。
未經處理的原始圖像見圖1(A),存在一定程度的噪聲干擾,在對圖像檢測之前,對X線頭影片進行了中值濾波的預處理。圖1(B)、1(C)、1(D)、1(E)、1(F)依次是應用log算子、roberts算子、sobel算子、canny算子、prewitt算子檢測處理之后的圖像結果。
通過matlab5.0實驗平臺得出的實驗結果可以看出,Canny算子邊緣檢測精度比較高并且抗噪聲性能較強,但是對于X線圖像的檢測,丟失了很多重要的邊緣和區域,因此結果并不能令人滿意。Roberts算子采用對角線方向相鄰兩象素之差近似梯度幅值檢測邊緣。檢測水平和垂直邊緣的效果好于斜向邊緣,定位精度高,對噪聲敏感,而且檢測圖像的細節過于豐富,圖像中表現出很多并不需要的紋理特征。Sobel算子邊緣檢測根據象素點上、下、左、右各個鄰點灰度值加權差,在邊緣處達到極值這一現象檢測邊緣,其對噪聲具有平滑作用,提供較為精確的邊緣方向信息,但是邊緣定位精度不夠高。Prewitt算子邊緣檢測利用象素點上、下、左、右各個鄰點灰度值的差,在邊緣處達到極值檢測邊緣,其檢測圖像的邊緣出現很多不連續情況,圖像不清晰。Log算子邊沿檢測的邊緣無法區分虛實線,對于像素的反差大小無法區分,圖像邊緣連貫性好,可以觀察到很多細節。

圖1 幾種檢測圖像
針對醫學圖像討論和比較了幾種常用的邊緣檢測算子。roberts精度不高,只能檢測出圖像大致的輪廓,而對于比較細的邊緣可能會忽略。Prewitt和Sobel算子比Roberts效果要好一些。LOG濾波和Canny算子的檢測效果優于roberts算子,能夠檢測出圖象較細的邊緣部分。不同的醫學圖像在不同的系統,針對不同的環境條件和要求,選擇合適的算子來對圖象進行邊緣檢測,為圖像進一步應用具有很重要的作用。
[1]岡薩雷斯.數字圖像處理(第二版)[M].電子工業出版社,2003.
[2]何斌,等.VisualC++數字圖像處理[M].北京:人民郵電出版社,2001,1.
[3]徐建華.圖像處理與分析[M].北京:科學出版社,1992,1.
[4]Canny J.A Computational Approach to Edge Detection[J].IEEETrans.on Pattern Analysis and Machine Intelligence,1986,8(6):679-698.
[5]袁麗婷,邱力軍.基于Matlab的X線醫學圖像增強與直方圖處理方法[J].第四軍醫大學學報,2007,28(4):376-378.