圖像邊緣檢測是圖像處理的一項(xiàng)基本技術(shù),在工業(yè)、醫(yī)學(xué)、航天和軍事等領(lǐng)域有著廣泛的應(yīng)用。圖像處理的速度一直是一個(gè)難題。雖然DSP具備指令流水線特性和很高的處理速度,但其速度仍然很受限制,而利用高速可編程邏輯器件FPGA/CPLD來設(shè)計(jì)圖像邊緣檢測器可以很好的克服這個(gè)問題,是一種全新的解決方案。
1 圖像邊緣檢測算法
用于圖像邊緣檢測的算法很多,諸如Rorberts算子、Sobel算子、Prewitt算子、Laplaceian算子等,由于Sobel算法只涉及到加法操作,并且可以取得很好的效果,所以是最常用的邊緣檢測算法。由于圖像在邊緣附近會出現(xiàn)灰度上的突變,所以,Sobel邊緣檢測方法以原始圖像灰度為基礎(chǔ),并通過考察圖像每個(gè)像素在某個(gè)領(lǐng)域內(nèi)灰度的變化,然后利用邊緣鄰近的一階導(dǎo)數(shù)最大值來檢測邊緣,再設(shè)置權(quán)重來檢測水平、垂直、左對角、右對角等各個(gè)不同方向上密度幅度的不同來實(shí)現(xiàn)邊沿檢測。圖1所示是一個(gè)3×3像素的舉例,其水平、垂直、左對角和右對角圖像上密度幅度的變化可以表示為:
其中,H、V、DL、DR用于計(jì)算梯度的大小和方向,而梯度的大小可由正式給出一個(gè)普遍的估計(jì)值:
Magnitude=Max(H,V,DR,DL)
這樣,通過對圖像灰度作直方圖分析,便可以給出區(qū)分度閥值,如果Magnitude大于這個(gè)閥值,則該像素為邊界像素,否則為一般像素。
2 系統(tǒng)設(shè)計(jì)
該邊緣檢測器以ALTERA公司的FLEX10K20芯片為核心器件。由圖像傳感器獲取的圖像經(jīng)前端處理器處理即可得到3×3像素圖形數(shù)據(jù),然后送入各個(gè)濾波器進(jìn)行濾波,最后將有關(guān)結(jié)果送輸出處理模塊處理后輸出。
邊緣檢測的關(guān)鍵是求出四個(gè)方向的圖像梯度數(shù)據(jù)絕對值的最大值,同時(shí)判別最大值出現(xiàn)的方向,其內(nèi)部結(jié)構(gòu)如圖3所示,邊緣檢測的核心部分包括濾波器FILTER、比較器COMPARE、邊界判斷器JUDGE和寄存器等。
2.1 濾波器的設(shè)計(jì)
濾波器(FILTER)的設(shè)計(jì)可采用兩級并行流水線方案,其內(nèi)部結(jié)構(gòu)如圖4所示。圖中的QA、QB、QC、QD、QE、QF對應(yīng)接上Q0、Q3、Q6、Q2、Q5、Q8表示水平方向?yàn)V波,其輸出則為H_FILTER。垂直方向?yàn)V波器、左對角濾波器和右對角濾波與水平方向?yàn)V波器類似。為了提高加法運(yùn)算的速度,加法器的設(shè)計(jì)可選用超前進(jìn)位加法器。
2.2 比較器的設(shè)計(jì)
比較器模塊的功能是比較兩個(gè)輸入值以得到其最大值。其VHDL源程序如下:
2.3 邊界判斷器的設(shè)計(jì)
邊界判斷器JUDGE的功能是根據(jù)區(qū)分度閥值、四個(gè)濾波器的輸出及其最大值進(jìn)行邊界的判斷。其VHDL源程序如下:
3 仿真分析
事實(shí)上,對于圖像邊緣檢測中的sobel算法來說,若使用FPGA來設(shè)計(jì),則H、V、DR、DL四個(gè)方向的濾波可以全部并行。另外,由于每個(gè)方向的濾波器設(shè)計(jì)時(shí)均采用一級四路并行加法器與一級雙路并行加法器相串聯(lián),因此,算上兩級串行比較器。實(shí)際上,整個(gè)過程只有四級串行結(jié)構(gòu)。
4 結(jié)束語
對于本文所設(shè)計(jì)的系統(tǒng),假設(shè)使用40 MHz的系統(tǒng)時(shí)鐘,則處理一個(gè)像素點(diǎn)的時(shí)間約100 ns,也就是說,處理一張800×600的圖像所用的時(shí)間不到50 ms。由此可見,該設(shè)計(jì)可大大提高圖像邊沿檢測的處理速度。
-
dsp
+關(guān)注
關(guān)注
552文章
7962瀏覽量
348293 -
FPGA
+關(guān)注
關(guān)注
1626文章
21675瀏覽量
601960 -
cpld
+關(guān)注
關(guān)注
32文章
1247瀏覽量
169225
發(fā)布評論請先 登錄
相關(guān)推薦
評論