基于灰度补偿与多尺度Retinex算法的彩色图像增强方法研究
2019-08-23谌贻会
文/谌贻会
1 引言
图像增强的目的主要是为了突出图像中有用的部分,减弱或者去掉不需要的信息,它在图像的前期和后期处理中,都起着较重要作用。彩色图像具有比灰度图像更为复杂的一些特性,通常是用矢量来表示像素,并且矢量的各个分量的相关性较高,这就加大了对彩色图像进行增强的难度。经典的彩色图像增强算法是基于亮度分量的增强处理,这主要是由于灰度图像增强算法比较成熟,可以直接用于亮度分量。为了避免颜色失真,这种算法通常将RGB颜色空间转换到HSI颜色空间以获得亮度分量,同时保持色度分量不发生变化。
根据对色彩处理效果的不同,可以把常见的彩色图像增强算法分为两类:保持色调不变的算法和保持颜色恒常性的算法。保持色调不变的增强算法通常进行彩色空间变换,使用灰度图像增强算法来处理变换后所得到的亮度分量。保持颜色恒常性的增强算法结合了人眼视觉系统的感知特性,进行颜色相对饱和度的对比度的调整,可以较好地恢复图像的原始的自然色彩。近年来,人们在基于进化算法的图像增强方法,以及在特定领域的图像增强例如彩色人脸图像增强、舰船图像增强等方面都开展了一些研究。
本文使用灰度补偿和多尺度Retinex算法相结合的方法,来实现对彩色图像的增强。对输入的待增强的彩色图像,首先进行Retinex算法处理,其次,对它的红、绿、蓝三种颜色分量分别进行直方图均衡化,并进行对比度调节,以此来获得经过增强的彩色图像。
2 Retinex算法的步骤
Retinex算法是以人类视觉系统为出发点而设计的,其基本思想是:人感知到某点的颜色和亮度并不仅仅取决于该点进入人眼的绝对光线,还和其周围的颜色和亮度有关,而且物体的颜色是由物体对长波(红色)、中波(绿色)、短波(蓝色)光线的反射能力来决定的,而不是由反射光强度的绝对值来决定的,物体的色彩不受光照非均匀性的影响,具有一致性。
观测的图像S(x,y)是由如下两部分组成:一部分是物体的入射部分,相对应的是图像的低频部分,称为入射图像L(x,y);另一部分是物体的反射部分,相对应的是图像的高频部分,称为反射图像R(x,y)。观测图像S(x,y)可以用下面的表达式来表示:对此式两边同时取对数可得:这里进行对数域的运算可以避免计算机处理复杂的乘法运算,而且在表达上也更为简洁,是加法运算。Retinex算法的目标就是从图像S(x,y)中获得图像R(x,y),因此如何确定图像L(x,y)就成为算法的关键,通常的做法是使用已知的
3.3 改进方案仿真验证
图1:对彩色图像的增强
信息来估计出L(x,y)。
3 图像增强的过程
在使用 Retinex 算法进行图像增强时,一个前提是假定光照是缓慢变化的,而且反射图像在对数域内是单调的,但在实际中的很多场合并不满足此条件,因此会造成在强光照的边缘像素的高亮度区域在增强后亮度会降低,出现光晕现象,从而引起图像细节的模糊,不能呈现出物体真正的颜色效果。对此,下面我们把带有色彩恢复因子的多尺度 Retinex 算法与直方图的均衡化和对比度调节进行结合,设计一种彩色图像增强的方法,它的具体实现步骤如下。
算法1
步1:对输入的待增强的彩色图像,提取它的R(红色)、G(绿色)、B(蓝色)三种分量。
步2:对图像的R、G、B分量分别进行数据转换操作,将其由整型转换成浮点数,便于后面的计算。
步3:分别对R、G、B分量进行取对数,将乘法转换为简单的加法,方便接下来的卷积操作。
步4:选取高斯函数,并把它与图像进行卷积,得到经过低通滤波后的图像。
步5:在对数域中,用原图像减去经过低通滤波后的图像,就可得到经过增强的初步图像。
步6:计算彩色图像的红、绿、蓝三种颜色通道的输出Rk(x,y),k=1,2,3。这里是对Rk(x,y)分别在小尺度,中尺度和大尺度等三个尺度上进行计算;将Rk(x,y)从对数域转换到实数域,从而得到彩色图像。
步7:对第6步中获得的彩色图像,计算色彩恢复因子Ek(x,y),并用它来调节三个颜色通道的比例。
步8:对上一步所获得的彩色图像,对它的红、绿、蓝三种颜色分量分别进行直方图均衡化处理,然后再进行对比度调节,以进一步呈现图像细节,并得到最终的彩色增强图像。
下面对算法1进行如下说明。第3步的具体实现为:把图像的红、绿、蓝三种颜色通道的灰度函数表示为:,k=1,2,3。这 里Ik(x,y)为 光 照 强 度,mk(x,y)为照明因子,rk(x,y)为反射因子。对灰度函数两边取以e为底的对数,把照明因子和反射因子表示成和的形式,即:在后面把来表示。
在第5步中的计算公式为:
其中Rk(x,y)为经过增强的初步图像。
在第6步中的计算公式为:
其中β为一个非负的常数,以避免当图像中像素的灰度值为0时使得对数的结果无意义。
在第7步中计算色彩恢复因子Ek(x,y)的公式为:
这里λ为一个正的常数。
4 实验结果
在处理器为3.0GHz的微型计算机上,我们对算法1通过使用Matlab编程进行了实现,并对一些彩色图像进行了实验。图1使对三种彩色图像的实验结果。图1(a)是待处理的原始图像,图1(b)是使用常规的带有色彩恢复因子的多尺度 Retinex 算法对图1(a)进行增强后的图像,图1(c)是使用算法1对图1(a)进行增强后的图像。类似地,图1(d)和图1(g)是待处理的原始图像,图1(e)和图1(h)分别是使用常规的带有色彩恢复因子的多尺度 Retinex 算法对图1(d)和图1(g)进行增强后的图像,图1(f)和图1(i)分别是使用算法1对图1(d)和图1(g)进行增强后的图像。
如上的实验结果说明,本文的算法1具有良好的对彩色图像的增强效果。由于在带有色彩恢复因子的多尺度 Retinex 算法的基础上进一步做了直方图的均衡化以及对比度调节,因此算法1所获得图像的局部细节较为清晰,使得可以更好地显示出来,可以保持图像颜色的高保真度。由于算法1对红、绿、蓝三种颜色分量分别进行了直方图均衡化处理和对比度调节,因此使图像的对比度得到了明显地提高,达到了增强的目的。
5 结语
在实际中人们在拍摄图像时往往会受到环境的限制,例如在光照不够充足时所拍摄的图片质量较为昏暗,效果较差,因此就需要对这种图像进行增强处理。本文使用灰度补偿和Retinex算法相结合的方法,实现了对彩色图像的增强,在局部细节与颜色保持方面可以取得较好的增强效果。