均值滤波计算_基于FPGA的中值滤波算法实现
把之前圖像處理的文章加上原創(chuàng)標(biāo)識,重新發(fā)表一遍。
在實時圖像采集中,不可避免的會引入噪聲,尤其是干擾噪聲和椒鹽噪聲,噪聲的存在嚴重影響邊緣檢測的效果,中值濾波是一種基于排序統(tǒng)計理論的非線性平滑計數(shù),能有效平滑噪聲,且能有效保護圖像的邊緣信息,所以被廣泛用于數(shù)字圖像處理的邊緣提取,其基本原理是把數(shù)字圖像或數(shù)字序列中的一點的值用該點鄰域內(nèi)所有點的中值來代替。
中值濾波對脈沖噪聲有良好的濾除作用,特別是在濾除噪聲的同時,能夠保護信號的邊緣,使之不被模糊。這些優(yōu)良特性是線性濾波方法所不具有的。此外,中值濾波的算法比較簡單,也易于用硬件實現(xiàn)。所以,中值濾波方法一經(jīng)提出后,便在數(shù)字信號處理領(lǐng)得到重要的應(yīng)用。
中值濾波方法是,對待處理的當(dāng)前像素,選擇一個模板,該模板為其鄰近的若干個像素組成,對模板的像素由小到大進行排序,再用模板的中值來替代原像素的值的方法。
???????? 當(dāng)我們使用3x3窗口后獲取領(lǐng)域中的9個像素,就需要對9個像素值進行排序,為了提高排序效率,排序算法思想如圖3-18所示
(1)??????對窗內(nèi)的每行像素按降序排序,得到最大值、中間值和最小值;
(2)??????把三行的最小值相比較,取其中的最大值;
(3)??????把三行的最大值相比較,取其中的最小值;
(4)??????把三行的中間值相比較,再取一次中間值;
(5)??????把前面的到的三個值再做一次排序,獲得的中值即該窗口的中值。
排序算法思想
中值濾波的3x3矩陣的生成和均值濾波是完全類似的。我們求中值的方法是,先對3x3矩陣的每行按從大到小進行排序,然后利用排序法求出最大值那一列的最小值,求出之間數(shù)那一列的中間值,求出最小值按一列的最大值,最后將求出的三個值再排序,這三個值的中間值就是這個3x3矩陣的中間值。
?中值濾波計算
如圖所示仿真,可以推算出,這個中值完全是正確的,最后將求出的中值輸出,這樣中值定理便完成了。
3x3矩陣的中值輸出
???????? 我們在求中值的時候消耗了三個時鐘周期,最后輸出寫RAM使能信號時,需要將per_clken延時3個時鐘周期,保證圖像數(shù)據(jù)與寫RAM使能對齊、同步性。這里延時的寫法和前面文章中所講的是完全相同的!查看視頻效果。
視頻是新配的,核心代碼相同。
中值濾波和均值濾波比較:中值濾波與均值濾波分別是非線性濾波和線性濾波的代表,這兩種濾波非常的相似,但濾波的效果卻有很大的差別,均值濾波相當(dāng)于低通濾波,有將圖像模糊化的趨勢,對椒鹽噪聲基本無能為力。中值濾波的優(yōu)點是可以很好的過濾椒鹽噪聲,缺點是容易造成圖像的不連續(xù)。中值濾波有效的移植了最大值和最小值,圖像會變得均勻,對椒鹽噪聲有很好的濾出效果!所以本系統(tǒng)最終選擇采用中值濾波的方法。
灰度lena
均值濾波lena
中值濾波lena
上圖為灰度圖,中間為均值濾波圖像,下圖為中值濾波后的圖像。通過對比發(fā)現(xiàn),均值濾波后的lena變得更模糊,亮度也變高,而中值濾波后的lena清晰度較好,也是有效的過濾掉了椒鹽噪聲,由于我們這是所選取的圖片椒鹽噪聲不明顯,感興趣的讀者可以自己去試著找一幅帶椒鹽噪聲的圖片去處理一下。這里需要強調(diào)的一下是濾波后的圖像會有部分邊緣缺失,這是因為我們在求取均值或中值時,生成的3x3矩陣,在緩存第一行數(shù)據(jù)時,第二三行數(shù)據(jù)是沒有的,同樣緩存到前兩行第三行數(shù)據(jù)也是沒有的,但這個時候我們就已經(jīng)開始了求均值或中值的運算,那么這個時候輸出的像素點其實是作廢的,這里我們并沒有過多的關(guān)心這些像素點,只是專注于學(xué)習(xí)中值濾波。
如果你想獲得本文的所有課件和工程代碼,請關(guān)注本人的個人微信訂閱號:硅農(nóng) 或掃描下方二維碼關(guān)注訂閱號,在后臺回復(fù)圖像處理,即可獲得本文的所有課件、資料、和工程源碼哦!
總結(jié)
以上是生活随笔為你收集整理的均值滤波计算_基于FPGA的中值滤波算法实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Origin好友列表离线的解决办法汇总
- 下一篇: matlab线性同余发生器,线性同余法生