2012-11-16 12:44:58 tongfy0000 阅读数 2333

图像处理中的滤波器设计

在傅里叶变换中,低频决定图像再平滑区域中总体灰度级的显示,而高频决定图像细节部分。是低频通过而使高频衰减的滤波器称为“低通滤波器”;具有相反特性的滤波器称为“高通滤波器”。被低通滤波器的处理的图像比原始图像少一些尖锐的细节,因为高频部分已经衰减。同样,被高通滤波的图像在平滑区域中将减少一些灰度级的变化并突出过渡(如边缘)灰度级的细节部分。

 

低通滤波器

         在灰度连续变化的图象中,如果出现了与相邻象素的灰度相差很大的点,比如说一片暗区中突然出现了一个亮点,人眼能很容易觉察到。就象看老电影时,由于胶片太旧,屏幕上经常会出现一些亮斑。这种情况被认为是一种噪声。灰度突变在频域中代表了一种高频分量,低通滤波器的作用就是滤掉高频分量,从而达到减少图象噪声的目的。

什么是平滑(smoothing)?如下面两幅图所示:可以看到,左图比右图柔和一些(也模糊一些)。将原图中的每一点的灰度和它周围八个点的灰度相加,然后除以9,作为新图中对应点的灰度,就能实现下面的效果。就像和面一样,先在中间加点水,然后不断把周围的面和进来,搅拌几次,面就均匀了。这就是平滑。

原图

经过平滑处理后的图

 

滤波器(模板、核、掩模、窗口)的概念:为了方便地叙述上面所说的“将原图中的每一点的灰度和它周围八个点的灰度相加,然后除以9,作为新图中对应点的灰度”这一操作,我们采用如下的表示方法:

 

1/9 [1 1 1; 1 1 1; 1 1 ]

中间的点表示中心元素,即,用哪个元素做为处理后的元素。

 

中值滤波器

中值滤波也是一种典型的低通滤波器,它的目的是保护图象边缘的同时去除噪声。所谓中值滤波,是指把以某点(x,y)为中心的小窗口内的所有象素的灰度按从大到小的顺序排列,将中间值作为(x,y)处的灰度值(若窗口中有偶数个象素,则取两个中间值的平均)。中值滤波是如何去除噪声的呢?举个例子就很容易明白了。

原图

处理后的图

0  0  0  0  0  0  0

0         0  0  0  0  0  0

0  0  1  1  1  0  0

0  0  1  6  1  0  0

0  0  1  1  1  0  0

0  0  0  0  0  0  0

0  0  0  0  0  0  0

1         0  0  0  0  0  0

0  0  1  1  1  0  0

0  0  1  1  1  0  0

0  0  1  1  1  0  0

0  0  0  0  0  0  0

图中数字代表该处的灰度。可以看出原图中间的6和周围的灰度相差很大,是一个噪声点。经过3×1窗口(即水平3个象素取中间值)的中值滤波,得到右边那幅图,可以看出,噪声点被去除了。

 

均值滤波器

         又称Box滤波器。

高斯滤波

         所谓径向基函数 (Radial Basis Function 简称 RBF), 就是某种沿径向对称的标量函数。通常定义为空间中任一点x到某一中心xc之间欧氏距离的单调函数 , 可记作 k(||x-xc||), 其作用往往是局部的 , 即当x远离xc时函数取值很小。最常用的径向基函数是高斯核函数 ,形式为 k(||x-xc||)=exp{- ||x-xc||^2/(2*σ)^2) } 其中xc为核函数中心,σ为函数的宽度参数 , 控制了函数的径向作用范围。

高斯函数具有五个重要的性质,这些性质使得它在早期图像处理中特别有用.这些性质表明,高斯平滑滤波器无论在空间域还是在频率域都是十分有效的低通滤波器,且在实际图像处理中得到了工程人员的有效使用.高斯函数具有五个十分重要的性质,它们是:

1)二维高斯函数具有旋转对称性,即滤波器在各个方向上的平滑程度是相同的.一般来说,一幅图像的边缘方向是事先不知道的,因此,在滤波前是无法确定一个方向上比另一方向上需要更多的平滑.旋转对称性意味着高斯平滑滤波器在后续边缘检测中不会偏向任一方向

