1 空间滤波器的基础

1.1 空间滤波介绍

1.2 空间滤波原理

1.3 空间相关与空间卷积

2 平滑空间滤波器

2.1 平滑线性滤波器

2.2 统计排序滤波器

2.3 平滑空间滤波器总结

3锐化空间滤波器

3.1 锐化空间滤波器基础

3.2 二阶微分锐化:拉普拉斯算子

3.3 一阶微分锐化:Robert算子、 Prewitt算子

3.4 一阶微分锐化:Sobel算子、Isotropic Sobel算子

3.5 非锐化掩蔽和高提升滤波

3.6 锐化空间滤波器总结

1.1 空间滤波介绍
  空间滤波是一种采用滤波处理的影像增强方法,其理论基础是空间卷积和空间相关。目的是改善影像质量,包括去除高频噪声与干扰,及影像边缘增强、线性增强以及去模糊等。主要分为低通滤波(平滑)、高通滤波(锐化)两种。
  
1.2 空间滤波原理
  空间滤波器由两部分组成:
1.一个邻域(典型的是一个较小的矩形)
2.对该邻域包围的图像像素执行的预定义操作
  滤波器的响应是滤波器系数与由该滤波器包围的图像像素的乘积之和,f(x,y)代表原图像上点(x,y)位置上的灰度值,g(x,y)代表处理后图像上点(x,y)位置上的灰度值,w(x,y)代表点(x,y)位置上的灰度值所要乘的系数。
g(x,y)=w(-1,-1)f(x-1,y-1)+w(-1,0)f(x-1,y)+…+w(0,0)f(x,y)+…+w(1,1)f(x+1,y+1)

1.3 空间相关与空间卷积
  对原图像中每一个点的灰度值都进行上述操作,即可得到处理后的图像,整个操作过程就可被称作为空间相关或空间卷积。在进行上述操作时,原图像边界附近的点会出现滤波器超出图像边界的情况,超出边界时要补充像素,一般是添加0或者添加原始边界像素的值空间相关和空间卷积类似,唯一的区别就是空间相关不需要旋转滤波器,空间卷积需要滤波器旋转180°。如下所示,原图像是一个55的图像,滤波器是一个33的模板。首先要对图像进行填充,补充像素。然后空间相关和空间卷积的具体区别如下:

空间相关和空间卷积的操作区别如下:

2.1 平滑线性滤波器
  平滑线性空间滤波器也被称为均值滤波器,使用滤波器模板确定的邻域内像素的平均灰度值代替图像中的每一个像素。例如下面这个模板,每个点的灰度值等于其所在范围的9个点灰度值的平均值。

  但图像边缘是由图像灰度尖锐变化带来的特性,所以均值滤波处理可能使得图像边缘也模糊。本来是希望让图片模糊一些,滤掉图片中的一些噪声,但是可能把图像中的边缘也给弄模糊了。所以在以上的模板基础上进行改进,有了一个加权平均模板,如下所示:

  加权平均模板,赋予中心点最高权重,距离中心点的距离越远,赋予的权重就越小,目的是在平滑处理中试图降低模糊,即在除掉噪声的同时又尽可能地降低图像边缘的模糊化。这个加权平均思想十分重要,在之后的边缘提取算法中,各个不同的边缘提取算法的算子,实际上就是改变了加权平均中的权重值。
  在明白加权平均模板后,就可以把均值滤波器扩展成高斯平滑滤波器。啥是高斯平滑滤波器呢?均值滤波器中每一个值都是相等,而高斯平滑滤波器的中的数却是呈现高斯分布的。高斯分布也就是正态分布,高斯分布图如下所示:

  再举个例子,现在有个5x5的滤波器模板,如果是均值平滑滤波器的话,如下所示。最终中心点的灰度值等于这25个点的灰度值相加再除25。

  如果是高斯平滑滤波器的话,5x5模板中的值不再全部都是1了,而是如下所示。最终中心点的灰度值等于这25个点的灰度值分别乘上对应的系数相加再除273(所有权重相加起来等于273)。

  可以通过高斯平滑使整个图片过渡均匀平滑,去除细节,过滤掉噪声。一般而言,高斯平滑滤波器要优于均值滤波器。其中高斯函数中的参数不同,图片处理的效果也会不同,这里不再细讲,感兴趣的话可以搜一下高斯平滑滤波器,再详细了解。
  滤波器中的权重值不同会影响图像的处理,同时滤波器模板的大小不同,也会影响图像的处理。当图像细节与滤波器模板近似相同时,图像中的一些细节受到的影响较大。如下图所示:

