博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[数字图像处理]图像去噪初步(1)--均值滤波器
阅读量:5230 次
发布时间:2019-06-14

本文共 2777 字,大约阅读时间需要 9 分钟。

1.图像去噪的前言

    上一篇博文中,我对噪声的类型进行了介绍,也使用的Matlab对各种噪声进行了实现。旧话重提,一幅图像,甚至是一个信号的老化,能够使用下面模型来表示。

能够使用下面算式来表示

这里,因为退化函数的作用,使得原图像产生退化(比方,运动模糊),然后在加上一个加性噪声项

      本博文,主要对去除加性噪声的线性滤波器的性能进行了比較。对于退化函数的去除(称为去卷积或者逆滤波),将放在稍后的博文。

      1.1 实验用图像 

      1.2 实验结果的评价

            实验的步骤为,将实验用图像加上加性噪声,然后使用滤波器进行去噪,比較所得到的图像的画质。这里,就涉及到画质的评价方法。一般的,去噪图像的评价一般使用PSNR(峰值信噪比)。

       对于8-bit的图片而言,这里的MAX为255。PSNR越大,其画质就越好。可是,有些时候,使用PSNR来进行评价,也有不太合理的时候。

       请对照方下三张图片,a)是使用平均滤波器进行了处理,使其有些模糊;b)是使用高斯噪声污染原图;c)是使用椒盐噪声污染的图像。

    问题来了,这三张图像哪张画质最好,哪张最差。普遍的,画质从好到差排列,大家的答案应该是

a) > c) > b)