2)高斯函数是单值函数.这表明,高斯滤波器用像素邻域的加权均值来代替该点的像素值,而每一邻域像素点权值是随该点与中心点的距离单调增减的.这一性质是很重要的,因为边缘是一种图像局部特征,如果平滑运算对离算子中心很远的像素点仍然有很大作用,则平滑运算会使图像失真.

3)高斯函数的付立叶变换频谱是单瓣的.正如下面所示,这一性质是高斯函数付立叶变换等于高斯函数本身这一事实的直接推论.图像常被不希望的高频信号所污染(噪声和细纹理).而所希望的图像特征(如边缘),既含有低频分量,又含有高频分量.高斯函数付立叶变换的单瓣意味着平滑图像不会被不需要的高频信号所污染,同时保留了大部分所需信号.

4)高斯滤波器宽度(决定着平滑程度)是由参数σ表征的,而且σ和平滑程度的关系是非常简单的.σ越大,高斯滤波器的频带就越宽,平滑程度就越好.通过调节平滑程度参数σ,可在图像特征过分模糊(过平滑)与平滑图像中由于噪声和细纹理所引起的过多的不希望突变量(欠平滑)之间取得折衷.

5)由于高斯函数的可分离性,大高斯滤波器可以得以有效地实现.二维高斯函数卷积可以分两步来进行,首先将图像与一维高斯函数进行卷积,然后将卷积结果与方向垂直的相同一维高斯函数卷积.因此,二维高斯滤波的计算量随滤波模板宽度成线性增长而不是成平方增长.

 

滤波器比较

下面将中值滤波和上面介绍的两种平滑模板作个比较,看看中值滤波有什么特点。我们以一维模板为例,只考虑水平方向,大小为3×1(宽×高)。Box模板为1/3 [1 1 1],高斯模板为1/4 [1 2 1]。

先考察第一幅图:

原图

Box模板处理后

Gauss模板处理后

经中值滤波处理后

0  0  0   1   1  1

0  0  1/3 2/3  1  1

0  0  1/4 3/4  1  1

0  0  0   1   1  1

 0   1/3 2/3  1

 1/9 1/3 2/3  8/9

 1/12 1/3 2/3 11/12

 0 1/3 2/3   1

0   1/4 3/4   1

1/12 1/3 2/3 11/12

1/16 5/16 11/16 15/16

0   1/4 3/4   1

0         0  1   1

0          1/3 2/3 1

0         1/4 3/4 1

0  0   1  1

从原图中不难看出左边区域灰度值低,右边区域灰度值高,中间有一条明显的边界,这一类图象称之为“step”(就象灰度上了个台阶)。应用平滑模板后,图象平滑了,但是也使边界模糊了。应用中值滤波,就能很好地保持原来的边界。所以说,中值滤波的特点是保护图象边缘的同时去除噪声。

 

再看第二幅图:

原图

Box模板处理后

Gauss模板处理后

经中值滤波处理后

不难看出,原图中有很多噪声点(灰度为正代表灰度值高的点,灰度为负代表灰度值低的点),而且是杂乱无章,随机分布的。这也是一类很典型的图,称之为高斯噪声。经过Box平滑,噪声的程度有所下降。Gauss模板对付高斯噪声非常有效。而中值滤波对于高斯噪声则无能为力。

 

最后看第三幅图:

原图

Box模板处理后

Gauss模板处理后

经中值滤波处理后

1 2 10 2 1

1 3 11 3 1

1 2 10 2 1

13/3 14/3 13/3

5   17/3  5

13/3 14/3  13/3

15/4  6  15/4

9/2   7  9/2

15/4  6  15/4

2   2   2

3   3   3

2   2   2

从原图中不难看出,中间的灰度要比两边高许多。这也是一类很典型的图,称之为脉冲 (impulse)。可见,中值滤波对脉冲噪声非常有效

综合以上三类图,不难得出下面的结论:中值滤波容易去除孤立点/线的噪声,同时保持图象的边缘;它能很好的去除二值噪声,但对高斯噪声无能为力。要注意的是,当窗口内噪声点的个数大于窗口宽度的一半时,中值滤波的效果不好。这是很显然的。

 

 

 

 

 

0 0 0  0  0
0 0 1  0 0
0 1 1  1 0
0 0 1  0 0
0 0 0  0  0  你说这个点是不是边缘  如果不是边缘  他有什么作用  

 

所以说梯度算子在理论上是可以检测所有的边缘  但是:

