matlab二值图去噪算法,传统图像去噪方法(二)之引导滤波

本文介绍了引导滤波在图像去噪中的应用,特别是针对matlab二值图像的去噪。引导滤波是一种保边平滑技术,能有效区分噪声与图像边缘,避免传统各向同性滤波造成的边缘模糊。文章详细阐述了引导滤波的原理,包括滤波器的数学公式,并通过OpenCV的Python实现展示了不同ε值下的去噪效果。还提供了一个简单的伪代码实现,以帮助理解算法流程。
摘要由CSDN通过智能技术生成

各向同性滤波

我们知道对于滤波器而言,在均值滤波中W时是1/n,n是w中所有像素个数。在高斯平滑中,W服从二维的高斯分布。

ea73045f2ed8178ed787b7604d389d09.png

但是无论是均值滤波还是高斯滤波,他们都有一个共同的弱点,它们都属于各向同性滤波。

噪声的特点是以其为中心的各个方向上梯度都较大并且相差不多。图像边缘在相对于区域也会出现梯度的越变,但是边缘只有在其法向方向才会出现较大的梯度,在切向方向梯度较小。

因此才会出现各向同性滤波对待噪声和边缘信息采取一致的态度,从而导致噪声被磨皮的同时,图像中边缘,纹理和细节也被抹去了。

引导滤波(guided filter)原理

引导滤波(导向滤波)是一种图像滤波技术,通过一张引导图,对初始图象(输入图像)进行滤波处理,使得最后的输出图像大体上与初始图象相似,但是,纹理部分与引导图相似。其典型应用有两个:保边图像平滑,抠图。

引导滤波不仅能实现双边滤波的边缘平滑,而且在检测到边缘附件有很好的表现。可应用在图像增强,HDR压缩,图像抠图以及图像去霾等场景。

算法原理:

滤波器的数学公式如下:

7642bf9ffde5dab37aa990386f4cc881.png

其中I是引导图像(guided Image),P是输入的带滤波图像,Q是滤波后的输出图像,W是根据引导图像I来确定加权平均运算中所采取的权值。一般我们选择原彩色图的灰度图作为引导图 I 或者对灰度图进行一些保留边缘的滤波操作再作为引导图。

17ecccb8a308eaf336a100d03267a4cc.png

μk是窗口内像素点的均值,Ii和Ij指相邻两个像素点的值,σk代表窗口内像素点的方差,ε是一个惩罚值。自适应权重可以根据上式分析得到:Ii和Ij在边界两侧时,(Ii-μk)和(Ij-μk)异号,否则,则同号。而异号时的权重值将远远小于同号时的权重值,这样处于平坦区域的像素则会被加以较大的权重,平滑效果效果更明显,而处于边界两侧的像素则会被加以较小的权重,平滑效果较弱,能够起到保持边界的效果。

惩罚值ε对滤波效果影响也很大,当ε值很小时,滤波如前面所述;当ε值很大时,权重的计算公式将近似为一个均值滤波器,平滑效果会更明显。

导向滤波器示意图如下:

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目介绍】 基于MATLAB实现传统图像去噪算法和深度学习DnCNN模型图像去噪源码+项目说明.zip 该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶, 或者实际项目借鉴参考! 当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。如果基础还行,也可在此代码基础上进行修改,以实现其他功能。 1. 项目介绍 # 1.1 项目的背景 该项目是为了研究基于深度卷积神经网络的图像去噪算法,是利用DnCNN模型,但是为了比较该算法的效果,另外实现了四种传统图像去噪算法(均值滤波、中值滤波、非局部均值滤波NLM和三维块匹配滤波BM3D)作为对照组。 # 1.2 噪声强度和类型 项目中实现五种算法噪声强度为10,15,20...60,65,70的高斯白噪声进行处理。 # 1.3 评价指标 图像去噪后,如何评估算法去噪效果的好坏呢?项目中采用峰值信噪比PSNR和结构相似性SSIM作为评价指标。一般来说,PSNR越大,去噪效果越好。SSIM取值为0到1,越接近1,表示效果越好。 2. 数据集介绍 该项目中只是对Set12数据集进行处理,也就是项目中的Set12目录下的12张片。如果觉得数据量不够充分,可以自行添加其他数据集,在代码中修改一下数据集的目录即可。 3. 代码介绍 对于均值滤波、中值滤波、和NLM,MATLAB都已经实现了,所以我们直接调用MATLAB自带的函数就可以。 BM3D和DnCNN的代码都是从别人那儿clone下来,做了一些小的修改。 五种算法都是对Set12数据集进行去噪去噪的结果并没有保存,只是在运行过程中能看到去噪前和去噪后的像对比,感兴趣的朋友可以自己将像保存下来观察。 4. 代码运行 五种算法分别在五个不同的目录中,所以你只需要进行对应的目录,运行代码即可。 + 均值滤波、中值滤波、NLM算法对应的目录分别为avefilter、medainfilter、nlm-image-denoising。每个目录下只有一个.m文件,所以只需要运行对应的文件即可。 + BM3D对应的目录是BM3D,运行该目录下的main.m程序即可。 + DnCNN对应的目录是DnCNN,运行该目录下的Demo_test_DnCNN.m程序即可,该算法目录中对应的还有好几个代码,都是原项目中有的,我没有动过,感兴趣的朋友可以自己看看。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值