a.500x500像素的原图片 b.3x3像素的方形均值滤波器 c.5x5像素的方形均值滤波器 d.9x9像素的方形均值滤波器 e.15x15像素的方形均值滤波器 f.35x35像素的方形均值滤波器

2.2 统计排序滤波器
  统计排序滤波器是一种非线性空间滤波器,以滤波器的包围的图像区域中所有包含的像素的排列为基础,然后使用统计排序结果决定的值代替中心像素的值。常用的统计排序滤波器有中值滤波器、最大值滤波器、最小值滤波器等。举个例子,下面是一副图像中的一个点及其邻域上的点,上面的值代表其灰度值。首先将这9个像素值从小到大排列,依次是:90,110,120,150,165,200,210,230,255,中值为165,最大值是255,最小值是90。原本该点的灰度值应该是150,如果采用中值滤波器的话,则会用165来取代150,即该点的灰度值变成了165;如果是最小值滤波器的话,则该点的灰度值变成90;如果是最大值滤波器的话,则该点的灰度值变成255。

2.3 平滑空间滤波器总结
  以上介绍了几种常用的平滑空间滤波器,线性的有均值滤波器和高斯滤波器,非线性的有中值滤波器、最大值滤波器和最小值滤波器。各种滤波器的总结如下:
1.均值滤波和高斯滤波,即以模板内算术平均数的值代替中心像素值,可以降低高斯噪声。
2.中值滤波,即以模板内进行有序排列后位于中间的像素值代替中心像素值,可以降低椒盐噪声(脉冲噪声)。
3.最大值滤波,即以模板内进行有序排列后最大像素值代替中心像素值,可以去除图像中的暗斑,使亮斑增大。
4.最小值滤波,即以模板内进行有序排列后最小像素值代替中心像素值,可以去除图像中的亮斑,使暗斑增大。
  椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。黑点对应的灰度值是0,白点对应的灰度值是255,在使用中值滤波器的时候,将模板内的灰度值进行排序,0会排在最左边,255会排在最右边,但是中值滤波器取的是排序后的中值,一般情况下不会取到0也不会取到255,所以中值滤波器可以用于消除椒盐噪声(脉冲噪声)。最大值滤波,取的是排序后的最大值,也就是取最亮的那个像素点,所以会使图像中本来暗的地方更明亮,本来亮的地方会更亮,所以最大值滤波器可以去除图像中的暗斑,使亮斑增大。同理可知,最小值滤波可以去除图像中的亮斑,使暗斑增大。再介绍一个实际例子,加深一下这几种平滑滤波器的印象:

原图像

添加椒盐噪声

均值滤波

中值滤波

最大值滤波

最小值滤波

用均值滤波处理有椒盐噪声的图像,可以看出,处理效果并不好。用中值滤波处理有椒盐噪声的图像,可以看出,处理效果杠杠滴!用最大值滤波处理原图像,可以仔细观察,花瓣中的许多黑点都消失了,因为最大值滤波可以消除图像中的暗斑;用最小值滤波处理原图像,可以仔细观察,花瓣中的许多黑点颜色加深了,因为最小值滤波可以增强图像中的暗斑。
  
3.1 锐化空间滤波器基础
  锐化空间滤波,实际上相当于加深图像的边缘,有点类似于小时候画画,画完轮廓后,会再来描边加深图像的边缘,使得图像看起来边缘更深刻,更好看。所以,想要进行锐化空间,首先得找到图像的边缘,什么是图像的边缘?相邻两点的灰度值突变会形成边缘,例如智能车的赛道,由黑变白,由白变黑,都会形成边缘。那么如何来找到图像的边缘呢?既然边缘是由灰度值突变形成的,所以得找到灰度值突变的地方。如何来描述突变呢?用微分。举个例子,下面这个描述的是一副图像中某一行灰度值的变化,这一行的灰度值依次是:
