APP下载

基于暗原色和Retinex的夜间图像去雾算法

2019-06-11张泽浩周卫星

电子技术与软件工程 2019年7期
关键词:原色透射率像素点

文/张泽浩 周卫星

1 引言

夜间有雾天气下的图像形成过程中,大气中的悬浮颗粒会对光进行散射和吸收,导致图像会出现对比度小、细节丢失、可利用价值降低等问题,这给目标识别、城市交通等带来了很大的问题,因此对夜间有雾图像进行去雾具有重要意义。

目前,图像去雾的方法有很多,但大多针对白天的场景所设计,主要可以分为两类,一类是基于图像增强的方法,例如直方图均衡化[1]的图像增强算法。另一类是基于物理模型[2]的方法,例如Fattal等[3]利用图像中阴影部分和透射率的不相关性估计反射率,进而对图像进行去雾。Tan[4]利用无雾图像有更大对比度的特性,最大化图像的对比度进行去雾。He等[5-6]人提出暗原色先验理论,利用暗通道与大气光值估计透射率,再利用软抠图或导向滤波细化透射率进行去雾。对于光照均匀的图像,以上的去雾算法都在不同的程度上取得了一定的效果,然而对于光照不均的夜间图像,去雾效果不明显。

2 夜间有雾图像物理模型

目前,在雾天图像复原领域中,一般都是采用Narasimhan等提出的大气散射机制,此机制可以用如下公式表示:

因白天图像和夜间图像的主要区别在于光源,则可假设夜间图像的大气光值为A(x,y),(x,y)表示图像中像素点的位置,即夜间有雾图像可表示为:

式(2)中t(x,y)表示夜间有雾图像像素点(x,y)处的透射率。

图1为夜间无雾图像的反转图像和白天有雾图像的对比。由图1可以看出夜间无雾图像和白天有雾图像具有很高的相似性,所以可以利用这一特性对夜间图像进行增强。

假设白天有雾图像的透射率为tb(x,y),即夜间无雾图像J(x,y)和白天无雾图像Jb(x)之间的关系可表示为:

根据之前描述,对夜间无雾图像的反转图像进行去雾,再把去雾后的图像再次反转,即可得到增强后的夜间图像。根据这一特性,可假设夜间有雾图像和白天某类有雾图像也具有此特性,即:

式(4)中Im(x,y)表示白天某类图像,Am和tm(x,y)分别表示此时的大气光值和透射率。根据上式,可得到夜间有雾图像的增强图像Yz(x,y)为:

根据Retinex理论,可将观察到的某类有雾图像Im(x,y)看作亮度图像与反射图像的乘积,即:

式(6)中Lm(x,y)表示亮度图像即环境光的照射分量,Rm(x,y)表示反射图像即物理表面对照射光的反射比例。

将式(5)、式(6)带入(4)可得夜间有雾图像模型为:

3 夜间有雾图像去雾算法

根据上一节提出的夜间图像去雾模型,可得知本文提出的夜间图像算法共有两个部分,第一部分是利用暗原色原理对夜间图像进行增强,第二部分是对增强后夜间图像进行去雾。

3.1 夜间图像增强

暗通道先验原理指出在图像中绝大多数非天空的区域里,图像中的大多数像素都会有至少一个颜色通道具有很低的值,则可以认为该区域光强度有一个很低的最小值。如果给暗原色原理一个数学定义,对于任意的有雾图像J,其暗原色原理可以表示为:

式(8)中Jc表示彩色图像的每个颜色通道 ,Ω(x,y)表示以像素点(x,y)为中心的一个窗口。由He等的暗通道先验知,对于一个无雾的图像,除了天空区域,Jdark值都很小,趋近于0,用公式表示为:

在估计大气光值A时,He提出通过寻找暗原色图像中亮度前1%的像素点来求出大气光值。但当图像中出现天空或大面积白色建筑物时,再用以上方法估计大气光值就会不准确,导致透射率估计不准确,反演出的无雾图像也就不理想。

针对上述出现的问题,本文选取图像中的天空区域估计大气光值,默认天空区域位都会出现在于图像的上端,并寻找图像中像素点的亮度和该像素点位于图像高度比例的乘积的前1%来估计大气光值。

在得到大气光值A后,根据暗原色先验理论和大气散射机制,即可得到粗略的透射率:

由于此方法求出的透射率有严重的光晕效应,因此需要对其进行细化。常见的细化的方法有利用导向滤波或者软抠图对其粗透射率进行细化,并经实验发现,利用导向滤波细化的透射率跟利用软抠图细化的透射率效果相似,但导向滤波的计算复杂度大大低于软抠图,固为了提高运行效率,本文使用导向滤波对其粗透射率进行细化。

3.2 夜间图像去雾

Retinex理论是人类对颜色和亮度感知的基础上提出的一种颜色恒长知觉理论,主要内容包含两个方面,一是物体的颜色是由物体对各波长的反射能力决定的,二是物体的色彩不受光照非均匀性的影响,具有颜色恒常性。由以上理论可知,雾天图像I(x,y)可看作亮度图像L(x,y)与反射图像R(x,y)的乘积,即:

图1:夜间无雾图像的反转图像和白天有雾图像的对比

图2:各算法去雾效果对比图

基于Retinex理论的算法有很多种,使用最多且应用最广的为中心环绕算法,即利用环绕函数来估计图像中每个像素点的反射光。其中包括单尺度算法、多尺度算法和色彩恢复多尺度算法。

本文研究只要基于单尺度算法。单尺度算法的主要过程分两步,是首先通过低通滤波来估计图像中的照射部分,即:

式(13)中*表示卷积操作,F(x,y)为低通滤波,单尺度算法通常使用的低通滤波是高斯滤波,定义如下:

单尺度算法可以在增强细节信息的同时保证颜色恒定,固本次研究选用此算法进行去雾。

4 实验结果比较与分析

为了验证本文算法的有效性,通过选用多张对夜间有雾图像进行去雾处理,并将本文算法的试验结果与传统暗通道算法和传统直方图算法进行对比,对比结果如图2所示。从图2中可以看出,He算法去雾结果整体亮度较低,细节模糊,去雾结果和原图相差不大。利用直方图进行夜间图像去雾,相对He的算法,图像清晰度和亮度都有了明显的提升,但还存在总体色调较暗等问题,与上述两种算法相比,使用本文算法去雾后亮度、细节清晰度和图像生动性都有了明显的提升,去雾效果也更加自然和真实,整体来说本文算法更胜一筹。

5 结束语

本文提出了一种利用图像的颜色转化,并基于暗原色理论和和Retinex理论的夜间图像去雾,通过图像的颜色转换和暗原色原理对夜间图像进行增强,再基于Retinex原理对增强后的图像进行去雾。相对于传统去雾算法,本文算法针对夜间有雾图像并有效的去除图像中的雾霾,去雾后的图像亮度、清晰度等都有了明显的提升,并且具有一定的应用前景。

猜你喜欢

原色透射率像素点
基于5×5邻域像素点相关性的划痕修复算法
纯色太阳镜镜片耐日光辐照性能试验研究
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
一种应用于车牌检测的改进暗原色去雾算法
原色儿童村:让孩子回归自然
石墨烯光栅太赫兹透射特性的研究
玻璃长波透射率对普通双层中空玻璃热特性的影响
晶格常数对左手材料的能量透射率及负折射率的影响