并不是所有的边缘都有意义

所以会有其他算法或算子

每个算子或算法侧重点不同 意义也不同  

这主要看你的图像和你要达到的结果了

这个点明显的是个孤立点  一般我们处理图像时都会把它去掉  

所以这个时候八邻域 16邻域 效果就很好

2019-01-12 15:26:00 q03581853 阅读数 3225

图像处理中滤波器(卷积核)

 

本文主要参考来源:图像处理其实很简单

线性滤波和卷积的关系:线性滤波可以说是图像处理最基本的方法,它可以允许我们对图像进行处理,产生很多不同的效果。做法很简单。首先,我们有一个二维的滤波器矩阵(有个高大上的名字叫卷积核)和一个要处理的二维图像。然后,对于图像的每一个像素点,计算它的邻域像素和滤波器矩阵的对应元素的乘积,然后加起来,作为该像素位置的值。这样就完成了滤波过程。

  卷积或者协相关:对图像和滤波矩阵进行逐个元素相乘再求和的操作就相当于将一个二维的函数移动到另一个二维函数的所有位置。卷积和协相关的差别是,卷积需要先对滤波矩阵进行180的翻转,但如果矩阵是对称的,那么两者就没有什么差别了。

   Correlation 和 Convolution可以说是图像处理最基本的操作,但却非常有用。这两个操作有两个非常关键的特点:它们是线性的,而且具有平移不变性shift-invariant。平移不变性指我们在图像的每个位置都执行相同的操作。线性指这个操作是线性的,也就是我们用每个像素的邻域的线性组合来代替这个像素。这两个属性使得这个操作非常简单,因为线性操作是最简单的,然后在所有地方都做同样的操作就更简单了。

  2D卷积需要4个嵌套循环4-double loop,所以它并不快,除非我们使用很小的卷积核。这里一般使用3x3或者5x5。而且,对于滤波器,也有一定的规则要求:

      1)滤波器的大小应该是奇数,这样它才有一个中心,例如3x3,5x5或者7x7。有中心了,也有了半径的称呼,例如5x5大小的核的半径就是2。

      2)滤波器矩阵所有的元素之和应该要等于1,这是为了保证滤波前后图像的亮度保持不变。当然了,这不是硬性要求了。

      3)如果滤波器矩阵所有元素之和大于1,那么滤波后的图像就会比原图像更亮,反之,如果小于1,那么得到的图像就会变暗。如果和为0,图像不会变黑,但也会非常暗。

      4)对于滤波后的结构,可能会出现负数或者大于255的数值。对这种情况,我们将他们直接截断到0和255之间即可。对于负数,也可以取绝对值。

神奇的卷积核

      上面说到,对图像的滤波处理就是对图像应用一个小小的卷积核,那这个小小的卷积核到底有哪些魔法。下面我们一起来领略下一些简单但不简单的卷积核的魔法。

  • 1、啥也不做,相当于图像的复制:

  • 2、图像锐化滤波器Sharpness Filter 

图像的锐化和边缘检测很像,首先找到边缘,然后把边缘加到原来的图像上面,这样就强化了图像的边缘,使图像看起来更加锐利了。这两者操作统一起来就是锐化滤波器了,也就是在边缘检测滤波器的基础上,再在中心的位置加1,这样滤波后的图像就会和原始的图像具有同样的亮度了,但是会更加锐利。

我们把核加大,就可以得到更加精细的锐化效果:

另外,下面的滤波器会更强调边缘:

主要是强调图像的细节。最简单的3x3的锐化滤波器如下:

   大家应该也看出来了,锐化滤波器实际上就是计算当前点和周围点的差别,然后将这个差别加到原来的位置上。

  •  3、边缘检测Edge Detection

我们要找水平的边缘:需要注意的是,这里矩阵的元素和是0,所以滤波后的图像会很暗,只有边缘的地方是有亮度的。

为什么这个滤波器可以寻找到水平边缘呢?因为用这个滤波器卷积相当于求导的离散版本:你将当前的像素值减去前一个像素值,这样你就可以得到这个函数在这两个位置的差别或者斜率。下面的滤波器可以找到垂直方向的边缘,这里像素上和下的像素值都使用:

 再下面这个滤波器可以找到45度的边缘:取-2不为了什么,只是为了让矩阵的元素和为0而已。

