沈 玉,蘭瑞田
(1.中國電子科技集團公司第五十四研究所,河北石家莊 050081;2.天津水務局,天津 300074)
邊緣檢測和圖像分割是分析圖像的難題。經典邊緣檢測方法一般為邊緣檢測局部算子法,最基本的為邊緣檢測算子,如微分算子。除了LOG算子和Calmy算子外,其他的算子一般都利用了圖像一階方向導數在邊緣處取最大值這一規律。而LOG算子和Canny算子基于二階導數的零交叉技術。這一類算子雖然對于高通濾波有增強高頻分量的作用,但對噪聲是敏感的。另一類邊緣檢測方法是基于邊緣擬合的檢測方法,能夠部分克服噪聲影響,如Huckel算法、Haralick斜面模型和標記松弛法等。其中標記松弛法利用了統計學中概率分布的概念。多尺度方法是一種有效的邊緣檢測技術,其思路是:在大尺度下抑制噪聲,可靠地識別邊緣,在小尺度下精確定位[1]。
經典的算法中主要用梯度算子,最簡單的梯度算子是Roberts算子,比較常用的有Prewitt算子和Sobel算子[2,3],其中 Sobel算子效果較好,但是經典Sobel算子也存在不足,其邊緣具有很強的方向性,只對垂直與水平方向敏感,對其他方向不敏感,這就使得那些邊緣檢測不到,對后續的圖像處理有很大的影響。本文在簡要介紹一種改進的Sobel算法的基礎上,針對一幅具體的噪聲圖像,利用該算法進行數值仿真模擬實驗,獲得了預期的邊緣檢測效果。
Sobel算法的邊緣檢測,首先是進行鄰域平均加權或加權平均,然后進行一階微分處理,檢測出邊緣點。它含有2個方向的模板h1和h2,這2個方向模板一個檢測水平邊緣,一個檢測垂直邊緣,如式(1)所示。公式中,模板內的數字代表加權系數,梯度方向與邊緣方向總是正交垂直。由于圖像邊緣處灰度的變化值呈現不連續,即可將灰度變化不連續的地方作為圖像的邊緣。經典Sobel算子利用像素點上下、左右相鄰點的灰度加權,根據在邊緣點處達到極值這一現象進行邊緣的檢測[4]。

算法步驟[5]如下:
①分別將2個方向模板沿著圖像從一個像素移到另一個像素,并將模板的中心像素與圖像中的某個像素位置重合;
②將模板內的系數與其對應的圖像像素值相乘;
③將所有乘積相加;
④將2個卷積的最大值賦給圖像中對應模板中心位置的像素,作為該像素的新灰度值;
⑤取適當的閾值TH,若像素新灰度值大于閾值,則判該像素點為邊緣點。
從上述可知,Sobel算子很容易實現,而且產生較好的邊緣檢測效果,能夠很好地突出圖像邊緣。同時,因為Sobel算子引入了局部平均,Sobel算子對噪聲具有平滑作用,提供較為精確的邊緣方向信息,當使用大的領域時,抗噪聲特性會更好,但這樣做會增加計算量,也會檢測出許多的偽邊緣,且邊緣定位精度不夠高。
Sobel算法的優點是計算簡單、速度快。但由于只采用了2個方向模板,只能檢測水平方向和垂直方向的邊緣,因此,這種算法對于紋理較復雜的圖像和受噪聲污染比較嚴重的圖像其邊緣檢測效果欠佳[6]。
鑒于此,在經典的Sobel算子的基礎上又提出了一種具有抗噪聲干擾、實時性較好、邊緣定位較準確的邊緣提取改進算法,該方法定義8個方向的模板[7],并使每個模板表示的方向為圖像的實際邊緣方向。圖像的邊緣有許多方向,除了水平方向和垂直方向以外,還有其他的邊緣方向,為了便于描述,對邊緣方向進行編號,如圖1所示[8]。

圖1 邊緣示意
為了能有效地檢測這8個方向的邊緣,在經典的Sobel兩個方向的模版上,再增加6個方向模版,形成8個方向模板h'1~h'8,如式(2)所示。