6 6 6 6 5 4 3 2 1 1 1 1 1 1 6 6 6 6 6
首先求一阶微分:0 0 -1 -1 -1 -1 -1 0 0 0 0 0 5 0 0 0 0
然后求二阶微分:0 0 -1 0 0 0 0 1 0 0 0 0 5 -5 0 0 0
再把一阶微分和二阶微分都画在一个坐标系中,如图所示:


  首先看一阶微分的图,将上面两张图对比起来看,一阶微分等于0的地方,灰度值是没有突变的;一阶微分不等于0的地方,灰度值是有突变的。
  再看二阶微分,二阶微分等于0的地方,要么是灰度值没有变化,要么是灰度值均匀的变化;二阶微分不等于0的地方,就是灰度值过渡的点,如图所示,有4个位置上二阶微分不等于0,刚好对应4个灰度值过渡的点。
  因此有通过二阶微分算子来找图像的边缘,也有通过一阶微分算子来找图像的边缘。典型的二阶微分算子:拉普拉斯算子。典型的一阶微分算子:Robert算子、Prewitt算子、Sobel算子、Isotropic Sobel算子等。
  
3.2 二阶微分锐化:拉普拉斯算子
1.一个二维图像函数f(x,y)的拉普拉斯算子定义为:

2.在x方向上的分量为:
3.在y方向上的分量为:

4.可得拉普拉斯算子为:

5.用拉普拉斯算子增强图像的基本方法可表示为:

  如何理解最后一个公式呢?f(x,y)是原图像,是通过二阶微分求得的图像的边缘,在原图像的基础上再加上图像的边缘,即可得到锐化后的图像g(x,y)。其中c是一个系数,具体取c=1还是c=-1得看具体是什么样的拉普拉斯模板。
  可以仔细看一下拉普拉斯算子的公式(如下图),再联想一下空间滤波器的模板,就可以得出拉普拉斯算子的模板。


  在这个模板中系数c=-1。为什么c=-1而不是c=1呢?可以想象边缘提取后智能车的赛道边界,如下图所示。边界灰度值是255,边界左侧及右侧灰度值是0,再结合这个拉普拉斯算子模板,中心点(中心点为边界)附近4个点的灰度值减去4倍中心点的灰度值,得到的值是一个负数,如果c=1的话,相当于在原图像的基础上削减边缘的灰度值,得到的图像当然不是锐化的图像(感兴趣可以自己试试,图像削弱边缘后是什么情况),所以在这种模板情况下,c=-1。

  除了这个拉普拉斯算子模板,还有很多变形的拉普拉斯算子模板,例如下图的模板,这个模板和上面的模板基本一样,就是系数c=1。

  除此之外呢,还有其他变形的拉普拉斯算子模板,上面的两个模板都是用中心点附近的4个点的灰度值再减去4倍中心点的灰度值,如果拓展一下,把中心点附近的4个点改成附近的8个点呢?也就是算上对角线上的点,就可以得到另外一下拉普拉斯算子模板,如下所示。

3.3 一阶微分锐化:Robert算子、 Prewitt算子
  一阶微分锐化就是求一阶微分,求x方向的一阶微分和求y方向上的一阶微分。一阶微分算子的通用公式如下所示:



  输出后的图像等于两个方向梯度(一阶微分)的平方和再开根号,但是实际上,如果是开根号处理的话,处理一副图像需要花很长的时间,因此有简化的公式,直接将两个方向梯度求绝对值再相加即可,可以大大节约一副图像的处理时间。知道公式后,最关键的就是何如求x方向和y方向的梯度。下文用Gx来表示x方向上的梯度,用Gy来表示y方向上的梯度。
Robert当年提出了一种求x方向和y方向的梯度的方法,他提出的那个方法也被称为Robert算子,如下所示。

  Robert当年用Z9-Z5作为x方向的梯度,用Z8-Z6作为y方向的梯度,即Gx=Z9-Z5,Gy=Z8-Z6。因此可得Robert算子如下所示。

  后来有个叫Prewitt的人,提出了另外一种求x方向和y方向的梯度的方法,这个算子就被称为Prewitt算子。Prewitt当年用Z3+Z6+Z9-Z1-Z4-Z7作为x方向的梯度,用Z7+Z8+Z9-Z1-Z2-Z3作为y方向的梯度,即Gx= Z3+Z6+Z9-Z1-Z4-Z7,Gy= Z7+Z8+Z9-Z1-Z2-Z3。因此可得Prewitt算子模板如下所示。

