0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

詳解從均值濾波到非局部均值濾波算法的原理及實現方式

FPGA設計論壇 ? 來源:未知 ? 2023-12-19 16:30 ? 次閱讀

圖像降噪處理主要分為2D(空域)與3D降噪(時域/多幀),而2D降噪由于相關的實現算法豐富,效果各異,初學入門有著豐富的研究價值。理解2D降噪算法的流程,也對其他的增強算法有很大的幫助,因此本文將再啰嗦一次,詳解從均值濾波到非局部均值濾波算法的原理及實現方式。

細數主要的2D降噪算法,如下圖所示,從最基本的均值濾波到相對最好的BM3D降噪,本文將盡量用最同屬的語言,詳解這些算法的實現流程,并給予一定的FPGA加速實現的實現思路。其中BM3D由于篇幅較大,后面再補上。

wKgZomWBVb6Af2ICAAHV9gqy8II496.png

1.1.均值/中值濾波

首先所有濾波算法都是通過當前像素周邊的像素,以一定的權重來計算濾波的像素值。因此主要涉及兩個變量:窗口的大小,以及窗口內像素的權重。以最簡單的均值濾波/中值濾波,3*3窗口為例,計算及優(yōu)缺點如下:

wKgZomWBVb6ARqweAADKCKhbQ6E689.png

對于FPGA的硬件加速實現,過程還好,唯一頭疼的就是涉及了除法,由于除法計算時鐘周期長且耗費LE,我們需要升級改造下,因此優(yōu)化公式如下(sum為9個像素累加的結果),將除法巧妙變成乘法:

wKgZomWBVb6ANWthAAAJ1l8Fzgs858.png

因此實現的流程如下

1)sum1=P0+P1+P2; sum1=P3+P4+P5; sum3=P6+P7+P8,即先求每行3像素累加

2)sum=sum1+sum2+sum3,即求三行9像素累加

3)sum*144,取結果的[17:10],即為均值濾波的結果。

4)以上過程流水線,最終每個clk輸出一個計算結果。

備注:這里1024/9取了floor,這樣保證不會溢出。

對于中值濾波而言,本身計算并不復雜,就看怎么取巧最快得到中間數,網上流傳了一個三步法,即如下圖所示,

wKgZomWBVb6ASzWYAADnl6GvmuU841.png

那么FPGA硬件加速實現,流程如下:

1)計算每行3個像素的最大中、中值、最小值

2)計算三個最大值的最小值,中間值的中間值,以及最小值的最大值。

3)對上述三個值求得中間值。

4)以上過程流水線,最終每個clk輸出一個計算結果。

中值濾波計算相對均值濾波稍微復雜一點,但是好處是只用了比較器,沒用乘法器,比均值濾波更省資源。

對于椒鹽圖像的均值濾波、中值濾波計算效果對比,如下所示,分別為椒鹽圖像、均值濾波、中值濾波結果。

wKgZomW-5jaAfiQNAAKKaeHbqys604.png

1.2.高斯濾波

1)

前面講的均值/中值濾波,對于窗口內每個像素的權重都是一樣的,噪聲在圖像當中常表現為一引起較強視覺效果的孤立像素點或像素塊,那么他必然不是平均分布。

正態(tài)分布是最重要的一種概率分布,相關概念上是由德國的數學家和天文學家Moivre與1733年首次提出的,但由于德國數學家Gauss率先將其用于天文學研究,因此也叫做高斯分布。在正態(tài)分布里,人為中間狀態(tài)是常態(tài),過高和過低都屬于少數,因此正態(tài)分布具有相當的普遍性,典型的比如升高、壽命、血壓、成績、測量誤差等都遵從正太分布。

wKgZomWBVb-Af3cYAASHJsu57q0062.png

