基于FPGA器件的Sobel算法實現(xiàn)
0引言
本文引用地址:http://m.butianyuan.cn/article/192125.htm邊緣檢測技術(shù)是圖像處理的一項基本技術(shù),在工業(yè)、航天、醫(yī)學(xué)、軍事等領(lǐng)域中有著廣泛的應(yīng)用。邊緣檢測算法的實現(xiàn)涉及復(fù)雜的計算步驟,故對處理速度有較高要求。采用FPGA器件實現(xiàn)系統(tǒng)設(shè)計是一種純硬件的解決方案,該方案可以使系統(tǒng)具備較高的實時性,能比較好地解決軟件編程方式所導(dǎo)致的處理速度問題。
在眾多的圖像邊緣檢測算法中,Soble算法具有計算簡便、檢測效果好等優(yōu)點,是一種被廣泛應(yīng)用的算法。Sobel算法依據(jù)圖像邊緣的灰度值會產(chǎn)生突變的原理,來對像素的灰度值進(jìn)行處理。在圖1所示的3×3像素窗中,中間像素[i,j]為待檢測像素,Sobel算法分別對此像素窗進(jìn)行水平(H)、垂直(V)、左對角(L)、右對角(R)四個方向的灰度值濾波運算,公式如下:
c=2。這里的H,V,L,R是為了計算梯度的大小和方向。梯度大小可由下式得到普遍估計:
若此幅值大于給定的某閾值,則可判定像素點[i,j]為邊緣像素,否則為一般像素。梯度方向與四個濾波值中絕對值最大的方向一致。
2 系統(tǒng)設(shè)計
一個完整的圖像邊緣檢測系統(tǒng)主要包括以下三個功能模塊:像素窗生成模塊、邊緣檢測模塊以及輸出處理模塊,圖2所示是邊緣檢測系統(tǒng)示意圖。其中像素窗生成模塊主要負(fù)責(zé)生成供邊緣檢測模塊計算的3×3像素窗;邊緣檢測模塊采用Soble算法對此像素窗進(jìn)行處理,以判斷中心像素是否為邊緣像素;輸出處理模塊負(fù)責(zé)后續(xù)處理任務(wù)(如生成完整的邊緣圖像)。
2.1 系統(tǒng)設(shè)計思路
本文主要討論邊緣檢測模塊的設(shè)計。這里使用行為域建模的方式對系統(tǒng)進(jìn)行算法描述。該方法可以使系統(tǒng)行為與結(jié)構(gòu)相分離,設(shè)計者只需對系統(tǒng)的功能進(jìn)行算法描述而不必關(guān)心系統(tǒng)具體的硬件構(gòu)成方式。這種設(shè)計方法在設(shè)計過程中借鑒了軟件設(shè)計的靈活性優(yōu)點,而設(shè)計結(jié)果則是具有高運算速度的硬件電路。
這種設(shè)計思路不必依次設(shè)計加法器、寄存器、比較器等功能單元。由于Sobel算法中的邊緣檢測主要包含兩個步驟:一是對像素窗進(jìn)行四個方向濾波;二是對濾波值進(jìn)行決斷。因此,可采用狀態(tài)機方式來描述系統(tǒng)功能。但這里需要三個狀態(tài):空閑態(tài)(IDLE)、濾波態(tài)(FILTER)和決斷態(tài)(JUDGE),圖3所示是其系統(tǒng)狀態(tài)圖。
圖3中的IDLE為邊緣檢測模塊默認(rèn)的初始狀態(tài),此狀態(tài)下不進(jìn)行任何處理動作。如果模塊接收到有效的檢測啟動信號,則轉(zhuǎn)入FILTER狀態(tài)。在此狀態(tài)下,模塊對輸入的像素窗進(jìn)行四個方向的濾波處理。下一時鐘周期到來后則轉(zhuǎn)入JUDGE狀態(tài),此狀態(tài)下,模塊進(jìn)行邊緣判斷,并輸出相應(yīng)結(jié)果。經(jīng)過這樣一個過程后,即可完成一個像素窗的處理,之后,如果檢測啟動信號繼續(xù)有效,則轉(zhuǎn)入FILTER狀態(tài)并處理下一個像素窗,否則轉(zhuǎn)入IDLE狀態(tài)待命。
評論