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