图像处理与Python实现(岳亚伟)笔记三——空间滤波
一,空间滤波基础
空间域指的是图像平面本身,是相对于变换域而言的。空间域的图像处理是图像本身不进行频域变换,以图像中的像素为基础对图像进行处理。空间与的图像处理是在像素的邻域进行操作。频域的图像处理首先将图像变换到频域,然后再频域进行处理,处理之后将其反变换至空间域。频域处理主要包括低通滤波和高通滤波。低通滤波可以使低频信号正常通过,而高于所设定临界值的高频信号则被阻断或减弱,可用于去除图像的噪声,相当于空间与的平滑处理。高通滤波可以使高频信号正常通过,可增强图像的边缘轮廓等高频信号,相当于空间域的锐化处理。
二,平滑处理
平滑处理常用于模糊处理和降低噪声。平滑滤波器使用给定邻域内像素的平均灰度值或逻辑运算值代替原始图像中像素的灰度值,这种处理降低了图像灰度的“尖锐”变化。然而,图像边缘也是由图像灰度尖锐变化带来的恶行,因此平滑空间滤波器有边缘模糊化的负面效应。平滑空间滤波器可分为平滑线性空间滤波和平滑非线性空间滤波器。
2.1 平滑线性空间滤波器
平滑线性空间滤波器的输出是给定邻域内的像素灰度值的简单平均值或加权平均值。平滑线性空间滤波器有时也成为均值滤波器。均值滤波器的一个重要应用是降低图像中的噪声。均值滤波器还有一个重要应用,去除图像的不相关细节,使不想关细节与背景糅合在一起,从而使感兴趣目标更加易于检测,此时模板的大小与不相关细节的尺寸有关。
常用的均值滤波器是加权平均的,加权平均滤波器模板更合理,距离越近的像素点权重越大,距离越远的像素点权重越小。
2.2 统计排序滤波器
统计排序滤波器是典型的非线性平滑滤波器,包括最大值滤波器、中值滤波器和最小值滤波器。最大值滤波器是用像素邻域内的最大值代替该像素的灰度值,主要用于寻找最亮点。中值滤波器是用像素邻域内的中间值代替该像素的灰度值,主要用于降噪。最小值滤波器是用像素邻域内的最小值代替该像素的灰度值,主要用于寻找最暗点。
- 椒盐噪声:也称为脉冲噪声,盐和胡椒噪声。是图像中经常见到的一种噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。椒盐噪声的成因可能是影像讯号收到突如其来的强烈干扰而产生、类比数位转换器或位元传输错误等。
- 盐粒噪声:又称为白噪声,是在图像中添加一些随机的白色像素点(255)
- 胡椒噪声:是在图像中添加一些随机的黑色像素点(0)
在统计排序滤波器中,中值滤波器的应用最广。对于一定类型的随机噪声,中值滤波器的降噪效果较好,同时比相同尺寸的均值滤波器模糊程度明显要低。中值滤波器对处理脉冲噪声(也称椒盐噪声)非常有效,因为中值滤波器取中值作为滤波结果,可以很好地去除滤波器覆盖的邻域中的一些黑点或者白点。中值滤波器使得图像中突出的亮点(暗点)更像它周围的值,以消除孤立的亮点(暗点),从而实现对图像的平滑。对宇航员图像加椒盐噪声和中值滤波如图1(灰度图像)和图2(彩色图像)所示
图1
图2
彩色图像中值滤波为对原始RGB图像的R,G,B3个通道分别加入随机椒盐噪声后的结果。
最大值滤波器是将邻域内的像素灰度值进行从小到大的排序,用序列的最后一个值(即最大值)代替该像素的灰度值。对于发现图像最亮点非常有效,可有效降低胡椒噪声。最小值滤波器用序列的最小值代替该像素的灰度值,对于发现图像最暗点非常有效,可有效降低盐粒噪声。加入胡椒噪声和盐粒噪声并滤波的结果如图3所示
图3
通过图3可以发现最大值滤波结果比原始图像亮,最小值滤波结果比原始图像暗。最大值滤波对于去除胡椒噪声非常有效,最小值滤波对于去除盐粒噪声非常有效。
平滑处理是基本的图像处理方法之一。在实践中,盒装滤波器,高斯平滑滤波器,中值滤波器等都是常用的滤波器,常用于图像降噪或者图像预处理。在实践中,对图像进行平滑处理时,选用何种滤波器以及滤波模板的大小须结合实际目标。
三,锐化处理
锐化处理的目的是增强图像中目标的细节、边缘、轮廓和其他灰度突变,削弱了灰度变化缓慢的区域。由于微分是对函数的局部变化率的一种描述,因此图像锐化算法的实现可基于空间微分。图像平滑处理有边缘和细节模糊的负面效应。图像平滑和图像锐化在逻辑上是相反的操作,因此也可以使用原始图像减去平滑处理后的图像实现锐化处理,这称为反锐化掩蔽。
3.1 一阶微分算子
对任意一阶微分的定义都必须满足以下两点:在灰度不变的区域微分值为0;在灰度变化的区域微分值非0.由于处理的是离散情况,微分用差分近似。
根据罗伯特(roberts)的观点,边缘探测器应具有以下特性:产生的边缘应清晰;背景应尽可能减少噪声;边缘强度应尽可能接近人类的感知。如图4所示:
图4 罗伯特交叉边缘图像和梯度图像
使用罗伯特交叉梯度算子可得到梯度图像M(x, y),那如何对图像进行锐化,以增强图像的边缘呢?将梯度图像以一定比例叠加到原始图像f(x, y),即可得到锐化图像。
由于奇数模板有对称中心,更易于实现,因此一般更注重奇数模板。罗伯特交叉梯度算子是2*2偶数模板,可以用水平索贝尔(Sobel)算子和竖直索贝尔(Sobel)算子实现3*3奇数模板,如图5所示
图5, 索贝尔边缘图像和梯度图像
3.2 二阶微分算子
任意二阶微分的定义都必须满足以下3点:在灰度不变的区域微分值为0;在灰度台阶或斜坡的起点处微分值非0;沿着斜坡的微分值为0.由于我们处理的是离散情况,因此微分用差分近似。
对原始图像使用拉普拉斯算子进行空间滤波可得到拉普拉斯图像,将拉普拉斯图像以一定比例叠加到原始图像(该比例系数的符号与拉普拉斯模板中心系数的符号一致),可对原始图像进行拉普拉斯锐化增强,如图6
图6, 拉普拉斯锐化增强结果
3.3 反锐化掩蔽
图像平滑处理有边缘和细节模糊的负面效应,因此可用原始图像减去平滑处理后的图像实现锐化处理,称为反锐化掩蔽。包括三个步骤:首先通过平滑滤波得到模糊图像,然后从原始图像中减去模糊图像得到差值图像,最后将插值图像叠加到原始图像中。如图7所示
图7, 反锐化掩蔽结果
四,混合空间增强
所谓混合空间增强,就是综合利用平滑滤波器,锐化滤波器,灰度拉伸等对图像进行处理,得到更为理想的显示效果。本节将采用一个经典的案例对混合空间增强进行说明。由于人体全身骨骼扫描图像的灰度动态范围很窄,并且有很大的噪声内容,因此使用单一的滤波器对其进行增强效果一般。在本案例中,首先使用拉普拉斯瑞华方法突出图像中的小细节,然后使用索贝尔梯度处理方法突出图像的边缘,并使用平滑的梯度图像用于掩蔽拉普拉斯锐化增强图像,最后使用灰度幂律变换增强图像的灰度动态范围,该案例的流程图如图8所示。该案例使用的原始图像为人体全身骨骼扫描图像
图8,人体全身骨骼扫描图像的混合空间增强流程图
图9, 人体全身骨骼扫描图像的混合空间增强效果
图9a为原始图像,b为原始图像经过拉普拉斯变换后的结果,其细节信息特别丰富,但是噪声也特别多。c为原始图像与拉普拉斯变换图像相加所得的拉普拉斯锐化增强图像。图d为原始图像经过索贝尔算子处理的结果,其边缘信息特别丰富。对d进行5*5空间平滑滤波,得到图e,对比图d和图e可发现,图e保留了图像的边缘信息,同时减小了索贝尔图像的噪声。本案例中将拉普拉斯锐化增强图c与平滑后的索贝尔图e相乘得到遮蔽图f,可以发现图f的强边缘的优势和可见噪声的相对减少,达到了用平滑后的梯度图像掩蔽拉普拉斯图像的效果。将原始图像与掩蔽图像相加可得到锐化增强图像,可以发现图g比原始图像大部分细节更为清晰。为了增大灰度图像的动态范围,提高图像的对比度,对图h进行灰度幂律变换,可发现幂律变换后增大了一些噪声,但是人体的整个骨架结构更完整,也更显著。人体轮廓的清晰度也有了一定的提高。
ps:一阶微分算子获得的边界是比较粗略的边界,反映的边界信息较少,但是所反映的边界比较清晰;二阶微分算子获得的边界是比较细致的边界。反映的边界信息包括了许多的细节信息,但是所反映的边界不是太清晰。一阶微分产生较粗的边缘,二阶微分则细得多;一阶微分处理一般对灰度阶梯有较强的响应;二阶微分处理细节有较强的响应