經過8個方向模版的計算和閾值TH的取定,可以檢測出新灰度值大于或等于閾值TH的像素點,但還不能夠確定這些像素點就是邊緣點,因為噪聲也會引起像素灰度的跳變,出現灰度新值大于或等于閾值TH的情況。因此,必須進一步采取相應的方法來判斷該像素點到底是邊緣點還是噪聲點[9]。
由于圖像沿邊緣方向灰度值變化平緩,而噪聲灰度值沿圖像邊緣雜亂無章,因此可以利用這一點將圖像邊緣與噪聲區分開[10]。為了判斷一個像素點是否為邊緣點,一般是沿著邊緣方向連續跟蹤N個像素點,這里取N=3。邊緣跟蹤示意圖如圖2所示。圖2中,以判別 x1點為例,記為圖像在x1點得到的邊緣方向與在x2得到的邊緣方向夾角。同理定義為圖像在點x2得到的邊緣方向與在點x3得到的邊緣方向夾角。

圖2 邊緣跟蹤示意
假設x1,x2,x3是已經被檢測出的灰度新值大于或等于閾值TH的像素點。沿x1點的方向1,找到下一點 x2,若>90°,則像素點x1為噪聲點,不是邊緣點;反之,則像素點x1可能是邊緣點,繼續跟蹤下一點。沿 x2點的方向 2,找到下一點 x3,若>90°,則像素點x1為噪聲點,不是邊緣點;反之,則像素點 x1可能是邊緣點[11,12]。
本文進行了2種條件下的仿真實驗,在國際標準測試圖像Lena(圖3所示)的基礎上分別加入了高斯噪聲和椒鹽噪聲,作為邊緣檢測的原始圖像,并分別對其進行了邊緣檢測。

圖3 國際標準測試圖像Lena
在該條件下,分別探討了經典Sobel算法與改進算法對被不同程度高斯噪聲污染的Lena圖像的邊緣檢測效果。4組試驗中,所加入的高斯噪聲的噪聲均值均為零,信噪比分別為16 dB、20 dB、23 dB和26 dB。

圖4 加入高斯噪聲的Lena圖像的仿真結果
圖像加入高斯噪聲后,由經典Sobel算子檢測邊緣和改進算法的邊緣檢測對比可看可出:當信噪比為16 dB時,原圖像被噪聲嚴重污染,直接檢測出的圖像邊緣幾乎不存在,完全被噪聲代替。改進算法檢測出的圖像邊緣雖然帶有噪聲,但大體可以看出圖像的輪廓。當信噪比為20 dB時,原圖像的噪聲有所減少,直接檢測出的圖像還是含有大量噪聲,改進算法檢測出的圖像邊緣,已大體可以看出圖像的輪廓,并且噪聲較于經典Sobel算子也有所減少。當信噪比為23 dB時,直接檢測的圖中,圖像輪廓已經很明顯,但是檢測的圖像邊緣很粗,并且還能明顯看出噪聲。改進算法檢測出的圖像邊緣較細,并且去除了大部分噪聲。當信噪比為26 dB時,加入噪聲的圖像受污染較為輕微。直接檢測便能得到比較清楚的邊緣,改進算法檢測的圖像邊緣丟掉了部分細節,這是由于將部分細節視為噪聲,而將這些細節丟掉所致。
加入椒鹽噪聲的Lena圖像的仿真結果如圖5所示。

