文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2016.03.020
中文引用格式: 李錦明,,閆曉俊,江旭東,,等. Sobel圖像邊沿檢測算法的優(yōu)化設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,,2016,42(3):71-73,,77.
英文引用格式: Li Jinming,,Yan Xiaojun,Jiang Xudong,,et al. The optimization design and implementation of Sobel image edge detection algorithm[J].Application of Electronic Technique,,2016,42(3):71-73,,77.
0 引言
圖像邊沿是圖像的基本特征,,是圖像分割,、特征提取等圖像分析的重要依據(jù),目前已廣泛應(yīng)用于目標(biāo)識別,、機器視覺和運動目標(biāo)跟蹤等領(lǐng)域?,F(xiàn)今已有多種邊沿檢測算法以及一些改進(jìn)方式,但各種算法都有各自的優(yōu)缺點和適用領(lǐng)域,。在實時圖像處理系統(tǒng)中,,通常采用Sobel算子來實現(xiàn)圖像的邊沿檢測。然而傳統(tǒng)的Sobel邊沿檢測算法存在抗噪能力弱,、邊沿信息較粗等問題,,不能滿足實際工程應(yīng)用的要求。如何實時地獲取清晰的圖像邊沿對工程實踐和科學(xué)研究都具有重大意義,。
設(shè)計中,,基于圖像處理的相關(guān)理論對Sobel邊沿檢測算法進(jìn)行了改進(jìn),在傳統(tǒng)的Sobel算法的基礎(chǔ)上增加了快速中值濾波模塊,,提高了系統(tǒng)的抗噪能力,,并采用非極大值抑制的方式對圖像邊沿進(jìn)行了細(xì)化,既有效地保留了圖像邊沿,,又保證了圖像邊沿的清晰,。
1 Sobel圖像邊沿檢測優(yōu)化設(shè)計
Sobel算法雖然在圖像邊沿檢測方面具有諸多優(yōu)勢,然而對于圖像實時處理還是存在抗噪能力弱,、邊沿信息較粗等問題,,所以需進(jìn)一步改進(jìn)。優(yōu)化后的邊沿檢測模塊主要由快速中值濾波模塊,、邊沿檢測模塊和非極大值抑制模塊構(gòu)成,。檢測模塊總體設(shè)計如圖1所示。
當(dāng)圖像數(shù)據(jù)輸入時,,首先進(jìn)行快速中值濾波處理,,平滑圖像噪聲,然后通過Sobel算子得到圖像的梯度值,,最后應(yīng)用閾值比較和非極大值抑制的方式提取圖像邊沿,,進(jìn)行二值化處理,從而得到清晰的圖像邊沿,。
1.1 快速中值濾波
在圖像采集傳輸過程中,,不可避免地出現(xiàn)各種各樣的噪聲,這些噪聲不僅降低了圖像的質(zhì)量,,而且會影響后續(xù)圖像的處理,。中值濾波能夠有效濾除椒鹽噪聲和脈沖噪聲,有效地保持圖像邊沿的細(xì)節(jié),,是一種比較理想的圖像濾波算法,。它通過對相鄰區(qū)域內(nèi)的像素進(jìn)行排序,取中間值作為輸出像素,,以達(dá)到濾波的效果,。基本的中值濾波算法運算量大,,不利于實時圖像處理,。設(shè)計采用快速中值濾波算法,提高了圖像處理的效率,,實現(xiàn)方法如圖2所示,,其中MAXi、MIDi,、MINi分別代表每行數(shù)據(jù)的最大值,、中間值與最小值。依據(jù)圖2所示,,通過多次比較(CMP)就可以得到最終的濾波結(jié)果,。
1.2 Sobel邊沿檢測
Sobel算子是一階導(dǎo)數(shù)的邊緣檢測算子,包含水平和垂直2組3×3的矩陣,,將之與圖像中的每個像素點做卷積和運算,,即得到圖像的水平和垂直梯度值,再根據(jù)梯度計算公式算出圖像梯度值,,將此梯度值與設(shè)定的閾值進(jìn)行比較,,若大于閾值,則認(rèn)為該像素點為邊緣部分,,把3×3二維圖像中央的灰度值設(shè)為255,,若小于閾值,,就不是邊緣部分,相應(yīng)的灰度值設(shè)為0,。
圖3(a)為一幀圖像的3×3窗口,,Pi為各點的灰度值,圖3(b)和圖3(c)分別為Sobel算子水平和垂直方向梯度算子,。針對圖像中3×3的像素空間,,Sobel算子采用式(1)和式(2)計算中間像素點P5處的水平梯度Px與垂直梯度Py。
Px=(P6+2P7+P8)-(P0+2P1+P2)(1)
1.3 非極大值抑制
Soble邊沿檢測算法通過選取合適的閾值能夠細(xì)化圖像邊沿,,然而閾值的選取往往比較困難,。如果閾值過低,則無法達(dá)到細(xì)化的效果,,反之則會丟失部分圖像邊沿,。通常Soble算法檢測得到的圖像邊沿會出現(xiàn)邊沿較粗的問題,從而影響圖像處理的效果,。故優(yōu)化設(shè)計采用非極大值抑制的方式對圖像梯度幅值的屋脊帶進(jìn)行了細(xì)化,,只保留了幅值局部變化的最大的點。在非極大值抑制過程中,,使用3×3的移動窗口對圖進(jìn)行處理,,中心像素梯度值與鄰域內(nèi)的其他像素梯度值進(jìn)行比較,如果中心像素值不是鄰域像素的極大值,,則把該像素點賦值為0,,反之則把該像素點視為圖像的邊緣。其具體的數(shù)學(xué)表達(dá)式如式(3):
非極大值抑制既有效保留了圖像邊緣的梯度,,又達(dá)到了圖像細(xì)化的目的,,有效地解決了Sobel算子出現(xiàn)的邊沿較粗的問題,有利于圖像分割和特征提取等圖像后期處理的實現(xiàn),。
2 圖像邊沿檢測硬件設(shè)計與實現(xiàn)
2.1 硬件系統(tǒng)結(jié)構(gòu)設(shè)計
基于FPGA的實時圖像邊沿檢測系統(tǒng)主要由圖像采集單元,、數(shù)據(jù)存儲單元、邊沿檢測單元和圖像顯示單元四部分組成,。具體的硬件系統(tǒng)結(jié)構(gòu)如圖4所示,。
系統(tǒng)基于FPGA(EP3C40F484)開發(fā)平臺,選用500萬像素CMOS攝像頭進(jìn)行圖像采集,,圖像信息經(jīng)采集,、灰度化等處理,再經(jīng)過優(yōu)化的基于Sobel圖像邊緣檢測處理,,最后由液晶顯示器顯示,。算法采用了可編程宏功能模塊與VHDL語言相結(jié)合的方法實現(xiàn)。
2.2 快速中值濾波算法硬件實現(xiàn)
中值濾波算法的核心是排序,算法的優(yōu)劣直接決定求取中間值的效率,,從而決定濾波器的性能,。快速中值濾波采用并行處理和流水線的設(shè)計,,避免了大量的比較操作,,相比于傳統(tǒng)的中值濾波算法,不僅運算量大大減少,,在FPGA硬件實現(xiàn)上所占用的硬件資源也更少,因此它對圖像數(shù)據(jù)處理的速度比傳統(tǒng)的中值濾波更快,??焖僦兄禐V波硬件實現(xiàn)頂層原理圖如圖5所示,其中移位寄存器(linebuffer)模塊能夠依次輸出3行的圖像數(shù)據(jù),。Compare模塊帶有鎖存功能,,能夠比較同一行像素的3個數(shù)據(jù)的大小,Compare3模塊比較不同行圖像像素的大小,,并輸出相應(yīng)的結(jié)果,。
2.3 Soble邊沿檢測算法硬件實現(xiàn)
基于Soble算子的邊沿檢測算法不僅計算簡單,而且容易在硬件上實現(xiàn),。算法主要包括梯度計算和閾值比較兩個部分,,用VHDL代碼實現(xiàn)閾值比較相對簡單,所以梯度計算算法的實現(xiàn)為本模塊的重點,。
設(shè)計中梯度計算采用3-Line Buffer結(jié)構(gòu),,相鄰3行3列的9個圖像像素點(P1,P2…P9)利用3個行緩沖器進(jìn)行緩沖,,然后再同步讀取3行數(shù)據(jù)進(jìn)行分級寄存,,利用乘法器實現(xiàn)寄存結(jié)果與Sobel算子Xn的相乘,再利用3個加法器實現(xiàn)式(1)或式(2),,即得到水平方向或垂直方向的梯度值,,最后再利用一個加法器實現(xiàn)梯度計算公式得到梯度值|G|。
2.4 非極大值抑制算法硬件實現(xiàn)
設(shè)計中在Soble邊沿檢測的基礎(chǔ)上增加了非極大值抑制功能,,非極大值抑制算法RTL級結(jié)構(gòu)如圖6所示,。
為了實現(xiàn)非極大值抑制算法,需再次構(gòu)建3×3的移動窗口并確定中心像素梯度值是否為鄰域內(nèi)的最大值,,設(shè)計中采用LineBuffer_3和sort3來構(gòu)建3×3移動窗口,。LineBuffer_3能夠緩存3行480列的像素梯度值,一個時鐘周期可以并行輸出1列像素梯度值,。前兩個周期sort3模塊接收并緩存LineBuffer_3模塊輸出的兩列像素梯度值,,在第三個周期得到第三列像素梯度值時,也同時構(gòu)成了3×3的梯度窗口,,輸出如圖中的data1~data9,,最后在comper模塊內(nèi)對9個像素梯度值進(jìn)行比較,,從而確定中心像素是否為鄰域內(nèi)的最大值。若為最大值就保留并進(jìn)入閾值模塊進(jìn)行比較,,否則將中心梯度值置零,。
3 實驗結(jié)果與分析
為了驗證系統(tǒng)優(yōu)化設(shè)計后的性能,采用MT9M001相機對圖像進(jìn)行采集,,將優(yōu)化后得到行的邊沿圖像與優(yōu)化前的邊沿圖像進(jìn)行比較,,得到了不同的檢測結(jié)果,結(jié)果如圖7所示,。圖7(a)為相機采集到的原始圖像,,圖7(b)為傳統(tǒng)的Soble邊沿檢測算法得到的圖像,由于受室內(nèi)日光燈的影響,,采集到的圖像噪聲大且邊沿較粗,。圖7(c)為通過濾波后得到的圖像邊沿,濾波效果明顯,。圖7(d)為優(yōu)化后的邊沿檢測算法得到的圖像,,圖像受噪聲影響小,且邊沿較細(xì),,能夠有效地識別圖像的邊沿,。
4 結(jié)論
該系統(tǒng)針對Sobel算法用于圖像邊沿檢測時出現(xiàn)的噪聲大、邊沿較粗等問題,,在傳統(tǒng)的Sobel算法的基礎(chǔ)上增加了快速中值濾波模塊和非極大值抑制模塊,,提高了系統(tǒng)的抗噪能力,保證了圖像邊沿的清晰度,,并在EP3C40F484 FPGA平臺上對硬件電路進(jìn)行了驗證,。實驗結(jié)果表明,優(yōu)化后的邊沿檢測方案不僅能夠有效地抑制噪聲,,而且得到的圖像邊沿更細(xì),,增強了實時圖像處理的效果。
參考文獻(xiàn)
[1] 謝鳳英.數(shù)字圖像處理及應(yīng)用[M].北京:電子工業(yè)出版社,,2014.
[2] 朱秀昌,,劉峰.數(shù)字圖像處理與圖像通信[M].北京:北京郵電大學(xué)出版社,2014.
[3] 孫敏.圖像處理并行算法研究與實現(xiàn)[D].綿陽:西南科技大學(xué),,2011.
[4] 張利平,,潘宏俠,黃晉英.智能車輛視覺系統(tǒng)的障礙物邊緣檢測[J].測試與校準(zhǔn),,2006,,26(4):30-31.
[5] 尹業(yè)宏,王濤,陳穎.基于FPGA的圖像與處理濾波算法[J].光學(xué)與光電技術(shù),,2004,,2(5):61-63.
[6] 楊新華,寇為剛.基于FPGA的Soble算子圖像邊緣檢測算法[J].儀表技術(shù)與傳感器,,2013(1):102-104.
[7] 朱偉超,,萬新軍,楊波,,等.模糊圖像邊緣精確定位的濾波算法[J].光學(xué)儀器,,2015,37(1):46-48.