我们从这一节开始进入数字图像处理的大门。预备知识后序补充。图像处理可以有多种分类,其中图像增强和图像复原可以看作是一组相反的过程,这篇主要是概括图像增强技术。那么,增强技术也可以有多种分类,如,可以分为平滑(抑制高频成分)与锐化(增强高频成分),空间域与频域。我们把以第二种为例,分开解释两种技术,并进行对比。为了更加贴近实际操作,我将主讲算法。
g(x, y) =T[f (x, y)]定义了空间域。
f(x,y)是原图像,g(x,y)是处理后的图像
T是作用于f的操作,定义在(x,y)的邻域
空间域增强的简化形式(灰度级变换函数,又称强度映射):s =T(r)
r是f(x,y)在任意点(x,y)的灰度级,s是g(x,y)在任意点(x,y)的灰度级
点运算实际上是对图像的每个像素点的灰度值按一定的映射关系进行运算得到一副新图像的过程。点运算算法即灰度级校正、灰度变换和直方图处理等,目的或使图像成像均匀,或扩大图像动态范围,扩展对比度。
那我们先来看灰度变换中的常用算法:
表达式:s = (L−1)−r
[0,L-1]为图像的灰度级。作用:倒转图像的灰度,适用于增强嵌入于图像暗色区域的白色或灰色细节,特别是当黑色面积占主导地位时。
表达式:s = c*log(1+ r)
c是常数,r ≥ 0。
此种变换使一窄带低灰度输入图像值映射为一宽带输出值。有时原图的动态范围太大,超出某些显示设备的允许动态范围,如直接使用原图,则一部分细节可能丢失,解决办法是对原图进行灰度压缩,如对数变换,可应用在傅立叶频谱。
c和γ是正常数
γ <1 提高灰度级,在正比函数上方,使图像变亮
γ >1 降低灰度级,在正比函数下方,使图像变暗
c=γ=1时简化为正比变换。
主要思想是提高图像处理时灰度级的动态范围(待深究)
提高特定灰度范围的亮度。两种基本方法:一是在所关心的范围内为所有的灰度指定一个较高值,而为其他灰度指定一个较低值。第二种使所需的范围的灰度变亮,但是保持了图像的背景和灰度色调。
假设图像中每个像素的灰度级是256,这可以用8位来表示,假设图像是由8个位平面组成,范围从位平面0到位平面7。其中,位平面0包含图像中像素的最低位,位平面7包含像素的最高位。
这种方法通过对特定位提高亮度,改善图像质量。
较高位(如前4位)包含大多数视觉重要数据。
较低位(如后4位)对图像中的微小细节有作用。
分解为位平面,可以分析每一位在图像中的相对重要性。
直方图是多种空间域处理的基础,我们把它提到与灰度级变换相同的高度,接下来一起学习。
一个灰度级在范围[0,L-1]的数字图像的直方图是一个离散函数 h(rk)= nk
nk是图像中灰度级为rk的像素个数
rk 是第k个灰度级,k = 0,1,2,…,L-1
由于rk的增量是1,直方图可表示为:
p(k)= nk
即,图像中不同灰度级像素出现的次数
一个灰度级在范围[0,L-1]的数字图像的直方图是一个离散函数 p(rk)= nk /n
n 是图像的像素总数
nk是图像中灰度级为rk的像素个数
rk是第k个灰度级,k = 0,1,2,…,L-1
若一幅图像的像素占有全部可能的灰度级并且分布均匀,则这样的图像有高对比度和多变的灰度色调。低灰度级图像的直方图窄而集中于灰度级的中部。在偏暗图像中,直方图的组成成分集中在灰度级低(暗)的一侧,类似的,明亮图像的直方图则倾向于灰度级高的一侧。较基础,这里不给出图像显示。
直方图均衡化是通过拉伸像素强度分布范围来增强图像对比度的一种方法.说得更清楚一些, 以上面的直方图为例, 你可以看到像素主要集中在中间的一些强度值上. 直方图均衡化要做的就是拉伸这个范围. 见下面左图: 绿圈圈出了 少有像素分布其上的 强度值. 对其应用均衡化后, 得到了中间图所示的直方图. 均衡化的图像见下面右图.
均衡化指的是把一个分布 (给定的直方图) 映射 到另一个分布 (一个更宽更统一的强度值分布), 所以强度值分布会在整个范围内展开.
要想实现均衡化的效果, 映射函数应该是一个累积分布函数 (cdf) (更多细节, 参考*学习OpenCV*). 对于直方图 , 它的 累积分布 是:
要使用其作为映射函数, 我们必须对最大值为255 (或者用图像的最大强度值) 的累积分布 进行归一化. 同上例, 累积分布函数为:
在M×N的图像f上,使用m×n的滤波器掩模进行线性滤波由下式给出:
其中,m=2a+1,n=2b+1,w(s,t)是滤波器系数,f(x,y)是图像值,要完整图像的处理,必须取x=0,1,2。。。M-1,y=0,1,2......N-1
上式与频域中卷积处理很相似,故线性空间滤波处理经常称为“掩模与图像的卷积”。
空间滤波的简化形式:
其中,w是滤波器系数,z是与该系数对应的图像灰度值,mn为滤波器中包含的像素点总数。
非线性空间滤波处理也是基于邻域处理,且掩模滑过的机理一样。
我们需要考虑滤波中心靠近图像轮廓时发生的情况。需要将掩模中心点的移动范围限制在距离图像边缘不小于(n-1)/2个像素点处,这是最佳方法。还可以用全部包含于图像中的掩模部分滤波所有像素。
主要用于模糊处理(去除图像中一些不重要的细节)和 减小噪声。
包含在滤波器邻域内像素的平均值,也称为均值滤波器
作用:减小图像灰度的“尖锐”变化,减小噪声
由于图像边缘是由图像灰度尖锐变化引起的,所以也存在边缘模糊的问题
图b是像素的加权平均,表明一些像素更为重要。(重要的像素系数大,系数之和为16)
加权均值滤波过程公式为:
统计排序滤波器基于滤波器所在图像区域中像素的排序,由排序结果决定的值代替中心像素的值
分类
中值滤波器: 用像素领域内的中间值代替该像素
最大值滤波器:用像素领域内的最大值代替该像素
最小值滤波器:用像素领域内的最小值代替该像素
中值滤波器
主要用途:去除噪声
计算公式:R = mid {zk | k = 1,2,…,n}
最大值滤波器
主要用途:寻找最亮点
计算公式:R = max {zk | k = 1,2,…,n}
最小值滤波器
主要用途:寻找最暗点
计算公式:R = min {zk | k = 1,2,…,n}
由于中值滤波使用普遍,我们再次对中值滤波进行详解。它处理脉冲噪声(椒盐噪声)非常有效。
中值滤波的原理
像素由小到大排列,用模板区域内像素的中间值,作为结果值。
例如3×3的领域内有像素(10,20,20,20,15,20,20,25,100),排序后为(10,15,20,20,20,20,20,25,100),中值为20.
R = mid {zk | k = 1,2,…,n}
强迫突出的亮点(暗点)更象它周围的值,以消除孤立的亮点(暗点)
中值滤波算法的特点
在去除噪音的同时,可以比较好地保留边的锐度和图像的细节(优于均值滤波器)
能够有效去除脉冲噪声:以黑白点叠加在图像上。
作用:突出图像中的细节,增强被模糊了的细节。印刷中的细微层次强调。弥补扫描对图像的钝化,超声探测成像,分辨率低,边缘模糊,通过锐化来改善。图像识别中,分割前的边缘提取。锐化处理恢复过度钝化、暴光不足的图像。
锐化处理可以用空间微分来完成。我们将讨论数字微分锐化的定义极其算子。微分算子的相应强度与图像在该点(应用了算子)的突变程度有关。这样,图像微分增强了边缘和其他突变(如噪声)并削弱了灰度变换缓慢的区域。
微分滤波器的原理:
均值产生钝化的效果,而均值与积分相似,由此而联想到,微分能不能产生相反的效果,即锐化的效果?结论是肯定的。
在图像处理中应用微分最常用的方法是计算梯度。函数f(x,y)在(x,y)处的梯度为一个向量:
类似用差分定义二阶微分:
锐化滤波器的分类
二阶微分滤波器-拉普拉斯算子
一阶微分滤波器-梯度算子
图像函数的拉普拉斯变换定义为
拉普拉斯变换对图像增强的基本方法
(1)用于拉普拉斯模板中心系数为负
(1)用于拉普拉斯模板中心系数为正
拉普拉斯算子
梯度通过一个二维列向量来定义
向量的模值
考虑一个3x3的图像区域,z代表灰度级,上式在点z5的∇f值可用
用绝对值替换平方和平方根有:
微分过滤器的原理
∇f ≈ |z6 – z5| + |z8 – z5|
另外一种计算方法是使用交叉差:
∇f ≈ [(z9 – z5)2 + (z8 – z6)2]1/2
≈ |z9 – z5| + |z8 – z6|
微分滤波器模板系数设计
Roberts交叉梯度算子
Prewitt梯度算子
Sobel梯度算子