因此以概率論及中心極限定理(https://wiki.mbalib.com/wiki/中心極限定律)猜想,大部分噪聲應該也符合正態(tài)分布/高斯分布(高斯白噪聲),所以也就有了高斯濾波,及根據正態(tài)分布進行權重計算的濾波方法。上圖曲線是高斯分布的一維函數,而圖像應該是二維的,圖解如下二維高斯分布:

wKgZomWBVb-AZpurAAHfG42NU28767.png

既然已經得到二維高斯分布函數,那么根據窗口到目標像素的距離,就可以是計算出周邊像素的權重——高斯模板。均值濾波每個像素的權重都是1/9,再通過卷積后計算得到結構,而高斯濾波就是根據正態(tài)分布,去計算當前像素相對距離的權重值,假定σ=1.5(σ就是濾波的強度),3*3的高斯模板計算計算過程如下:

wKgZomWBVb-AG_O7AAMsXn0kokw921.png

但是這還不夠,畢竟我們的目標是直接上FPGA,那必須頂定點化,因此假設擴大1024倍,則3*3的高斯模板定點化如下:

wKgZomWBVb-ADNd5AAA449zqkMo618.png

對于33或者55,選定的σ,高斯模板那么,現在計算就簡單了,卷積后再縮小1024倍即可,采用FPGA計算,過程如下:

1)計算9個像素的對應卷積參數的乘法

2)9累加9個乘法結果

3)右移10bit或取結果的[17:10],即為高斯濾波的結果。

4)以上過程流水線,最終每個clk輸出一個計算結果。

備注:當然實現還可優(yōu)化,比如只用3個乘法器,算一行累加一行,也就4個時鐘算完。

最后,暫且盜用別人針對不同σ的3*3高斯濾波效果圖,如下(σ越大越模糊):

wKgaomW-5myAVna6AADoNA98tqA290.png

wKgZomWBVcCABUGrAABUdafP6GM276.jpg

精彩推薦 至芯科技FPGA就業(yè)培訓班——助你步入成功之路、12月30號西安中心開課、歡迎試聽! AXI總線協(xié)議總結 基于FPGA及模擬電路的模擬信號波形的實現掃碼加微信邀請您加入FPGA學習交流群

wKgZomWBVcCAXgqKAABiq3a-ogY313.jpgwKgZomWBVcCAT7VzAAACXWrmhKE589.png

歡迎加入至芯科技FPGA微信學習交流群,這里有一群優(yōu)秀的FPGA工程師、學生、老師、這里FPGA技術交流學習氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!

點個在看你最好看


原文標題:詳解從均值濾波到非局部均值濾波算法的原理及實現方式

文章出處:【微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1620

    文章

    21510

    瀏覽量

    598879

