【摘要】本文主要針對圖像邊緣檢測中所使用的Sobel算子和該算子的模板進行分析,在經典的sobel算子基礎上增加了6個方向的模板,同時根據算法的計算規律對增加的計算量做了最大的優化,以保證處理效果和處理效率的平衡。改進的算法可以對多方向的邊緣進行檢測以滿足不同方向的邊緣檢測效果。在一定環境中將改進算法應用在某圖像連續處理系統中,圖像的處理效果保持不變,較好的平滑了噪聲,且物體的邊緣檢測輪廓清晰。
【關鍵詞】邊緣檢測;sobel算子;模板
1.引言
邊緣檢測是圖像處理和機器視覺中最主要的研究內容,邊緣檢測包含對人類視覺和機器視覺有價值的邊緣信息。邊緣使圖像中特性分布不連續處圖像周圍特性有階躍變化和屋脊變化的那些像素集合,是圖像識別信息最集中的地方[1]。
常用的邊緣檢測算子有:Roberts算子,Sobel算子,Prewitt算子以及Laplace算子等。Sobel算子對噪聲具有一定的抑制能力,產生了較好的邊緣效果,去掉部分偽邊緣。傳統的邊緣檢測算子的邊緣定位和噪聲平滑是矛盾的,為了克服這個不足人們用邊緣檢測結合模板匹配來有效調節這個矛盾。
2.Sobel算子
常用的的Sobel算子有兩個,一個是檢測水平邊沿的另一個是檢測垂直邊沿的。Sobel算子在求梯度之前首先進行鄰域平均或加權平均,然后進行微分。
在基于經典Sobel算子的邊緣檢測中,每一個算子逼近一個偏導數,偏導數的公式近似如公式(1)和(2)所示[2]
?/x=[?(x+1,y-1)+2?(x+1,y)+?(x+1, y+1)]-[?(x-1,y-1)+2?(x-1,y)+?(x-1,y+1)]
(1)
?/y=[?(x-1,y+1)+2?(x,y+1)+?(x+1, y+1)]-[?(x-1,y-1)+2?(x,y-1)+?(x+1,y-1)]
(2)
若把圖像中某一點以及周圍8鄰域的像素點依次如圖1中a所示,而Sobel算子的經典模板則如圖1中b所示:
圖1 經典算法模板
取適當的閾值T,作如下判斷:如果一幅圖像R中的R(i,j)gt;=T時,則(i,j)為階躍狀邊緣點,R(i,j)為邊緣圖像。經典的Sobel算子是利用像素的上、下、左、右鄰域的灰度加權算法,根據在邊緣點處達到極值的原理進行檢測。不但可以平滑噪聲而且可以去除部分偽邊緣從而達到邊緣檢測的效果。
3.改進的Sobel算子算法
3.1 確定Sobel算子的方向及模板
由于所檢測的邊緣有各種各樣的方向,根據模板的形式我們可以再增加6種不同方向的模板順時鐘方向依次增加45°為了方便描敘從0°到315°依次對其編號為M1-M8如圖2所示:
圖2 不同方向的模板
3.2 改進算法
Sobel算子增加模板之后常規的算法一般是先進行卷積運算,再比較大小,取一次卷積運算結果的最大值作為最后的結果。現在我們依次對8個模板M1-M8作卷積運算求的結果為S則:S1=a1+2a8+a7-a3-2a4-a5如此依次計算出Si (1=lt;i=lt;8),最后取S=max{Si}(1=lt;i=lt;8)。
對于以上計算過程我們現在來分析一下計算量:對每個像素要進行8次卷積運算每一次卷積運算需要進行5次加減運算和2次乘法運算。那么每個像素點的運算就有40次的加減法運算和16次的乘法運算,計算完卷積的結果后還要進行7次的比較運算。最終才能得到這個像素點的結果。
如果處理一個M×N的圖像,可以知道他所需的運算量為40M*N次加減法運算和16M*N次乘法運算和7M*N次比較運算,這樣增加模板所帶來的弊端就顯而易見,對于圖像的快速處理非常不便。因此需要對運算量進行簡化。
現在假設r1=a1+2a8+a7,r2=a8+2a1+a2,r3=a1+2a2+a3,r4=a2+2a3+a4,r5=a3+2a4+a5,r6=a4+2a5+a6,r7=a5+2a6+a7,r8=a6+2a7+a8。
所以S1=r1-r5,S2=r2-r6,S3=r3-r7,S4=r4-r8,S5=r5-r1,S6=r6-r2,S7=r7-r3,S8=r8-r4。
所以我們只需計算S1-S4即可,剩下的S5-S8用S1-S4依次取反即可,相當于4次減法運算,此時每個像素點的計算量為2*8+4+4=24次加減法運算1*8=8次乘法運算和7次比較運算最終得出該像素點的灰度,則對于同樣一幅M*N大小的圖像總的計算量為24M*N次加減法運算8M*N次的乘法運算和7M*N次的比較運算。
4.實驗結果
通過以上比較分析,改進的算法要比常規的算法在理論上更節省時間,處理圖像的速度更快,這樣既保證處理效果又不失處理效率。對于一幅M*N的圖像兩種算法比較如表1所示:
表1 兩種算法的比較
Sobel檢測算法 加法次數 乘法次數 比較次數
常規算法 40M*N 16M*N 7M*N
改進算法 24M*N 8M*N 7M*N
經過編程實現該算法并且應用到實際的圖像處理系統中,用2種算法分別處理256*256的圖片達到了處理速度的提升并且圖像的處理效果也比較理想,具有比較好的平滑噪聲作用。實驗的硬件環境為Intel i3的處理器、內存2G,在次配件環境中處理200張256*256的圖片常規算法所用時間為4100ms,而改進算法處理時間為960ms。改進的算法提高了處理速度,節省了處理時間。
5.結論
實時處理系統對圖片的處理速度有較高要求,算法不但要保證對圖片的處理效果,而且對處理速度也要兼顧,通過對Sobel算子的改進,改進算法在理論上運算步驟要少節省了很多時間,在保證處理速度的前提下對圖像的處理效果也有所加強,經過實驗證明,改進的算法在圖像處理上更好的平滑了噪聲,而且保證了處理的速度,這種改進算法對整個圖像處理系統效果明顯,對實時處理系統有重要意義。
參考文獻
[1]章毓晉.圖像分割[M].北京:科學出版社,2001.
[2]孫洪淋,廖繼旺.基于Sobel算子的圖像邊緣檢測及其實現[J].人工智能識別技術,2004,15(2):87-94.
作者簡介:
陳倩(1990—),男,碩士研究生,研究方向:信號檢測與信息處理。
劉超(1989—),男,碩士研究生,研究方向:信號檢測與信息處理。