图像增强是数字图像处理技术中最为基本的内容之一。在实际应用中,无论采用何种装置采集的图像,由于噪声、光照、天气等原因,获取的图像视觉效果不理想。例如,雾天获取的图像模糊不清,难以提取细节信息;一幅户外自然风景图像色彩失真严重,视觉效果较差;夜间拍摄的图像,由于光线较暗,图像对比度低,暗处景物难以辨识等。图像增强技术的目的是将图像转化为一种更适合于人或计算机进行分析处理的形式,通过相关算法的处理,使图像的动态范围扩大,拉伸图像对比度,突出图像中研究者感兴趣区域的细节信息,为图像的进一步处理和分析奠定基础。
雾天图像可以看作是清晰图像中引入了低频噪声,图像的灰度集中分布在某个区域,图像的对比度低,视觉效果较模糊。图像去雾的目的主要是去除图像中的噪声(即雾),提高图像的对比度,从而恢复出清晰的无雾图像。
基于图像增强的去雾技术以其方法简单、有效而得到较为广泛的应用。
本章主要研究图像增强技术中常用的直方图均衡、同态滤波、小波变换方法在图像去雾中的应用,重点研究基于Retinex理论的图像去雾算法,介绍Retinex算法中的单尺度、多尺度以及带彩色恢复的Retinex算法。通过对各算法原理的研究和实验结果对比分析,总结各算法的优势与不足。
直方图是多种空间处理技术的基础。图像的直方图是图像的重要统计特征,是表示一幅数字图像中每一灰度级与该灰度级出现的频数间的统计关系。直方图均衡化是传统的图像增强理论中常用的方法,图像中原本灰度级集中的区域经直方图均衡处理后均匀分布,从而增大反差,使图像细节清晰,它的根本目的是改善图像的对比度。直方图均衡分为全局直方图均衡和局部直方图均衡。全局直方图均衡主要是通过拉伸图像灰度值的动态范围达到图像整体对比度增强,局部直方图均衡化是针对图像内部细节进行增强处理从而达到图像局部对比度增强。直方图在软件中计算简单,而且有助于商用硬件的实现,因此已成为实时图像处理的一种流行工具。
直方图均衡化是把一幅已知灰度概率分布的图像经过变换,使之变成灰度概率分布均匀的新图像。它是以累积分布函数变换法为基础的直方图修正方法,其计算过程如下:
(1) 首先通过对原始图像的研究分析,列出其灰度级fj,j=0,1,…k,…L-1,其中,L是原始图像中灰度级的总数量。
(2) 根据原始图像的灰度级分布,统计出分布在不同灰度级的像素个数nj,其中 j=0,1,…k,…L-1。
(3) 计算原始图像的直方图,即各个灰度级中的像素个数占图像中像素总数的比重
,其中,n为原始图像中像素总个数。
(4) 计算原始图像的累积直方图
。
(5) 利用灰度变换函数计算变换后图像的灰度值gi,i=0,1,…k,…P-1,其中,P为变换后图像灰度级的总个数,并四舍五入取整:
式中,INT为取整符号。
(6) 确定灰度变换关系j→i,据此将原始图像的灰度值f(m,n)= j修正为g(m,n)= i。
(7) 统计经灰度变换后的各灰度级的像素个数ni,其中i=0,1,…k,…P-1。
(8) 计算变换后图像的直方图
。
经直方图均衡处理后的图像直方图趋向于平坦,灰度级减少,灰度合并;变换后含有像素较多的灰度级间隔被拉大,像素少的灰度级被压缩,实际视觉能够接收的信息量得以增加。
直方图均衡化算法实现简单,能够扩大灰度值的动态范围,提高图像的对比度,但是仍存在一定的缺陷。直方图是近似的概率密度函数,所以直方图均衡处理只是近似的,由于数字图像灰度取值的离散性,计算过程中用到四舍五入的方法使变换后的新图像中的灰度级数量会比原图像中的灰度级数量少,从而造成新图像中的部分信息丢失。不同的灰度变换后的灰度可能相同,造成伪轮廓。
雾天采集到的图像亮度较高,呈现泛白发灰的状态且对比度较低,直方图分布较集中。直方图均衡法在处理场景处于同一深度的图像时能获得较好的处理效果,但实际获得的图像中景物的深度往往并非一致,直方图均衡法难以反映景深多变的图像中局部景深的变化,难以获得令人满意的视觉效果。
a) 原始雾天图像 b) 直方图均衡后的图像
c) 原始图像的直方图 d) 直方图均衡后的直方图
图 直方图均衡化处理结果
The results of histogram equalization
全局直方图均衡方法在某种意义上,像素被基于整幅图像的灰度分布的变换函数修改。虽然这种全局方法适用于整幅图像的增强,但是存在这样的情况,增强图像中小区域的细节也是需要的。这些区域中,一些像素的影响在全局变换的计算中可能被忽略了,因为全局变换没有保证期望的局部增强。解决方法是以图像中每个像素的邻域中的灰度分布为基础设计变换函数,即引入局部直方图均衡化方法。
局部直方图均衡化,也称为块重叠直方图均衡化,是一种标准的自适应直方图均衡化方法(AHE)。局部直方图均衡化的基本思想是将直方图均衡化运算分散到图像的所有局部区域,通过局部运算的叠加自适应地增强图像局部信息。
局部直方图均衡化的过程是定义一个邻域,并把该区域的中心从一个像素移至另一个像素。在每个位置,计算邻域中的点的直方图,并且得到的不是直方图均衡化,就是规定化变换函数。这个函数最终用于映射邻域中心像素的灰度。然后,邻域的中心被移至一个相邻像素位置,并重复该过程。
局部直方图均衡化可以根据图像的局部信息进行直方图均衡化,处理后的图像增强效果往往比全局直方图均衡化好。雾天条件下采集的图像通常场景深度信息多变且无法确定,采用局部直方图均衡化算法能够大幅度降低场景深度信息对图像增强处理过程中产生的影响,从而对图像中的局部区域进行较好的对比度增强,获得较大的动态范围,达到图像清晰化的目的。但是由于该方法在执行过程中需要进行逐点计算,所以耗时较长,且易产生块状效应。
本章实验的硬件环境为Intel(R) Core(TM)2 Duo CPU,,内存2G;软件平台为MATLAB(R2008a)。局部直方图均衡算法中的邻域大小为7×7的窗口。
A:
B:
a) 原始图像 b) 全局直方图均衡 c) 局部直方图均衡
图 直方图均衡方法的去雾结果
The result of defogging by histogram equalization
从以上A、B两组实验结果图可以看出:A、B组处理后图像明显比原始雾天图像清晰,经全局直方图处理后的图像在景深多变处难以显示图像细节信息(如A组中房屋的窗户以及房屋前面的植物,B组图像中的植被),经局部直方图均衡处理后的图像细节信息突出,但是易出现块状效应且算法耗时较长。
同态滤波是一种在频域中将图像动态范围进行压缩并将图像对比度进行增强的方法,它以图像的入射/反射分量模型作为频率域处理的基础,主要通过压缩图像的亮度范围和增强图像的对比度从而达到改善图像质量的目的。同态滤波是基于图像的成像模型。
一幅图像f(x,y)可以用它的入射光分量和反射光分量来表示,其关系式如下:
式中,入射光分量i(x,y)由照明源决定,即它与光源有关,通常用来表示图像中变化缓慢的背景信息,可直接决定一幅图像中像素能达到的动态范围[40]。而反射光分量r(x,y)则是由物体本身特性决定的,它表示灰度的急剧变化部分,如两个不同物体的交界部分、边缘部分等。入射光分量与傅里叶平面上的低频分量相关,而反射光分量则与其高频分量相关。式不能直接用于对照射和反射的频率分量进行操作,因为乘积的傅里叶变换不是变换的乘积,即:
然而,假设定义:
则有
或
式中,Fi(u,v)和Fr(u,v)分别是ln(i(x,y))和ln(r(x,y))的傅里叶变换。
可以用一个滤波器H(u,v)对Z(u,v)滤波,故有:
在空域中,滤波后的图像是:
由定义可知:
式可以表示为如下形式:
最后因为z(x,y)是通过取输入函数的自然对数形成的,可以通过取滤波后的结果的指数这一反处理来形成输出图像:
其中,
表示输出图像的照射分量,
表示输出图像的反射分量。
同态滤波的步骤可以归纳如下图所示:
图 同态滤波增强处理流程图
Flow chart of homomorphic filtering algorithm
图像的照射分量通常以空间域的缓慢变化为特征,而反射分量往往引起突变,特别是当处理的图像是内容丰富多变的自然场景图。这些特性导致图像取对数后的傅里叶变换的低频成分与照射相联系,而高频成分与反射相联系。虽然这些联系只是粗略的近似,但是它们用在图像滤波中是有益的。根据这些特征可以把图像经过傅里叶变换后的低频部分与照射分量联系起来,高频部分与反射分量联系起来。
使用同态滤波器可以更好的控制照射分量和反射分量。这种控制需要制定一个滤波器函数H(u,v),它可选用不同的可控方法影响傅里叶变换的低频和高频分量。选取适当的滤波器函数H(u,v)对图像进行对比度增强和动态范围的压缩,H(u,v)的形式可以定义为如下所示:
其中,D(u,v)=[(u-M/2)2+(v-N/2)2],M、N是滤波器的长宽。常数c控制函数坡度的锐利程度,它在
和
之间过度。若
<1并且
>1,则滤波器H(u,v)一般会减少低频的贡献,即照度的贡献,同时增加高频的贡献,即反射的贡献。
基于同态滤波的图像去雾的思路是根据雾覆盖的信息通常在频率域分布在低频部分,通过傅里叶变换将图像转换到频率域,然后用高通滤波器对图像进行滤波,去除雾所在的低频信息,保留图像的高频(细节)信息,并对处理结果进行增强,以达到较好的视觉效果。
a) 原始雾天图像 b) 同态滤波处理结果图
图 同态滤波结果图
The result image of homomorphic filtering
图给出同态滤波算法去雾的效果图。从图像中可以看出,经同态滤波处理后的图像比原始雾天图像清晰,整体对比度有所提高,但是雾的残留成分较多,局部细节信息不突出,远处的建筑物以及两栋建筑物之间的景物仍难以辨识,去雾后的图像视觉效果不理想。
小波变换是20世纪80年代中后期逐渐发展起来的一种新的数学工具,在时域和频域同时具有良好的局部化特征,能弥补傅里叶变换不能描述随时间变化的频率特性的不足。利用小波的多分辨分析特性既可以高效地描述图像的平坦区域,又可以有效地表示图像信号的局部突变。小波分析在图像处理方面的应用十分广泛,可以用于图像压缩、分类识别、去除噪声等;在医学成像方面,它用于减少B超、CT、核子共振成像的时间,提高分辨率等。
虽然自20世纪50年代末起,傅里叶变换一直是基于变换的图像处理的基石,但是近年来,一种新的称为小波变换的变换使得压缩、传输和分析图像变得更为容易。小波变换(Wavelet Transform)的概念是由法国科学家提出的,是他在分析处理地球物理勘探资料时通过物理的直观和信号处理的实际需要经验建立的反演公式,但是当时并未得到数学家的认可。1985年,法国著名数学家Y. Meyer构造出一个真正的小波基,此后,小波被证明是一种全新的且有效的信号处理和分析方法,称为多分辨率理论的基础。小波变换是继傅里叶变换之后又一里程碑式的信号处理方法,已广泛应用于图像处理、量子物理、数据压缩以及信号分析等许多领域。
与傅里叶变换相比,小波变换是空间(时间)和频率的局部变换,因而能够有效地从信号中提取信息。小波变换在继承和发展短时傅里叶变换局部化的思想的同时,又克服了短时傅里叶变换中窗口大小不随频率变化的缺点,能够提供一个随频率改变的时间—频率窗口,是进行信号时频分析和处理的理想工具。
小波变换可以描述为:首先对一个基本小波的函数
进行位移处理,位移为
,然后在不同尺度
下与待分析的信号x(t)做内积:
式等效的频域表达式为:
式中,
、
分别是x(t)和
的傅里叶变换。
二维连续小波基函数定义为:
二维连续小波变换是:
二维连续小波变换逆变换为:
二维离散小波变换是一维离散小波变换的推广,其实质上是将二维信号在不同尺度上分解,得到原始信号的近似值和细节值。由于信号是二维的,因此分解也是二维的。分解的结果为:近似分量cA、水平细节分量cH、垂直细节分量cV和对角细节分量cD。
图 小波图像分解过程
The image decomposition course by wavelet transform
可以利用小波分解,将原始图像中高频分量与低频分量进行不同尺度的分离,然后采用不同的方法增强不同频率范围内图像的细节信息,突出不同尺度细节,达到改善图像视觉效果的目的。在实际应用中,可以根据噪声水平和感兴趣的细节所在尺度,选用不同的阈值和增强系数对分解后的图像进行重构。
在小波阈值去噪方法中,阈值函数体现了对小波分解稀疏的不同处理策略以及不同的估计方法,阈值函数的选取通常有两种:硬阈值与软阈值。
硬阈值函数的数学表示为:
式中,
为阈值,
为原始小波系数,
为处理后的小波系数。
通常采用硬阈值函数处理,可以较好地保留图像信号的尖锐特性,如图像的边缘、孤立点等局部特征,由于硬阈值函数在
和
处是不连续的。容易导致图像出现伪吉布斯效应等视觉失真现象,失去原始图像信号的光滑性。
软阈值函数的数学表示为:
采用软阈值方法处理,图像信号的整体连续性好,相对较平稳,但是由于实际值与估计值之间存在恒定偏差,影响估计图像信号与真实图像信号的逼近程度,且处理后的图像容易出现边缘模糊等失真现象。
小波阈值去噪方法的一个关键因素是阈值的选取,若阈值选取过小,不能将噪声去除的较彻底,导致处理后的图像中噪声残留较多;若阈值选取过大,在去除噪声的同时图像中的一些重要特征也会被滤除,导致图像信息丢失。直观上看,对于给定的小波系数,噪声越大,选取的阈值也应该越大。对于雾天图像阈值可以选择为图像均值的相关函数。
基于小波变换的图像去雾的思路主要是将雾看作图像噪声,利用小波阈值去噪方法的原理实现图像去雾。以下实验是对一幅图像采用sym4小波进行两层分解,并分别采用硬阈值和软阈值的方法进行图像去雾。
a) 原始图像 b) sym4小波两层分解
c) 硬阈值方法 d) 软阈值方法
图 小波阈值去雾
Defogging by wavelet threshold
实验中的阈值为系统默认值,(b)图是原图像经过两层小波分解得到,从图中可以看到图像的细节信息分布在高频部分,低频分量为图像的近似值。(c)图是采用硬阈值去雾的结果图,硬阈值函数由于其不连续性,使处理后的图像在边缘处发生振铃、伪吉布斯效应,如图中吊车的两侧以及远处吊梯的边缘。(d)图是采用软阈值去雾的结果图,软阈值由于对系数的估计是有偏的,这导致了处理后的图像会产生过分平滑,使图像呈现较模糊状态。
本章介绍了基于图像增强方法的去雾技术中的直方图均衡方法、同态滤波法、小波变换法以及Retinex增强算法,通过对算法原理与实验结果分析可知:全局直方图均衡算法简单,对单景深图像的复原效果较好,但是难以反映景深多变的图像中的局部信息变化;局部直方图均衡算法能较好的增强局部信息但是由于要对图像中的像素逐点进行运算,算法耗时较长,并且处理后的图像中存在局部块状效应;同态滤波算法原理简单,主要通过两次傅里叶变换采用适合的高通滤波器对图像进行滤波,保留反映图像细节信息的高频分量,将雾看作低频噪声滤除。同态滤波算法能较好的保持图像的原始面貌,增强图像的全局对比度,但是不能有效增强图像的局部细节信息,导致处理后的图像细节信息不突出,视觉效果不理想;小波变换算法能较好地增强图像的细节,但是无法解决图像过亮、过暗或是光照不均的情况;Retinex算法可以改善图像颜色恒常性,提高图像对比度,有效地显示图像中暗区域的细节信息,但是处理后的图像易产生边缘模糊、色彩失真。分析比较各种算法,Retinex算法有较大的发展空间,值得深入研究、探讨。