数字图像处理成长之路6:滤波(中值 平均值 高斯 双边)

来源:互联网 发布:叫车软件开发 编辑:程序博客网 时间:2024/04/30 06:26

滤波

  • 1.中值滤波
  • 2.平均值滤波
  • 3.高斯滤波
  • 4双边滤波

1.中值滤波

这是一种简单的滤波方法,顾名思义,中值就是在参与计算的点中,通过排序,找到中间值。
这里写图片描述
比如上面的3x3图象矩阵,绿色的点是原图象上的点,灰度值是55。对该点进行中值滤波,的过程是:
1)对该9个点排序为:45 48 50 50 52 52 52 55 56,中间值是52。
2)用52替换原来的值55。
中值滤波的结果是:
这里写图片描述

2.平均值滤波

也是一种简单的滤波,图象上的点进行平均值滤波的过程是:
1)取这9个点的平均值:(50 + 45 + 50 +52 + 55 +48 + 56 + 52 + 52)/ 9 = 51
2)用51替换原图象的确55。
平均值滤波的结果是:
这里写图片描述

3.高斯滤波

斯滤波也不复杂,和平均值滤波差不多。平均值滤波是9个点相加然后取平均,高斯滤波也是对这边9个点取平均,不同的是,以中心点为中心,赋予这9个点不同的权重,越靠近中心点权重越大,所以是一种加权平均。那么如何这9个点进行权值的分配呢?我们需要借助一个数学模型——高斯函数。
二维高斯函数的图像如下:

这里写图片描述
函数表达式是:

这里写图片描述

公式看起来有些复杂,简单说说里面参数的含义:
是x和y的标准方差,我们令它们等于1。
是x和y的期望,我们令它们等于0。
是x和y的相关系数,我们令它等于0。
则上式可简化为:

这里写图片描述

这是二维空间的标准正态分布。
这里写图片描述
把x,y的值带入上图便可计算出各点权重:
这里写图片描述
根据概率论的知识,高斯函数在全空间的积分等于1,我们这里有9个点,显然它们之和小于一,我们把它进行归一化:
这里写图片描述
所以高斯滤波的过程是:
1)根据高斯函数,提前计算出各项权重,并归一化。
2)计算加权平均值,为了书写方便我们写成矩阵形式
这里写图片描述这里写图片描述 这里写图片描述
3)最后加权平均值是约是50。

4.双边滤波

再来看高斯滤波,权值的分配是离中心点越近则越大,这是和距离有关。在我们的示例图中,中心点周围的8个点距离中心点大致相同。也就是说权值一旦给定了参数计算出来后就确定不变,而随着滤波窗口在图像上滑动,滤波窗口中的9个点成为唯一变量。中心点周围的8个点的值,有的十分接近中心点,有的则和中心点相差很大。在权重相近的情况下,大差值会过度拉低或拉高中心点的值。而滤波的结果应该是渐进的而不是突变的。因为权重总和是1,我们希望在高斯权重的基础上对权重进行适当修饰,即如果某点值和中心点值接近,我们就给该点多分配些权值,如果某点值和中心点值相差较大,我们就给该点少分配些权值,以降低该点对中心点的影响。这便是对高斯滤波的改进。
那么具体该如何对权重修饰呢?
从上面的分析我们知道,新的权重可以通过一个系数K乘以原来的高斯权重得到,而K与|某点灰度值 - 中心点灰度值| 成反比。我们需要找到这样一个函数y = f(x),它满足几个特性:
1)在第一象限中,输入与输出成反比。
2)在第一象限的y值为正(或者至少在x <256的范围内为正)。
符合这样特性的函数有很多,指数函数,幂函数,一条直线,等等很多。让我们来看看指数函数,因为我们的高斯函数是指数函数,而指数函数的相乘等于指数的相加,因此从计算便利及形式统一上讲,选择一个指数函数还是很适合的。
令k为:

这里写图片描述

其中i,j代表中心点,g(x,y)代表某点的灰度值。
所以新的权重值公式为:

这里写图片描述

这个是简化后的公式,实际上我们还可以引入方差,来调整效果。
这里写图片描述

双边滤波只是在高斯滤波的基础上乘了一个系数,集体计算方法与高斯滤波相差无几。

阅读全文
0 0
原创粉丝点击