那下面这个滤波器就可以检测所有方向的边缘:

为了检测边缘,我们需要在图像对应的方向计算梯度。用下面的卷积核来卷积图像,就可以了。但在实际中,这种简单的方法会把噪声也放大了。另外,需要注意的是,矩阵所有的值加起来要是0.

  • 4、浮雕Embossing Filter

浮雕滤波器可以给图像一种3D阴影的效果。只要将中心一边的像素减去另一边的像素就可以了。这时候,像素值有可能是负数,我们将负数当成阴影,将正数当成光,然后我们对结果图像加上128的偏移。这时候,图像大部分就变成灰色了。

下面是45度的浮雕滤波器:

我们只要加大滤波器,就可以得到更加夸张的效果了:

这种效果非常的漂亮,就像是将一副图像雕刻在一块石头上面一样,然后从一个方向照亮它。它和前面的滤波器不同,它是非对称的。另外,它会产生负数值,所以我们需要将结果偏移,以得到图像灰度的范围。

 

  •  5、运动模糊Motion Blur

运动模糊可以通过只在一个方向模糊达到,例如下面9x9的运动模糊滤波器。注意,求和结果要除以9。

这个效果就好像,摄像机是从左上角移动的右下角。

 

看了一些好玩的滤波器后我们可以进入主题了,首先来看均值模糊

均值模糊Box Filter (Averaging)

我们可以将当前像素和它的四邻域的像素一起取平均,然后再除以5,或者直接在滤波器的5个地方取0.2的值即可,如下图:

可以看到,这个模糊还是比较温柔的,我们可以把滤波器变大,这样就会变得粗暴了:注意要将和再除以13.

   所以,如果你想要更模糊的效果,加大滤波器的大小即可。或者对图像应用多次模糊也可以。

 

 

高斯模糊

      其实模糊滤波器就是对周围像素进行加权平均处理,均值模糊很简单,周围像素的权值都相同,所以不是很平滑。高斯模糊就有这个优点,所以被广泛用在图像降噪上。特别是在边缘检测之前,都会用来移除细节。那么下面我们就看看高斯模糊的权值是如何分配的。

 

 

posted @ 2019-01-12 15:26 Liu_xiang 阅读(...) 评论(...) 编辑 收藏
2017-06-25 19:54:18 purgle 阅读数 12006

  滤波器可以说是信号处理中最重要的研究对象,滤波器可以将原始信号的有用信息通过各种组合来凸显出来,因此很多时候也将它们称为Neighborhood operators,基本上所有涉及到特征的应用场合都要考虑滤波器,即使是发展到看起来很高大上的深度学习等,各种滤波器如果设计的好的话,能够极大地提高整个算法的准确度和效率。
  除了一些简单的滤波器外,今天主要介绍两种滤波器。

1.线性滤波器

  在图像处理中,对邻域中的像素的计算为线性运算时,如利用窗口函数进行平滑加权求和的运算,或者某种卷积运算,都可以称为线性滤波。常见的线性滤波有:均值滤波、高斯滤波、盒子滤波、拉普拉斯滤波等等,通常线性滤波器之间只是模版系数不同。

1.1 均值滤波

  均值滤波一般是用下面的系数模版与图像做卷积运算,公式表示为:

g(x,y)=1/nINeighbourI(x,y)

  n跟系数模版大小有关,一般3*3的模版,n取为9,如:
111111111

1.2 高斯滤波

  高斯滤波一般针对的是高斯噪声,能够很好的抑制图像输入时随机引入的噪声,将像素点跟邻域像素看作是一种高斯分布的关系,它的操作是将图像和一个高斯核进行卷积操作:

Iσ=IGσ

  其中,Gσ是标准差为σ的二维高斯核,定义为:
Gσ=12πσe(x2+y2)/2σ2

  举个例子:
  请将窗口大小为5的一维高斯滤波模版转化为5×5的二维高斯模版。
  解:窗口为5,则3σ=5/2,对应的连续高斯函数一维模版为:
G1=[0.02690.23340.47940.23340.0269]

  这是一维大小为5的高斯窗口,所以二维的5×5高斯窗口可以通过卷积得到:
GT1G1=0.00070.00630.01290.00630.00070.00630.05450.11190.05450.00630.01290.11190.22990.11190.01290.00630.05450.11190.05450.00630.00070.00630.01290.00630.0007

  假如对连续高斯函数取离散化。则:
