3.1 背景知识
空间域就是简单的包含图像像素的平面,空间域技术直接在图像像素上操作。而对于频率域来说,其操作在图像的傅里叶变换上执行,而不针对图像本身。
通常,空间域技术在计算上更有效,且需要更少的资源。
本章空间域处理用下式表示:
f(x,y)是输入图像,g(x,y)是处理后的图像,T是在点(x,y)的邻域上定义的关于f的一种算子。算子常用于单幅图像或图像集合。下图显示了其基本实现步骤
点(x,y)是图像中的任意位置,周围的小区域是(x,y)的邻域,邻域是中心在(x,y)的矩形,尺寸很小。
3.2 一些基本的灰度变换函数
3.2.1 图像反转
下式可得到灰度级范围为[0,L-1]的一幅图像的反转图像,由下式给出:s=L-1-r
代码如下:
output_img = input_img.clone();
for(int i = 0; i < input_img.rows; i++)
{
for(int j = 0; j < input_img.cols; j++)
{
output_img.at<uchar>(i, j) = 255 - input_img.at<uchar>(i, j)
}
}
3.2.2 对数变换
对数变换公式: s = c log(1+r),其中c是常数,且假设r>=0.
下图表面,该变换将输入中范围较窄的低灰度值映射为输出中较宽范围的灰度值,对高灰度值亦是如此。
3.2.3 幂律(伽马)变换
幂律变换的基本形式为:
其中c和γ为正常数。
s与r的关系曲线如上图所示,γ>1的值所生成的曲线和γ<1的值效果完全相反。当c=γ=1时简化成了恒等变换。
用于图像获取、打印和显示的各种设备根据幂律来产生响应。习惯上,幂律方程中的指数称为伽马[故在式中使用这一符号]。用于校正这些幂律响应现象的处理称为伽马校正。
3.2.4 分段线性变换函数
对比度拉伸:对比度拉伸是扩展图像灰度级动态范围的处理,因此,它可以跨越记录介质和显示装置的全部灰度范围。下图显示了一个对比度拉伸的典型变换。
灰度级分层:灰度级分层通常由两种方法实现,一种是将某一范围的所有灰度值显示为一个值,剩余部分显示另一个值;另一种是让某一部分范围灰度值改变,其余部分不变。下图是这两种方法的实例。
比特平面分层
一幅8比特图像可考虑为由8个1比特平面组成,其中平面1包含图像中所有像素的最低阶比特,而平面8包含图像中所有像素的最高阶比特。下图是一幅8比特灰度图像。
下图b-i是8个1比特平面
灰度变换函数将0-127之间的所有灰度映射为0,而将128~255之间的灰度映射为1。
存储4个高阶比特平面允许我们有更多细节来重建原图像,有时也能节省内存。
3.3 直方图处理
直方图是多种空间域处理技术的基础,并且直方图应用范围广泛,在图像增强、图像压缩与分割等实时图像处理领域特别流行。
在暗图像中,直方图的分量集中在灰度级的低(暗)端,亮图像直方图的分量则倾向于灰度级的高端,低对比度图像的直方图较窄且主要集中于中部,高对比度图像覆盖范围广,但线段相对其他图像较低。
上图分别是暗图像、亮图像、低对比度图像和高对比度图像以及它们各自对应的直方图。
3.3.1 直方图均衡
用r表示图像灰度,r取值范围是[0,L-1],r=0表示黑色,r=1表示白色,变换形式: s=T®,0<=r<=L-1,有如下假设:
(a)T®在区间内单调递增
(b)当0<=r<=L-1时,0<=T®<=L-1
条件a是为了保证输出灰度值不少于输入值;条件b保证输出灰度范围与输入灰度范围相同。
从上面a图中看出,多值映射到单值是可能的。从b图中看出,T®图像严格单调递增,保证了两个方向上的映射一一对应。
用p®和p(s)分别表示r和s的函数,如果p®和T®已知,且在相关值域T®连续且可微,则变换后的变量s的PDF由下面公式得到:
其中,
w是积分的假变量。当r=L-1时,积分值为1,所以s最大是L-1
上图中左边一列是原图,中间一列是均衡后的效果图,右边一列是对应的直方图。显然,经过均衡操作之后的图片更清晰美观。
3.3.2 直方图匹配(规定化)
用于产生处理后有特殊直方图的方法称为直方图匹配,直方图匹配的目标是改变图像的像素值分布,从而使其在视觉上更接近目标直方图。
假设输入图像的概率密度函数为p®,输出图像的概率密度函数为p(z),对输入图像做直方图均衡化
对输出图像做直方图均衡化
由上面两式可得,G(z)=T®,故z满足如下条件:
总之,直方图均衡化可更容易看清楚图片中黑色区域,但是容易产生更多噪声
3.3.3 局部直方图处理
上述讨论的处理方法是全局性的,有利于整个图像的增强,但我们有时只需要保留图像中一部分区域的细节。最好的解决办法是以图像中每个像素的邻域中的灰度分布为基础来设计变换函数。
上图中,左边是原图,中间是经过全局直方图均衡的结果,右图是经局部直方图均衡得到的结果。经过局部处理之后,黑色部分的内容更容易看清,但图片相应的噪声变大。
3.4 空间滤波基础
滤波是指通过或拒绝一定的频率分量。
通过低频的滤波器叫低通滤波器。最终效果是模糊一幅图像。
可以使用空间滤波器直接作用于图像本身完成类似的平滑。
3.4.1 空间滤波机理
空间滤波器有以下部分组成:
(1)一个邻域(常见的是一个矩形)
(2)对该邻域内的像素执行的预定义操作
滤波产生一个新像素,新像素的坐标等于邻域中心坐标,像素的值是滤波结果。
如果在像素执行线性操作,则称之为线性滤波器,反之为非线性滤波器。我们重点关注线性滤波器。
下图说明了使用3x3邻域的线性空间滤波机理。在图像任意一点(x,y),滤波器的响应g(x,y)是滤波器系数与像素的乘积之和
一般来说,使用大小为m x n 的滤波器对大小为M x N的图像进行线性空间滤波,由下式表示
3.4.2 空间相关与卷积
相关:是指滤波器模板移过图像并计算每个位置乘积之和的处理。
卷积:机理与相关相似,但滤波器要旋转180°。
卷积的概念是线性系统理论的基石,卷积的基本特性是某个函数与某个单位冲激卷积,得到一个在该冲激处的函数的拷贝,相关操作也得到一个拷贝,但它旋转了180°。所有,如果我们预先旋转滤波器并执行相同操作,就能得到目标结果。
3.5 平滑空间滤波器
平滑滤波器用于模糊处理和降低噪声。通过线性滤波和非线性滤波模糊处理,可以降低噪声。
3.5.1 平滑线性滤波器
平滑滤波器使用滤波器模板确定的邻域内像素的平均灰度代替图像中每个像素的值,从而降低了图像灰度的锐化。下图显示了两个3x3平滑滤波器,第一个滤波器产生模板下方的标准像素平均值,第二个模板产生加权平均
把模板系数代入下面公式即可
一副M x N的图像经过一个大小为m x n的加权均值滤波器滤波的过程由如下公式给出
3.5.2 统计排序(非线性)滤波器
统计排序滤波器是一种非线性空间滤波器,它的响应以滤波器包围的图像区域中的像素的排序为基础,然后使用统计排序决定某个值代替中心像素的值。其中中值滤波器最出名,它将像素邻域内灰度的中值代替该像素值。
左图是被污染的图片,中间图片是用均值模板降噪后的图像,右图是用中值滤波器降噪的图像,可以看出中值滤波远优于均值滤波。
3.6 锐化空间滤波器
3.6.1 基础
主要用到基于一阶和二阶微分的锐化滤波器。主要关心在恒定灰度区域中,突变的开始与结束点以及沿着灰度斜坡处的性质。这些类型的突变可以用来对图像中的噪声点、线与边缘建模。
对于一维函数f(x),其一阶微分基本定义是
类似的,二阶微分是
3.6.2 使用二阶微分进行图像锐化——拉普拉斯算子
一个二维图像函数f(x,y)的拉普拉斯算子定义为
为了离散的描述这一公式,在x方向上,有
在y方向上,有
由这三个公式,两个变量的离散拉普拉斯算子是
由于拉普拉斯是一种微分算子,其强调的是图像中灰度的突变,并不强调灰度级缓慢变化的区域,这将产生把浅灰色边线和突变点叠加到暗色背景中的图像。我们使用拉普拉斯对图像增强表示为下式:
3.6.3 非锐化掩蔽和高提升滤波
非锐化掩蔽:从原图像中减去一幅非锐化版本。由下列过程组成:
(1)模糊原图像
(2)从原图像减去模糊图像
(3)将模板加到原图像上
a中的剖面图是通过垂直边缘的水平扫描线
b显示了平滑后的效果,该结果叠加在原始信号上
c是非锐化模板,它是从原始信号减去模糊信号
d是最后锐化的结果,它是把模板加到原始信号
3.7 混合空间增强法
上图中a是原图,b是在a图基础上经过拉普拉斯操作后的结果,c是把a和b图像相加得到的锐化图像,d是a图经过Sobel梯度处理后的结果。可以看到在c图中仍然有相当多的噪声。在d中采用原图像梯度操作的平滑形式所形成的一个模板,增强了更多的图像细节。e是使用均值滤波器平滑后的图像,f是由c和e相乘形成的掩蔽图像,g是a和f求和得到的锐化图像,h是对g应用幂律变换得到的结果。
以上讨论的锐化过程没有影响图像灰度的动态范围,在实际应用中可以把多个方法结合起来进行操作。
3.8 使用模糊技术进行灰度变换和空间滤波
3.8.1 模糊集合论原理
模糊集合是一个由z值和相应隶属度函数组成的序对,即
当变量连续时,集合A有无限个元素。当z是离散值时,可以确定A的元素值。还有一些集合基本概念,这里不多赘述。一些常用的隶属度函数如下表示
下面是上述公式对应的隶属度函数
3.8.2 使用模糊集合进行灰度变换
a是低对比度图像,b是直方图均衡后的结果,c是基于规则的模糊集合的对比度增强的结果。通过比较b和c图片,可知后者色调更好,并且更清晰。
下图中,a图是上图a和b的直方图,c图是叠加在a上的输入隶属度函数,d图是c的直方图
我们可用如下规则说明灰度级图像对比度增强的过程:
if一个像素是暗的,thenN使它较暗
if一个像素是灰的,then使它仍是灰的
if一个像素是亮的,then使它较亮
3.8.3 使用模糊集合进行空间滤波
当把模糊集合用于空间滤波时,基本方法是定义一个邻域特性,它截取滤波器支持检验的本质。
上图显示了模糊集合0、黑色和白色的可能隶属度函数,用ZE,BL,和WH表示。对于一幅具有L个可能灰度级的图像,模糊集合ZE的自变量范围是[-L+1,L-1],输出灰度范围是[0,L-1]。下图显示了上面规定的规则,Z5的方框指出中心像素的灰度被映射到输出值WH或BL。
在下图中,a是原图,b是模糊空间滤波的结果,c是灰度标定的结果。c图是通过在K=L-1时执行相关计算得到的,最终结果是c图中灰度值跨过从0到L-1的全部灰度级。