图像处理算法 | Non-Local Means(下)

论文《Non-Local Means Denoising》还提到了一个块级别的NLM,原理和像素级别的是一样的,只是它没有计算相似性累加那一步,直接使用的块累加,公式如下:

                                         \hat{B}_{i}=\frac{1}{C}\sum_{Q=Q(q,f)\in B(p,r)}^{}u_{i}(Q)w(B,Q)                                (5)

                                               C=\sum_{Q=Q(q,f)\in B(p,r)}^{}w(B,Q)                                          (6)

它是以块为单位进行计算的,公式(6)是先计算块B和Q的diff,带入公式(7)的d^2里面,就可以算出块的权重,假设块大小是5×5,此时就会计算出5×5个权重

                                                      w(p,q)=e^{-\frac{max(d^{2}-2\sigma^{2},0)}{h^{2}}}                                               (7)

然后套用公式(5),用得到的w乘以当前搜索块就能得到当前的滤波结果,把搜索窗口内所有的权重块和滤波块累加起来,最后用滤波块的结果除以累加权重,最后得到一个块的滤波结果。这种方法得到的结果就像是公式(8)描述的一样,类似于多个Q的叠加计算均值,只是权重是变化的,对于平坦区域类似于均值的结果,边界区域参与叠加的像素个数较少,起到一个保边的作用。

                                               \hat{u}_{i}(p)=\frac{1}{N^{2}}\sum_{Q=Q(p,f)|q\in B(p,f)}^{} \hat{Q}_{i}(p)                                (8)

如果直接把滤波块作为输出,那就像是玩拼图一样,边界处的滤波结果可能会产生错位,最后的降噪图像中会有块效应,如果是视频播放,还有可能出现块闪烁,所以一般用块做的算法都会有后续的处理。

下图显示的效果只取了滤波块的中心点像素,不同参数的效果图如下:

8  块级别NLM不同参数对比

图8显示的效果中没有出现噪声成团的现象,这个和权重的计算方式有关,按块做的这种算法相当于一个空域权重全为1的双边滤波,所以如果只取中心点像素,不如就直接使用双边滤波。

此外,分析一下按像素做的特点,按照上篇《Non-Local Means(上)》公式(1)它把窗口内的差值做了求和,这一步其实是会让一些比较大的孤立噪声在相邻的窗口内持续的起作用,造成相邻块计算出的权重也比较小,平坦区域的降噪力度在部分区域变小,最后降噪力度不均匀,严重的时候还会产生伪纹理。

           d^{2}(B(p,f),B(q,f))=\frac{1}{3(2f+1)^{2}}\sum_{i=1}^{3}\sum_{j\in B(0,f)}^{}(u_{i}(p+j)-u_{i}(q+j))^{2}      (1)

具体算法实现已公开发表在Github,GitHub - WuYiningOdell/Image_processing_algorithm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大凝的IC进阶之路

一起学习一起进步

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值