G1=[0.10.20.40.20.1]

  同样可以得到,二维5×5窗口:
0.010.020.040.020.010.020.040.080.040.020.040.080.160.080.040.020.040.080.040.020.010.020.040.020.01

1.3 盒子滤波

  这个滤波器其实比较常见于OPENCV里面,可以用来加速求和的运算,如在Harris角点的提取,SIFT特征的获得,都用到了这个滤波器,它跟均值滤波器很相近,唯一的区别是盒子滤波不需要除模版的大小,而且它的模版大小是可以变的:

1111m×n

1.4 拉普拉斯滤波

  拉普拉斯滤波器跟上面的三种滤波器的不同在于它是一种高通滤波器,能够保留图像的高频成分,其低频成分最小值为0,所以经常用来求图像的梯度信息即边缘,操作跟上面的一样,只是模版系数不一样,其模板为,同时也常用来求图像的二阶梯度:

010141010m×n

2. 非线性滤波

非线性滤波利用原始图像跟模版之间的一种逻辑关系得到结果,如最值滤波器,中值滤波器。比较常用的有中值滤波器和双边滤波器。

2.1 中值滤波

  中值滤波将窗口函数里面的所有像素进行排序取得中位数来代表该窗口中心的像素值,对椒盐噪声和脉冲噪声的抑制效果特别好,同时又能保留边缘细节,用公式表示是:

g(x,y)=median(I(x,y))   x,yϵNeighbour

2.2 双边滤波

  双边滤波(Bilateral filter)也是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的,具有简单,非迭代、局部的特点,它比高斯滤波多了一个高斯方差σd,用公式表示就是:

g(x,y)=m,nf(m,n)w(x,y)m,nw(x,y)

w(x,y)为加权系数,取决于定义域核和值域核的乘积。

3. 实验

filter results
  结论:从滤波的结果可以看出各种滤波算法对图像的作用非常不同,有些变化非常大,有些甚至跟原图一样。在实际应用时,应根据噪声的特点、期望的图像和边缘特征等来选择合适的滤波器,这样才能发挥图像滤波的最大优点。

2019-04-26 10:50:55 u013307195 阅读数 500

滤波器主要两类:线性和非线性

线性滤波器:

使用连续窗函数内像素加权和来实现滤波,同一模式的权重因子可以作用在每一个窗口内,即线性滤波器是空间不变的。如果图像的不同部分使用不同的滤波权重因子,线性滤波器是空间可变的。因此可以使用卷积模板来实现滤波。线性滤波器对去除高斯噪声有很好的效果。常用的线性滤波器有均值滤波器和高斯平滑滤波器。

(1) 均值滤波器:
最简单均值滤波器是局部均值运算,即每一个像素只用其局部邻域内所有值的平均值来置换.

(2) 高斯平滑滤波器:
是一类根据高斯函数的形状来选择权值的线性滤波器。 高斯平滑滤波器对去除服从正态分布的噪声是很有效的。

非线性滤波器:

(1) 中值滤波器:
均值滤波和高斯滤波运算主要问题是有可能模糊图像中尖锐不连续的部分。中值滤波器的基本思想使用像素点邻域灰度值的中值来代替该像素点的灰度值,它可以去除脉冲噪声、椒盐噪声同时保留图像边缘细节。中值滤波不依赖于邻域内与典型值差别很大的值,处理过程不进行加权运算。中值滤波在一定条件下可以克服线性滤波器所造成的图像细节模糊,而对滤除脉冲干扰很有效。
(2) 边缘保持滤波器:
由于均值滤波(平滑图像外还可能导致图像边缘模糊)和中值滤波(去除脉冲噪声的同时可能将图像中的线条细节滤除)存在上述问题。边缘保持滤波器是在综合考虑了均值滤波器和中值滤波器的优缺点后发展起来的。
特点:滤波器在除噪声脉冲的同时,又不至于使图像边缘十分模糊。
过程:分别计算[i,j]的左上角子邻域、左下角子邻域、右上角子邻域、右下角子邻域的灰度分布均匀度V;然后取最小均匀度对应区域的均值作为该像素点的新灰度值。分布越均匀,均匀度V值越小。v=<(f(x, y) - f_(x, y))^2

没有更多推荐了,返回首页