3.4 一阶微分锐化:Sobel算子、Isotropic Sobel算子
  后来嘞,Sobel在Prewitt算子的基础上做了点改进,后来他的方法就被称为Sobel算子。还记得在平滑空间滤波时讲到的一个加权平均么?加权平均模板,赋予中心点最高权重,距离中心点的距离越远,赋予的权重就越小,目的是在平滑处理中试图降低模糊。Sobel算子就是采用的这种思想。Sobel当年用Z3+2Z6+Z9-Z1-2Z4-Z7作为x方向的梯度,用Z7+2Z8+Z9-Z1-2Z2-Z3作为y方向的梯度,即Gx= Z3+2Z6+Z9-Z1-2Z4-Z7,Gy= Z7+2Z8+Z9-Z1-2Z2-Z3。与Prewitt算子相比,Sobel算子对于像素的位置的影响做了加权,可以降低边缘模糊程度,因此效果更好。因此可得Sobel算子模板如下所示。

  Isotropic Sobel算子又被称为各向同性Sobel算子,将Sobel算子矩阵中的所有2改为根号2,就能得到各向同性Sobel算子。资料上说:各向同性Sobel算子和普通Sobel算子相比,它的位置加权系数更为准确,在检测不同方向的边沿时梯度的幅度一致。(不知道是不是有这么神奇,感兴趣可以自己试试,将两个算子输出的图像做对比试试)
  
3.5 非锐化掩蔽和高提升滤波
  非锐化掩蔽和高提升滤波主要就两个公式,k为权重系数,当k=1时:非锐化掩蔽;当k>1时:高提升滤波;当k<1时:不强调非锐化模板的贡献。简单来讲,就是先将原始图片做模糊处理,会把图像的边缘也给模糊化,然后原始图片和模糊后的图片做对比,实际上就可以得到图像的边缘(对原始图像做迷糊化可以理解为将图像的边缘模糊化)。然后原始图像再加上k倍的边缘,就可以得到锐化后的图像,实际原理和拉普拉斯算子那块讲的差不多。在拉普拉斯算子那块,是用二阶微分求得图像的边缘,再乘上系数c,再加上原图像,就得到锐化后的图像。在这里,是用原图像减去模糊后的图像得到图像的边缘,然后再得到锐化后的图片。二者得到锐化图片的实际原理差不多。下面还有一个例子可以看看非锐化掩蔽和高提升滤波的效果(不太明显)。




3.6 锐化空间滤波器总结
  在看各种锐化空间滤波器的效果前,可以思考一下二阶微分锐化和一阶微分锐化的区别,各种一阶微分模板有什么区别,进而思考一下这几种模板处理后的图像会有什么区别。
一阶微分:
1.在恒定灰度区域的微分值为零;
2.在灰度台阶或者斜坡处微分值非零;
3.沿着斜坡的微分值非零;
二阶微分:
1.在恒定灰度区域的微分值为零;
2.在灰度台阶或者斜坡处微分值非零;
3.沿着斜坡的微分值非零;
  归纳来讲,就是当灰度值均匀变化的话,一阶微分是不为0的,而二阶微分**会等于0;当灰度值一下子突变的话,一阶微分不为0,而二阶微分也不为0。对于灰度值突变的情况,二阶微分算子和一阶微分算子都会认为这是图像的边缘;但是当灰度值均匀变化的话,一阶微分算子会将其认为是图像边缘,而二阶微分不会认为其是图像边缘。

原图

拉普拉斯算子

各项同性Sobel算子

Sobel算子

Prewitt算子