这种(很多其它实际样例,请參考https://ece.uwaterloo.ca/~z70wang/research/ssim/)。那么,我们求其的PSNR是这种。

这明显不科学,三幅图像的PSNR是一样的。反观PSNR的计算式,PSNR计算的时候,使用了MSE这个量。而MSE只表现了两幅图像的灰度值的差,而对于图像的结构,却没有进行不论什么分析。

       这里使用一种比較好的图像画质评价的方法:SSIM(念做:艾斯-希姆)。这是一种由两张图像的灰度差异,构造差异和对照度去推断两张图的接近程度的方法。详情请參考[文献1],这里仅仅做简单的介绍一下啦。

SSIM从图像亮度(Luminance),图像对照度(Contrast)和图像构造(Structure)去推断处理过的图像与原图的差异。这里,使用了某个区域的内的平均值作为亮度度量,使用方差作为对照度度量,使用协方差作为构造度量,来进行推断。这样,SSIM就比仅使用灰度去推断的PSNR更加准确。一样的,使用SSIM求取上面三幅图象的类似度。

从上表能够看出来,通过使用SSIM进行推断的结果,更加符合人眼的主观感受。本文余下的实验,所有使用SSIM去推断画质。

2.几个均值滤波器---线性处理

    2.1 算术均值滤波器

    算术均值滤波器非常easy,就是求某个区域内的全部像素的算术均值,可用下式子表示。
    
从式子上能够看出来,这就是一个低通滤波器,会使得画面模糊,有些许去噪能力。略微做个实验看看。

    将实验用图像加噪,噪声均值为0、方差为0.0298的噪声。

    以下,使用算术均值滤波器,看看去噪效果。

   被去掉了些许,仅仅是些许。再看频率域内的图像,果然是一个低通滤波器,我们都能够脑补出这个滤波器的振幅特性了,对吧?

    2.2 几何均值滤波器

    接下来是几何均值滤波器,求某个区域内的几何平均值。
    
对于这个滤波器,书(《Digital Image Processing》 Rafael C. Gonzalez / Richard E. Woods)上说了,这个滤波器产生的去噪效果能够与算术平均值滤波器基本一样,可是能够更少的丢失细节。
    相同的,将实验用图像加噪,噪声均值为0、方差为0.17的噪声。
       有结果可见,其去噪效果也不是太理想,可是原本芯片的pin脚什么的,比算术均值滤波器略微好要一些的。当然,几何滤波器有一个致命的缺点,一旦有0值出现,那么这个像素的值马上被决定为0,这也就意味着,几何滤波器不能够去除胡椒噪声。

    2.3 算术均值滤波器与几何均值滤波器的比較

        为了对照几何均值滤波器与算术均值滤波器,我们进行了例如以下几组实验。因为篇幅问题,我就不贴出图来了。看数据就能够了。
        1.  噪声:高斯噪声,均值0,方差为0.17
         2.噪声:高斯噪声,均值0.2,方差为0.17
         3.噪声:椒盐噪声,胡椒密度0,盐粒密度0.1
这个还是想把结果贴上,几何平均滤波器的实验结果还是具有一定的欣赏性的。
         4.噪声:椒盐噪声,胡椒密度0.1,盐粒密度0
       就如同实验结果一样,因为包括了大量了胡椒噪声,几何滤波器坏掉了。得到的结果非常糟糕。
       实验结论:实验4的数据说明
,因为包括了0值,几何滤波器去噪效果并不太好。可是实验3,几何滤波器的去噪效果真的是非常不错。简单而言,算术均值滤波器泛用性比較好,而几何滤波器则擅长于去除盐粒噪声。
================
       拓展运用:既然几何滤波器对于去除盐粒噪声,那么,对于只函数胡椒噪声的图像取反,将胡椒噪声转换为盐粒噪声去处理,所得结果再返回来,那么,几何均值滤波器还是能够去除胡椒噪声的。
================

    2.4 谐波均值滤波器

    其表达式例如以下所看到的,
注意式子的分母,这个滤波器不但不能去除椒盐噪声,对于灰度过黑的图像而言,也是要坏事的。书(《Digital Image Processing》 Rafael C. Gonzalez / Richard E. Woods)上又说了,这个滤波器,擅长于高斯噪声的去噪。实验一下看看。
    把实验用图加噪,类型为高斯噪声,均值为0,方差为0.15.
从实验结果看,事实上这个滤波器的去噪效果还不如算术平均滤波器和几何平均滤波器。

    2.5 逆谐波均值滤波器

    逆谐波滤波器能够相应多种噪声,式子例如以下。
这个滤波器,能够通过Q值的变化,来获得一定的效果。当Q为正,这个滤波器能够去除胡椒噪声,当Q为负,这个滤波器能够去除盐粒噪声。贴个结果收活吧。
    

3.总结

   本文介绍了几种图像去噪的线性滤波器,并对他们进行了比較。本次实验所用到的代码,我贴在以下。
   另外,评价函数ssim_index(),请自行网上查找。

參考文献

[1] Z. Wang, A. C. Bovik, H. R. Sheikh and E. P. Simoncelli, "Image quality assessment: From error visibility to structural similarity," IEEE Transactions on Image Processing, vol. 13, no. 4, pp. 600-612, Apr. 2004.

原文发于博客: 

=============更新日志===================

2014.7.17     修正了一些语法错误。

转载于:https://www.cnblogs.com/mengfanrong/p/3867821.html

你可能感兴趣的文章
javascript keycode大全
查看>>
前台freemark获取后台的值
查看>>
log4j.properties的作用
查看>>
游戏偶感
查看>>
Leetcode: Unique Binary Search Trees II
查看>>
C++ FFLIB 之FFDB: 使用 Mysql&Sqlite 实现CRUD
查看>>
Spring-hibernate整合
查看>>
c++ map
查看>>
exit和return的区别
查看>>
discuz 常用脚本格式化数据
查看>>
洛谷P2777
查看>>
PHPStorm2017设置字体与设置浏览器访问
查看>>
SQL查询总结 - wanglei
查看>>
安装cocoa pods时出现Operation not permitted - /usr/bin/xcodeproj的问题
查看>>
makefile中使用变量
查看>>
GIT笔记:将项目发布到码云
查看>>
JavaScript:学习笔记(7)——VAR、LET、CONST三种变量声明的区别
查看>>
JavaScript 鸭子模型
查看>>
SQL Server 如何查询表定义的列和索引信息
查看>>
GCD 之线程死锁
查看>>