圖5 加入椒鹽噪聲的Lena圖像的仿真結果
在該條件下,主要探討了經典Sobel算法與改進算法對被不同程度椒鹽噪聲污染的Lena圖像的邊緣檢測效果。4組試驗中,所選取的椒鹽噪聲的噪聲均值均為零,信噪比分別為11 dB、13 dB、19 dB和21 dB。
圖像加入椒鹽噪聲后,由經典Sobel算子檢測邊緣和改進算法的邊緣檢測對比可以看到下列特征。當信噪比為11 dB時,圖像噪聲密度為0.07即為14.2857%,圖像含有大量噪聲,直接檢測出的圖像噪聲占據了大部分,細節淹沒在噪聲中。改進算法檢測出的圖像邊緣雖然也帶有噪聲,但是大致可以看出圖像的模糊輪廓,噪聲被祛除了大部分。當信噪比為13 dB時,原圖像含有的噪聲量減少了,直接檢測出的圖像邊緣噪聲呈現圓點形式,覆蓋住了圖像的細節。改進算法已能檢測出的圖像邊緣,并且圖像含有少量的噪聲。當信噪比為19 dB時。直接檢測的圖像中,已能檢測出圖像輪廓,但是檢測的圖像邊緣粗且還是含有圓點的噪聲,這是對于圖像邊緣檢測很不利的。改進算法檢測出的圖像邊緣較細,并且幾乎不含有噪聲。當信噪比為21 dB時,加入噪聲的圖像含有少量的噪聲。直接檢測得到了清晰的邊緣,但是噪聲也可以明顯地看出來,改進算法檢測的圖像邊緣比經典算法檢測的邊緣細。但是不含噪聲,同時也丟掉了部分細節。這是由于算法將部分圖像細節視為噪聲,將其忽略掉所致。
對比圖5與圖6的仿真結果可以明顯看出,對于含有噪聲的圖像,直接用經典的Sobel算子進行檢測,得到的圖像已經嚴重退化,并且分不清圖像的細節,檢測出的圖像邊緣大部分已被噪聲代替。而改進算法雖然沒有完全清除噪聲,但是已在很大程度上改善了圖像的質量,圖像的邊緣和細節大部分被保留。并且此種祛除噪聲的方法對大部分噪聲都有效,并不只針對于哪一種。因此這種方法對于被噪聲嚴重污染圖像是有效的。
從上述仿真結果可以看出,本文提出的改進算法在噪聲圖像的邊緣檢測方面比經典Sobel算子具有更顯著的成效,可以清楚地檢測出被噪聲污染過的圖像的邊緣信息。并且由于具有先祛除噪聲然后進行邊緣檢測的特性,因此該改進算法具有很強的通用性,克服了以往大多數算法只能針對某種特定的噪聲類型的缺陷,對常見的大部分噪聲均有效。因此,該算法是一種簡單有效的噪聲圖像邊緣檢測方法。本仿真實驗作為該算法的具體應用,為實際應用提供了較好的參考,具有很強的應用意義。 ■
[1]LI Xin-fu.Edge Detection on Arc Image of Low Voltage Apparatus[C]∥IEEE Proceeding of the Second International on Machine Learning and Cybernetics,Xi’an,2003:2921-2924.
[2]HEATH M,SARKAR S,SANOCKI T,et al.Comparison of Edge Detectors:a Methodology and Initial Study[C]∥Proceedings CVPR'96.IEEE Computer Society Conference on Computer Vision and Pattern Recognition,1996:143 -148.
[3]焦 智,劉秀蘭.硬件實現基于SOBEL算子的圖像邊緣提取[J].無線電工程,2006,36(12):24 -25.
[4]馬 暉.基于DS證據推理方法的圖像目標識別[J].無線電通信技術,2013,39(1):70 -72.
[5]何春華,張雪飛,胡迎春.給予改進Sobel算子的邊緣檢測算法的研究[J].光學技術,2012,38(4):323 -326.
[6]白俊江,洪春勇.基于Sobel的邊緣檢測方法[J].電腦知識與技術,2009,5(21):5847 -5849.
[7]王國莉,王玉妹.基于尺度不變特征變換的圖像檢索[J].無線電通信技術,2013,39(4):64 -66.
[8]邢旭東,周 旭,米 健.基于改進的人工蟻群的圖像分割算法[J].無線電通信技術,2013,39(6):71-73,81.
[9]吳 捷,陳德智,國成志.Sobel邊緣檢測算法的變異實現圖像增強[J].激光與紅外,2008,38(6):612-614.
[10]王曉亞,劉素芳.圖像分割中的邊緣檢測[J].無線電工程,2006,36(12):21 -23.
[11]章敏晉.圖相處理與分析[M].北京:北京清華大學出版社,1999.
[12]何國棟,丁緒星,秦慧平,等.一種新的圖像自適應閾值去噪方法[J].無線電通信技術,2014,40(2):60-62.