原文標題:詳解從均值濾波到非局部均值濾波算法的原理及實現方式

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    rtt4.1.1做滑動平均值濾波的時候,被意外賦值,為什么?

    1. 問題描述 我使用rtt4.1.1版本,其中adc采樣直接采用cubemx生成的庫函數,用DMA讀取方式讀取AD的值。并在DMA中斷內回調AD值計算函數。 結果在做滑動平均值濾波的時候出現了
    發(fā)表于 09-13 06:33

    求助,關于均值檢波電路的兩個疑問求解

    是如圖示的值,并且不管輸入信號怎么變化,都不變。這是什么原因,有人知道嗎。 問題二:有人說均值檢波中的積分電路實則是一個低通濾波,所以我想知道的是,為什么整流完后又加了低通,是要濾掉什么,有點搞不清楚均值檢波的工作原理了。
    發(fā)表于 09-02 06:55

    基于CW32的儀表精度測量實現(一):相關濾波原理

    進行處理。 二、常見的濾波算法 1.小波變換濾波 原理:小波變換通過將信號分解成不同尺度的子信號,可以提取出信號中的局部特征。在濾波中,小波
    的頭像 發(fā)表于 08-30 18:53 ?95次閱讀
    基于CW32的儀表精度測量<b class='flag-5'>實現</b>(一):相關<b class='flag-5'>濾波</b>原理

    CW32數字電壓電流表軟件進階教程-2.電壓電流值做均值濾波

    速度較快時,數字有跳動現象。 因此,在數據處理前,可以增加常見的均值濾波算法。均值濾波原理在實驗七中已有講述。 在7.1實驗例程基礎上,增加
    的頭像 發(fā)表于 05-31 15:57 ?320次閱讀

    CW32數字電壓電流表軟件教程-實驗七:基本數據處理算法均值濾波

    均值濾波也稱為線性濾波,其采用的主要方法為鄰域平均法。線性濾波的基本原理是用均值代替原圖像中的各個像素值,即對待處理的當前像素點(x,y),
    的頭像 發(fā)表于 05-31 15:47 ?247次閱讀

    CW32數字電壓電流表軟件教程(七):基本數據處理算法均值濾波

    均值濾波也稱為線性濾波,其采用的主要方法為鄰域平均法。線性濾波的基本原理是用均值代替原圖像中的各個像素值,即對待處理的當前像素點(x,y),
    的頭像 發(fā)表于 05-28 10:50 ?318次閱讀

    了解EMI濾波器:基礎應用?

    了解EMI濾波器:基礎應用?|深圳比創(chuàng)達電子
    的頭像 發(fā)表于 01-23 10:26 ?398次閱讀
    了解EMI<b class='flag-5'>濾波</b>器:<b class='flag-5'>從</b>基礎<b class='flag-5'>到</b>應用?

    淺談濾波器的基本原理和性能

    濾波器的重要性能指標有截止頻率、紋波幅度、通帶帶寬、品質因數、幅頻特性等。濾波器的截止頻率是指相對于濾波器的幅頻特性平均值衰滅 3dB的時
    的頭像 發(fā)表于 01-02 17:12 ?692次閱讀
    淺談<b class='flag-5'>濾波</b>器的基本原理和性能

    移動平均濾波的原理和C代碼

    移動平均濾波是一種簡單有效的平滑信號的方法,它通過計算一系列數據點的平均值來減小信號中的波動?;镜囊苿悠骄?b class='flag-5'>濾波方法有兩種:簡單移動平均(SMA)和指數加權移動平均(EWMA)。簡單移動平均
    的頭像 發(fā)表于 12-04 08:00 ?1385次閱讀
    移動平均<b class='flag-5'>濾波</b>的原理和C代碼

    大佬總結!這篇把單片機數字濾波算法講絕了

    單片機主要作用是控制外圍的器件,并實現一定的通信和數據處理。但在某些特定場合,不可避免地要用到數學運算,盡管單片機并不擅長實現算法和進行復雜的運算。下面主要是介紹如何用單片機實現數字
    發(fā)表于 11-30 18:39

    什么是濾波 常見的軟件濾波辦法

    采樣信號濾波 什么是濾波 濾波(Wave filtering)是將信號中特定波段頻率濾除的操作,是抑制和防止干擾的一項重要措施。 它可以含有干擾的接收信號中提取有用信號,很大程度上保
    的頭像 發(fā)表于 11-28 15:43 ?831次閱讀

    灰度圖像均值濾波算法的HDL實現介紹

    首先要做的是最簡單的均值濾波算法。均值濾波是典型的線性濾波
    的頭像 發(fā)表于 10-16 09:23 ?731次閱讀
    灰度圖像<b class='flag-5'>均值</b><b class='flag-5'>濾波</b><b class='flag-5'>算法</b>的HDL<b class='flag-5'>實現</b>介紹

    卡爾曼濾波算法對比其他的濾波算法有什么優(yōu)點?

    卡爾曼濾波算法對比其他的濾波算法有什么優(yōu)點
    發(fā)表于 10-11 06:42

    用于變壓器局部放電在線監(jiān)測的改進NLMS自適應濾波算法

    電子發(fā)燒友網站提供《用于變壓器局部放電在線監(jiān)測的改進NLMS自適應濾波算法.pdf》資料免費下載
    發(fā)表于 10-10 11:44 ?0次下載
    用于變壓器<b class='flag-5'>局部</b>放電在線監(jiān)測的改進NLMS自適應<b class='flag-5'>濾波</b><b class='flag-5'>算法</b>

    泰克示波器測量電壓如何進行濾波

    : 1. 低通濾波器(Low-pass Filter):低通濾波器允許低頻信號通過,而抑制高頻信號。這種濾波器常用于去除高頻噪聲和干擾。在示波器中,可以通過設置低通濾波器的截止頻率來控
    的頭像 發(fā)表于 10-08 17:48 ?1670次閱讀
    泰克示波器測量電壓如何進行<b class='flag-5'>濾波</b>?