图像空间滤波总结(平滑空间滤波器及锐化空间滤波器)相关推荐

  1. 数字图像处理【3】图像空间滤波-平滑

    上一篇内容讲了图像的灰度变换,它主要是运用在单点的处理,在图像的对比度.亮度等方面进行增强.这一次介绍图像的空间滤波,它会利用像素周围领域的像素信息,对图像的灰度进行处理.处理的目的主要有以下几个方面 ...

  2. 数字图像处理- 3.6 锐化空间滤波器

    3.6 锐化空间滤波器 锐化处理的主要目的是突出图像中的突出灰度的过度部分.总的来说,微分算子的响应强度与图像在该店(应用了算子)的突变程度有关.这样一来,图像微分增强了边缘和其他突变(如噪声)并削弱 ...

  3. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波13 - 平滑低通滤波器 -盒式滤波器核

    这里写目录标题 平滑(低通)空间滤波器 盒式滤波器核 平滑(低通)空间滤波器 平滑(也称平均)空间滤波器用于降低灰度的急剧过渡 在图像重取样之前平滑图像以减少混淆 用于减少图像中无关细节 平滑因灰度级 ...

  4. 数字图像处理【4】图像空间滤波-锐化

    图像的高频与低频 对于初学者来说,可能没能搞清楚哪些是图像的高频信息,低频信息指代的是什么. 低频指的就是灰度变化比较小的像素区域 高频指的就是灰度变化比较大的像素区域 所谓灰度变化比较小的图像就是, ...

  5. 能使曲线变平滑的一维滤波器_音响电源滤波器有什么作用?有人说能提升音质!你信不信?...

    我们日常使用音响听音乐,讨论了很多关于喇叭.箱体.音源等影响音质的话题.今天我们来谈谈音响电源滤波器,可能有些人还很陌生,它到底有什么作用?其实,音响电源滤波器在音响系统里面发挥着非常重要的角色. 现 ...

  6. [OpenCV] 练习题实现代码 使用 cv.addWeighted 函数在文件夹中创建图像的幻灯片放映,并在图像之间进行平滑过渡

    1.问题背景 opencv 官方手册 文档 练习题 练习题实现代码 使用 cv.addWeighted 函数在文件夹中创建图像的幻灯片放映,并在图像之间进行平滑过渡 2.代码部分 按任意键切换幻灯片 ...

  7. 滤波器组共空间模式(Filter Bank Common Spatial Pattern,FBCSP)

    FBCSP matlab Matlab FBCSP实现 FBCSP原理 测试数据 文件结构结构如下 数据结构如下 运行结果 代码 主文件Test.m FBCSP.m函数 FBCSPOnline.m函数 ...

  8. 基于拉普拉斯方程的图像流场平滑

    代码 #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/imgcodecs.hpp> #include < ...

  9. java 拉普拉斯_opencv3_java 图形图像的拉普拉斯平滑Laplacian Laplacian

    图形图像的拉普拉斯平滑Laplacian Laplacian package opencv_java_demo; import org.opencv.core.*; import org.opencv ...

  10. smooth: 对图像进行均值平滑滤波,消除噪声

    smooth: 对图像进行均值平滑滤波,消除噪声 typedef unsigned char uint8; typedef int sint32; sint32   IMGW = 256; // 当前 ...

最新文章

  1. 李彦宏AI布局又下一城,成立生命科学公司“百图生科”
  2. JavaScript 的面向对象编程
  3. Oracle Events事件
  4. 配置oracle 11g环境,oracle 11g 的安装环境的配置
  5. 揭秘一份集团公司的三方数据对接情况
  6. 如何在Ubuntu-16.04 / 18.04上为 RTX 2080 Ti GPU 安装Nvidia驱动和cuda-10.0
  7. C语言中scanf和printf格式化输入输出
  8. visual studio出现的0xc0000135问题
  9. 计算机之父——图灵 108周年诞辰
  10. soundbar未来发展_Soundbar专题:一条走天下,属于客厅影院的未来
  11. 【Cisco Packet Tracer】WLC配置瘦AP指南
  12. (域名解析过程)web请求过程全解析一
  13. 2018年11月TIOBE编程语言排行榜,Java稳居第一
  14. CAS解决单点登录SSO
  15. 一键备份Android系统(软件)
  16. spring开发_邮箱注册_激活_获取验证码
  17. 怎样学好计算机英语,怎样学好小学英语
  18. WIFI万能钥匙v4.3.10显密精简版 无需root 安卓10可用
  19. 壳聚糖的化学结构式与性能及相关产品目录
  20. Android6.0 亮屏灭屏流程(DisplayPowerControler、WMS)(二)亮度设置

热门文章

  1. 手机射频中的常见术语
  2. 12生肖年份c语言,12生肖在什么年份最好运
  3. linux添加jetdirect协议,Padavan 路由器固件 不能驱动 hp1005、hp1020之类打印机 foo2zjs ZjStream协议的linux打印机驱动程序...
  4. [html+css+js] 小米官网首页制作
  5. LeetCode刷题攻略
  6. Mach-O入门理解
  7. 123457123457#0#-----com.yuming.TruckCarRun01--前拼后广--大卡车游戏cym
  8. getMonthsetMonth方法
  9. 明哥,给大学生的几点建议
  10. 简述python 的模块的分析