图像处理之图像去噪
假设图像退化过程被建模为一个退化函数和一个加性噪声项,对输入图像f(x,y)进行处理,产生退化后的图像g(x,y)。给定g(x,y)和退化函数H以及关于加性噪声项的一些知识,图像复原的目的就是获得原始图像的一个估计。
空间域的退化图像:
其中h(x,y)是退化函数的空间表示,表示卷积。
等价的频率域表示为:
下图是图像退化/复原过程的模型:
噪声概率密度函数
考虑加性噪声,我们关心的是这个噪声分量中灰度值的统计特性,用概率密度函数(PDF)表征。下面是一些重要的噪声概率密度函数图像及说明:
高斯噪声:
其中,z表示灰度值,表示z的平均值,表示z的标准差(为方差),其值约有70%落在范围,约有95%落在范围。
瑞利噪声:
其中,概率密度的均值和方差为:
爱尔兰(伽马)噪声:
其中,a>0,b为正整数,概率密度均值和方差为:
指数噪声:
其中a>0,概率密度均值和方差为:
它是当b=1时爱尔兰PDF的特殊情况。
均匀噪声:
其中,概率密度的均值和方差为:
脉冲噪声(椒盐噪声,胡椒(黑)+盐粉(白)):
如果b>a,则灰度级b在图像中显示为一个亮点,灰度级a显示为暗点。若或为0,则脉冲噪声为单极脉冲,若均不为0,则称为双极脉冲(也叫椒盐噪声,散粒噪声,尖峰噪声)。
高斯噪声源于如电子电路噪声、低照明度或高温带来的传感器噪声;指数密度和伽马密度在激光成像中有用;脉冲噪声在快速过渡的情况下产生。
原图像:
添加不同噪声后的图像:
噪声参数的估计
通常由合理的恒定灰度值的一小部分来估计PDF的参数。
下图的直方图使用左上角的小条带的图像数据计算的,这些小条带分别来自上图的高斯、瑞利和均匀噪声图像。
可以用来自图像条带的数据计算灰度级的均值和方差。令表示条带S中像素灰度的概率估计,则S的均值和方差如下:
观察直方图的形状可确定最接近的PDF匹配。如果形状近似于高斯,那么均值和方差就是我们所需要确定参数;如果是其他形状,那么我们可以用均值和方差求出参数a和b。对于脉冲噪声,我们要估计的是黑白像素发生的实际概率,这需要一个相对恒定的中等灰度区域来计算直方图,图中黑白像素尖峰的高度就是脉冲噪声中的估计值。
空间域去噪(仅存在噪声退化)
当一幅图像中唯一存在的退化是噪声时,根据前面的定义,退化图像相应地变为:
均值滤波器
算术均值滤波器:
其中,是退化图像,是得到的复原图像,表示中心在点(x,y)处、大小为m*n的矩形领域的一组坐标。
几何均值滤波器:
这种处理比几何均值滤波器丢失的细节更少。
算术均值滤波器和几何均值滤波器适合处理高斯或均匀随机噪声。
谐波均值滤波器:
它对于盐粒噪声效果较好,不适用于胡椒噪声。
逆谐波均值滤波器:
Q称为滤波器的阶数。当Q为正时,消除胡椒噪声;Q为负时,消除盐粒噪声;当Q=0时,逆谐波均值滤波器简化为算术均值滤波器;当Q=-1时,则为谐波均值滤波器。它有一个缺点,必须知道噪声是暗噪声还是亮噪声,以便确定Q的正负。
统计排序滤波器
中值滤波器:
它对脉冲噪声很有效。
最大值和最小值滤波器:
最大值滤波器对发现图像中最亮点很有效,最小值滤波器对发现图像中最暗点很有效。
中点滤波器:
它对随机分布的噪声有效,如高斯噪声、均匀噪声。
修正的阿尔法均值滤波器:
假设在邻域内去掉g(s,t)最低灰度值的d/2个像素和最高灰度值的d/2个像素,令代表剩下的mn-d个像素,由这些剩余像素的平均值形成的滤波器称为修正的阿尔法均值滤波器:
d的取值范围可为0到mn-1。当d=0时,它变为算术均值滤波器;当d = mn-1时,它变为中值滤波器;当d取其他值时,它在包括多种噪声的情况下很有用,如高斯噪声和椒盐噪声的混合。
自适应滤波器
自适应局部降低噪声滤波器在局部区域中心任意一点(x,y)上的响应基于以下4个量:
- g(x,y),带噪图像在(x,y)上的值;
- ,污染f(x,y)形成g(x,y)的噪声方差;
- ,中像素的均值;
- ,中像素的局部方差。
我们希望的滤波器性能如下:
- 如果,则滤波器应该简单的返回g(x,y)的值;
- 如果局部方差与是高度相关的,则滤波器返回g(x,y)的一个近似值。典型的,高局部方差与边缘相关,应该保护这些边缘;
- 如果两个方差相等,希望返回中像素的算术平均。这种情况发生在局部区域与整个图像有相同特性的条件下,局部区域的噪声将通过求平均降低。
根据这些假设,得到如下表达式:
需要知道或估计的量是全部噪声的方差,其他参数通过计算。这里隐含的假设条件是,实际中可能违反这个条件,当时,可以把比率设为1。
自适应中值滤波器:如果脉冲噪声空间密度不大,中值滤波器性能会很好(根据经验,小于0.2).而自适应中值滤波器可以处理更大密度的脉冲噪声,它在进行滤波处理时会根据某些条件改变(或增大)的尺寸。
记以下符号:
- = 中最小灰度值;
- = 中最大灰度值;
- = 中灰度值的中值;
- = 坐标(x,y)处的灰度值;
- = 允许的最大尺寸。
自适应中值滤波器算法以两个过程工作:
进程A:
如果且,则转到进程B
否则增大窗口尺寸
如果窗口尺寸,则重复进程A
否则输出
进程B:
如果且,则输出
否则输出
该算法主要有3个目的:
- 去除椒盐(脉冲)噪声;
- 平滑其他非脉冲噪声;
- 减少如物体边界细化或粗化等失真
进程A的主要目的是确定中值滤波器的输出是否是一个脉冲。如果有效,则不是脉冲,转到进程B,看是否是一个脉冲,若,就不是脉冲,这种情况下, 算法输出不变的像素值。通过不改变这些中间灰度级的点,减少图像中的失真。如果条件且为假,则或。这种情况下,像素值都是一个极端值,算法输出中值,从进程A可知不是脉冲。若进程A找到一个脉冲,或,算法会增大窗口尺寸并重复进程A,直到找到一个非脉冲中值(并跳到程序B)或达到最大窗口值。如果达到最大窗口值,则返回(不能保证不是一个脉冲)。
频率域滤波消除周期噪声
带阻滤波器:主要应用之一是在频率域噪声分量的一般位置近似已知的应用中消除噪声,一个典型的例子是一幅被加性周期噪声污染的图像。
带通滤波器:与带阻滤波器相反的操作。通常不会在一幅图像上直接执行带通滤波,因为这样会消除太多图像细节。
馅波滤波器:阻止或通过事先定义的中心频率的邻域内的频率。
参考资料:冈萨雷斯《数字图像处理》