機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
基于FPGA的中值濾波快速算法的設(shè)計與實現(xiàn)
基于FPGA的中值濾波快速算法的設(shè)計與實現(xiàn)
 更新時間:2008-8-3 15:54:31  點擊數(shù):6
【字體: 字體顏色


    0 引言

現(xiàn)代圖像處理系統(tǒng)對實時性的要求愈來愈高,但圖像的前端采集往往會受器件或環(huán)境影響而使獲得的圖像含有噪聲,因而需要在對圖像處理前進行去噪聲處理。若使用通用的軟件方法,由于處理過程需要進行大量的簡單計算,因此會消耗不少時間而影響系統(tǒng)的實時性。隨著現(xiàn)代電子技術(shù)的發(fā)展,用FPGA來完成中值濾波這類運算簡單但數(shù)據(jù)量巨大的處理,無疑是一種理想的選擇。


1 中值濾波的原理和快速算法


1.1 中值濾波原理


中值濾波是一種非線性空域濾波方法。它是可以有效抑制圖像噪聲,提高圖像信噪比的非線性濾波技術(shù)。中值濾波首先對鄰域點的灰度進行排序,然后選擇中間值作為輸出灰度值。與均值濾波器和其他線性濾波器相比,中值濾波可以很好的濾除脈沖噪聲(Impulsive Noise)和椒鹽噪聲(Salt and Pepper Noise)。同時能夠很好的保護圖像邊緣輪廓的細節(jié)。


中值濾波的公式如下:







其中,g(x,y),f(x,y)為像素灰度值,S為模板窗口。


中值濾波的過程一般為:


(1)選擇一個(2n+1) (2n+1)的窗口(一般是3×3或者5×5),使窗口沿圖像數(shù)據(jù)的行方向和列方向從左至右、從上至下沿每個像素滑動。


(2)每次滑動后,對窗口內(nèi)的像素灰度進行排序,并用中間值代替窗口中心位置的像素灰度值。


1.2 快速中值濾波算法


中值濾波算法的核心是快速求出中間灰度值。傳統(tǒng)的排序法如冒泡法,運算量巨大。而用硬件實現(xiàn)不僅要消耗大量的資源,而且運算速度很慢,難以滿足圖像系統(tǒng)處理的實時性要求。本文針對大小為3×3的窗口采用了一種快速排序算法,可以在很大程度上減少運算量,且易于用較少的硬件資源實現(xiàn)。


圖1所示是一個3×3窗口內(nèi)的像素排列方式,該窗口將窗口內(nèi)的各個像素點從左至右,從上至下依次定義為D11、D12、D13、D21、D22、D23、D31、D32、D33。







處理時,先分別對每一行的數(shù)據(jù)進行排序,以得到每一行的最大值、中間值和最小值。其中第一行得到的最大值為:Max1=max {D11,D12,D13};


中間值為:Med1=med{D11,D12,D13};


最小值為:Min1=min {D11,D12,D13};


同樣,也可得到第二行的三個值Max2,Med2,Min2和第三行的三個值Max3,Med3,Min3。


由于在上述這九個數(shù)中,三個最大值中的最大值一定是九個像素值的最大值。同理,三個最小值中的最小值一定是九個像素值中的最小值。三個中值中的最大值至少大于五個像素值;即本行的最小值和其他兩行中的中值及最小值。而三個中值中的最小值至少小于五個像素值;即本行的最大值和其他兩行的中值和最小值。所以,比較三個最大值中的最小值Min_of_max、三個中值中的中間值Med_of_med以及三個最小值中的最大值Max_of_min,所得到的中間值就是最終的濾波結(jié)果Meddata。其具體過程如下;







雖然,與傳統(tǒng)的排序方法相比,這種方法的比較次數(shù)大大減少。因為求出中值只用了19次比較運算,因而十分方便在FPGA上進行并行處理。


2 圖像預(yù)處理系統(tǒng)和中值濾波器的設(shè)計


2.1 圖像預(yù)處理系統(tǒng)設(shè)計


對圖像的預(yù)處理,一般應(yīng)在前端采集之后立即進行。圖2給出了一個圖像預(yù)處理系統(tǒng)的系統(tǒng)設(shè)計框圖。


圖2中,圖像數(shù)據(jù)經(jīng)前端設(shè)備采集并經(jīng)過A/D轉(zhuǎn)化后,可存人雙口RAM中的一端。然后在選擇控制模塊的控制下將雙口RAM中的幀數(shù)據(jù)提供給中值濾波模塊,同時在雙口RAM的另一端存人另一幀圖像數(shù)據(jù)。接著將中值濾波處理后的圖像數(shù)據(jù)存入SDRAM中,以供后續(xù)的進一步處理。雙口RAM的容量只要可以存儲兩幀圖像數(shù)據(jù)即可。







2.2 3×3窗口模塊


中值濾波作為圖像預(yù)處理的一部分,其實時性是一個關(guān)鍵的要求。它要求濾波器能快速、連續(xù)的處理圖像數(shù)據(jù)。中值濾波的第一個問題是要準確獲得3×3窗口中的圖像灰度數(shù)據(jù)。圖3給出了該濾波器的設(shè)計框圖。


圖3中的濾波器用到了兩個FIFO。這種設(shè)計可采用QuartusII中的Megacore實現(xiàn)。設(shè)計長度為一行數(shù)據(jù)(即256)。系統(tǒng)開始工作后,先對FIFO2寫第一行圖像數(shù)據(jù),寫滿后再對FIFO1寫第二行圖像數(shù)據(jù),直到FIFO1也寫滿。在此期間,F(xiàn)IFO1和FIFO2只寫不讀。當完成兩行數(shù)據(jù)的寫人后,將數(shù)據(jù)輸入端和FIFO1、FIFO2如圖2所示進行連接,此時的FIFO1和FIFO2只讀不寫,待三個時鐘周期后,將FIFO1和FIFO2設(shè)為既讀又寫。這樣,在寄存器輸出端和兩個FIFO的輸出端即可獲得第一個3×3模板中的圖像灰度數(shù)據(jù)。此后,隨著圖像數(shù)據(jù)的輸人,模板也沿著圖像從左至右、從上至下移動。


[1] [2]  下一頁
  • 上一篇: RS422/RS485總線模型分析與應(yīng)用
  • 下一篇: 基于DSP的圖象采集與處理系統(tǒng)的設(shè)計
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1