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

圖3中的IDLE為邊緣檢測模塊默認的初始狀態(tài),此狀態(tài)下不進(jìn)行任何處理動(dòng)作。如果模塊接收到有效的檢測啟動(dòng)信號,則轉入FILTER狀態(tài)。在此狀態(tài)下,模塊對輸入的像素窗進(jìn)行四個(gè)方向的濾波處理。下一時(shí)鐘周期到來(lái)后則轉入JUDGE狀態(tài),此狀態(tài)下,模塊進(jìn)行邊緣判斷,并輸出相應結果。經(jīng)過(guò)這樣一個(gè)過(guò)程后,即可完成一個(gè)像素窗的處理,之后,如果檢測啟動(dòng)信號繼續有效,則轉入FILTER狀態(tài)并處理下一個(gè)像素窗,否則轉入IDLE狀態(tài)待命。
評論