<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

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

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

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

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

wKgZomWBVb6Af2ICAAHV9gqy8II496.png

1.1.均值/中值濾波

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

wKgZomWBVb6ARqweAADKCKhbQ6E689.png

對于FPGA的硬件加速實現,過程還好,唯一頭疼的就是涉及了除法,由于除法計算時鐘周期長且耗費LE,我們需要升級改造下,因此優化公式如下(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)

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

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

wKgZomWBVb-Af3cYAASHJsu57q0062.png

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

wKgZomWBVb-AZpurAAHfG42NU28767.png

既然已經得到二維高斯分布函數,那么根據窗口到目標像素的距離,就可以是計算出周邊像素的權重——高斯模板。均值濾波每個像素的權重都是1/9,再通過卷積后計算得到結構,而高斯濾波就是根據正態分布,去計算當前像素相對距離的權重值,假定σ=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輸出一個計算結果。

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

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

wKgaomW-5myAVna6AADoNA98tqA290.png

wKgZomWBVcCABUGrAABUdafP6GM276.jpg

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

wKgZomWBVcCAXgqKAABiq3a-ogY313.jpgwKgZomWBVcCAT7VzAAACXWrmhKE589.png

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

點個在看你最好看


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

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


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

    關注

    1608

    文章

    21367

    瀏覽量

    594626

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

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

收藏 人收藏

    評論

    相關推薦

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

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

    降壓斬波電路輸出電流平均值怎么算

    降壓斬波電路是一種常見的電源電路,它通過將交流電壓轉換為所需的較低直流電壓。在降壓斬波電路中,輸出電流平均值是非常重要的指標,它決定了電路的穩定性和效率。為了詳細地解釋如何計算輸出電流平均值,下面
    的頭像 發表于 03-11 14:44 ?835次閱讀

    濾波電容不同補償方式優缺點對比

    濾波電容不同補償方式優缺點對比? 濾波電容是電子電路中常用的元件,用于對信號進行濾波處理。不同的補償方式可以幫助提高
    的頭像 發表于 01-04 16:00 ?448次閱讀

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

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

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

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

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

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

    卡爾曼濾波算法對比其他的濾波算法有什么優點?

    卡爾曼濾波算法對比其他的濾波算法有什么優點
    發表于 10-11 06:42

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

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

    卡爾曼濾波算法是怎么實現對數據的預測處理的?

    卡爾曼濾波算法是怎么實現對數據的預測處理的
    發表于 10-10 08:28

    怎么評估一個濾波算法濾波效果?

    怎么評估一個濾波算法濾波效果
    發表于 10-10 07:31

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

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

    MPU6050使用互補濾波與卡爾曼濾波算法進行姿態解算

    MPU6050使用互補濾波與卡爾曼濾波算法進行姿態解算
    發表于 08-07 15:46 ?3次下載

    11種濾波算法程序分享

    11種濾波算法程序分享
    的頭像 發表于 07-24 15:57 ?1092次閱讀

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

    圖像降噪處理主要分為2D(空域)與3D降噪(時域/多幀),而2D降噪由于相關的實現算法豐富,效果各異,初學入門有著豐富的研究價值。
    發表于 07-03 15:31 ?1626次閱讀
    <b class='flag-5'>詳解</b>從<b class='flag-5'>均值</b><b class='flag-5'>濾波</b>到非<b class='flag-5'>局部</b><b class='flag-5'>均值</b><b class='flag-5'>濾波</b><b class='flag-5'>算法</b>的原理及<b class='flag-5'>實現</b><b class='flag-5'>方式</b>

    ADC求平均值哪種方式比較合適?

    方法一: 取值A1、A2....An 平均值Av1 = (A1+A2+....An)/n 取第二組A1、A2....An 平均值Av2 = (A1+A2+....An)/n 方法二: 取值A1
    發表于 06-26 08:43
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>