基于Retinex理论的雾天图像增强算法
2020-09-29郝才成吴宣儒
郝才成,李 萍,吴宣儒
(宁夏大学 物理与电子电气工程学院,宁夏 银川 750021)
0 引言
由于空气中的水汽对太阳光的散射效应,导致雾天图像质量下降,细节模糊,对比度降低,亮度过大,不利于后期的处理与识别[1]。雾天图像的预处理则显得尤为重要,图像增强技术可以有效提高雾天图像的对比度,突出雾天图像的细节信息,有利于计算机处理。
常用的雾天图像增强算法有直方图均衡化(HE)算法、小波变换算法和基于色彩恒常性理论的Retinex算法[2]。HE算法通过非线性函数将图像的灰度值重新分配,使灰度值更分散,处理后图像的灰度值具有均匀的概率密度[3],该算法可以提高图像的对比度,扩大图像的动态范围,原理简单,实时性好,但由于需要均衡灰度值,容易损失大量的细节信息,从而导致图像局部细节模糊;小波变换算法能将一幅图像分为高频部分和低频部分,其中高频部分对应图像的细节信息,低频部分对应图像的整体轮廓,噪声多存在于图像的高频部分,所以小波变换对高频部分进行去噪处理,对低频部分进行增强处理,然后再进行小波重构[4]。在提升对比度和细节保持方面表现优异,但其在噪声抑制方面表现不佳;Retinex理论由Land等人提出,该理论认为一幅图像可以由照射分量L和反射分量R组成,物体的亮度和色彩由反射分量决定,用高斯滤波函数与图像做卷积得到照射分量,然后在对数域下去除照射分量,从而得到反射分量[5],可以提高图像的对比度,但该理论容易造成图像色彩失真。
针对上述各算法在雾天图像增强中存在的问题,提出本文算法。本文算法对传统的SSR算法进行了改进,改进后的算法具有良好的细节保持能力和运算速度。在HSI空间下对雾天图像进行处理,可以有效避免过增强和色彩失真现象。经实验验证,本文提出的算法可以提高雾天图像质量,恢复雾天图像色彩,增强效果优于传统算法。
1 Retinex算法
Retinex算法分为单尺度Retinex算法(SSR)、多尺度Retinex算法(MSR)和带颜色恢复的多尺度Retinex算法(MSRCR)[6]。Retinex算法认为一幅图像可以表示成照射分量和反射分量的乘积,算法原理如图1所示。
图1 Retinex算法原理
原理图由3部分构成,各部分之间的关系为:
S(x,y)=L(x,y)R(x,y),
(1)
式中,(x,y)为数字图像的像素坐标;S(x,y)为原始图像;R(x,y)为反射分量;L(x,y)为照射分量。原始图像是观察者获取到的图像,反射分量代表图像的本质特性,照射分量代表图像的亮度范围。
由于人眼的视觉特性曲线接近对数函数曲线,对数域下的处理更符合人的视觉特性[7],所以将式(1)两端移项并取对数,用对数域下的原始图像减去对数域下的照射分量,得到对数域下的反射分量,运算过程为:
ln[R(x,y)]=ln[S(x,y)]-ln[L(x,y)],
(2)
再通过指数变换将反射分量映射回实数域,经过上述处理可以达到图像增强的目的。式(2)中的L(x,y)可以通过高斯滤波函数与原始图像做卷积运算获得,过程为:
L(x,y)=F(x,y)*S(x,y),
(3)
式中,高斯滤波函数为:
F(x,y)=λe[-(x2+y2)/c2],
(4)
式中,λ为归一化因子;c为高斯尺度,取80效果较好[8]。c的变化导致Retinex算法的尺度发生变化,c固定不变的Retinex算法称为单尺度Retinex算法,简称SSR。
小尺度的SSR可以增强细节,但容易丢失色彩,大尺度的SSR可以保持色彩,但对比度增强方面欠佳[9]。SSR难以同时保证亮度和对比度,所以研究人员提出了多尺度Retinex算法(MSR)和带颜色恢复的多尺度Retinex算法(MSRCR),MSR将不同尺度的SSR加权相加,MSRCR在MSR的基础上引入了颜色恢复函数[10]。MSR和MSRCR的处理结果更好,色彩更丰富,但二者的运算过程较为复杂,处理时间较长。
2 基于SSR的图像增强算法
针对雾天图像和传统的SSR在细节保持方面存在的问题,提出一种基于Retinex理论的雾天图像增强算法。将雾天图像转换到HSI空间,对S分量进行线性拉伸,用改进的SSR算法增强I分量,将图像从HSI空间转回RGB空间,通过sigmoid函数对图像进行色彩恢复,得到增强后的图像。基于Retinex理论的雾天图像增强算法的流程如图2所示。
图2 本文算法流程
2.1 S分量处理
HSI空间较RGB空间更贴合人眼的视觉系统,且更容易进行分离处理。HSI空间的S分量代表图像的饱和度(Saturation),饱和度对应图像色彩的鲜艳程度,饱和度越高图像色彩越鲜艳。对雾天图像的S分量进行线性拉伸可以解决图像的泛白问题。不同的图像有着不同的饱和度,而不同的饱和度需要不同的拉伸尺度,为了能达到理想的增强效果,本文采用自适应尺度的线性拉伸算法[11]:
(5)
经过式(5)的处理后,饱和度可以由[0~1]扩展到[0~1.1],图像的色彩可以得到加深,此算法可以有效解决雾天图像的泛白问题。
2.2 I分量处理
I分量代表图像的亮度(Intensity),对应图像色彩的明暗程度。SSR算法的核心是快速准确地去除照射分量,滤波函数的选取影响图像增强的效果[12]。传统的SSR算法的滤波函数是高斯函数,该函数的滤波方式是空间域滤波,中心点的像素值由邻域内其他点的像素值共同决定,由于是模糊处理,所以容易丢失细节。本文用改进的SSR算法对I分量进行增强,滤波函数采取的是双边滤波函数[13],双边滤波既考虑空间域因素又考虑值域因素,中心像素值仅由邻域内像素值相近点的像素值决定,具有较好的细节保持能力,双边滤波函数为:
(6)
(7)
(8)
改进的SSR算法的核心是式(7)、式(8)中的2个高斯尺度,增强的效果会随着尺度的调整而发生变化。改进的SSR算法的原理如图3所示。
图3 改进的SSR算法原理
2.3 颜色恢复
为了提升图像的平均亮度和视觉效果,本文算法采用sigmoid函数对图像进行颜色恢复,针对雾天图像的sigmoid函数[14]为:
(9)
式中,自变量为输入像素值;S(x)为处理后的像素值;k1,k2分别为标准差系数和像素值系数,标准差对应图像的对比度,像素值对应图像的亮度[15]。函数呈S形曲线,因此可以拓展大部分区域的亮度值,值域控制在[0~255],可以避免过增强现象。
3 实验分析
为了测试本文算法的增强效果,选取2幅雾天图像进行仿真实验,实验环境:Intel(R) Core(TM) i5 CPU @ 2.4 GHz,操作系统:Windows 7旗舰版,仿真软件:Matlab2016。
仿真结果如图4和图5所示。用HE算法、MSRCR算法和本文算法对图4(a)和图5(a)进行增强,分别得到增强结果。
图4 公路图像增强结果
图5 楼房图像增强结果
受到薄雾天气影响,2幅原图的视觉效果不佳,存在泛白现象。3种算法均能改善雾天图像的视觉效果,但HE算法和MSRCR算法的处理结果存在失真现象。图4(b)道路尽头出现过增强,图5(b)山顶天空部分细节丢失;图4(c)色彩偏移严重,图5(c)整体泛白。本文算法的处理结果不存在失真现象,主观效果优于HE算法和MSRCR算法。
分别从亮度、标准差、信息熵和运算时间4个方面对2幅图像的增强效果进行客观评价,对比结果如表1和表2所示。本文算法的运算速度最快,说明本文算法在实时性方面优于其他2种算法。信息熵代表图像的信息量,对应图像的细节[16]。本文算法的信息熵最大,说明本文算法具有较好的细节保持能力;HE算法的标准差最大,本文算法其次,但HE算法存在颜色失真问题,而本文算法不存在失真问题;MSRCR算法亮度过大且运算时间过长,本文算法亮度适中且实时性较好。
表1 公路图像质量评价对比
表2 楼房图像质量评价对比
4 结束语
本文提出一种基于Retinex理论的雾天图像增强算法,选取2幅雾天图像进行仿真实验,对实验结果进行主观对比与客观评价,本文算法在主观效果和客观数据方面均优于另外2种算法。因此可以得出,本文算法对于雾天降质图像具有较好的增强效果,对于标准差的提升效果不够明显。今后可以在对比度增强方面深入研究,从而提高算法处理结果的标准差,同时要保证雾天图像天空部分的增强效果。