Retinex低光照图像增强

  • 常见的图像增强算法
    • 基于直方图的增强算法
    • 基于Retinex理论的图像增强算法
    • 基于同态滤波的图像增强算法
    • 基于双边滤波改进的Retinex算法
    • 分析

常见的图像增强算法

在夜间等弱光环境下拍摄的图像,由于其亮度、对比度较低且含有噪声、色彩不饱和、细节模糊等缺点,人的肉眼难以观测,并给后续图像处理带来了严峻的挑战。因此,弱光照图像增强变得尤为重要。

基于直方图的增强算法

灰度直方图包含了图像最基本的统计信息,主要用于表示数字图像中各灰度级与该灰度级像素点出现频率的对应关系,可用离散函数表示为:
,k = 0,1,…,L-1
其中,L为灰度级数,为第k级灰度值,为第k级灰度值的概率,n为图像总像素点,为灰度值为的像素点总和。
灰度直方图反映了数字图像中各灰度级频率情况,可实现图像整体概貌的描述,通过灰度均值。得到图像亮度信息,通过灰度值分散程度得到图像对比度信息,从而了解图像的明暗分布与对比度情况,并据此修改直方图分布,可在一定程度上满足图像增强要求。但是,直方图算法并不能达到最佳的增强效果,如存在全局直方图均衡化的增强效果不均匀,图像中某些区域增强过重,而有些区域增强效果不明显,很可能使图像中的某些细节缺失。局部直方图均衡化的3种算法:子块重叠直方图均衡化( LAHE)、叠直方图均衡化( POSHE)和对比度受限的自适应直方图均衡化(CLAHE)中,尽管CLAHE可同时解决块效应和计算复杂度的问题,增强效果更好一.些,但仅用CLAHE处理得到的增强效果依然存在一些不足。

基于Retinex理论的图像增强算法

Retinex理论实际上就是视网膜大脑皮层理论,其形成主要依据的是:物体所显示的颜色由它对短、中、长波3个波段光线的反射情况决定,而并非是多数人常常误解的由反射光强度绝对值所决定的。在该理论下,光照是否均匀将不影响物体色彩的显示,即物体的色彩具有一致性特性。随着Retinex理论的出现,各种Retinex算法也相继出现。当前大众接受程度较高的Retinex算法是基于中心环绕方式的求取算法,其核心思想是通过环绕函数来估计该点的反射光。常见的基于中心环绕方式的算法包括单尺度Retinex( SSR)算法、多尺度Retinex( MSR )算法和色彩恢复多尺度Retinex(MSRCR)算法,MSRCR算法是对SSR算法及MSR算法进行修正的一种算法。
基于Retinex理论形成的图像增强算法,其优势在于光源一般不会对图像中各像素的相对明暗关系造成影响,还能一定程度上改变光源影响下的图像质量,以提高图像增强效果让图像看起来更加清晰但是,基于Retinex理论的图像增强算法也并非是十全十美的,SSR算法无法同时提供丰富的动态范围压缩和颜色保真,经低尺度SSR算法增强后的图像存在光晕情况,而经高尺度SSR算法增强后的图像尽管可以消除光晕,但动态范围压缩效果不佳。MSR 算法弥补了SSR算法的不足,增强后图像细节更加突出,色彩更加丰富,但其增强过程可能会因噪声的增加而使图像局部区域色彩失真,最终影响整体视觉效果。MSRCR算法又进一步解决了MSR算法存在的这一问题,处理后的图像效果更佳,但计算过程过于复杂。

基于同态滤波的图像增强算法

同态滤波是将灰度变换和频域滤波相结合的一种方法。低光照条件下,采集到的图像中多以低频分量为主,高频的分量几乎很少。因此可以采用高通滤波器对低光照图像进行滤波处理,从而达到增强高频信息,抑制低频信息的目标。对于这种方法使用最多的是同态滤波。其基本原理是将照明分量和反射分量的乘积通过取对数的方法转换为加法,然后通过分别处理照明分量和反射分量对像元灰度值的影响而达到图像增强的目的。由于基于同态滤波的算法未考虑到图像在空间域的局部特征信息,所以在对低光照图像局部特征的增强上效果并不好。
由于现实中亮度和光照变化的非平滑性,经典的Retinex算法在亮度差异较大的区域容易出现光晕现象,对此出现了对照明分量估计的改进,如多尺度Retinex、色彩恢复多尺度Retinex (MSRCR),此外也会对求取的反射分量再进行必要的增强处理(如:对数变换、指数变换、伽马校正等),进一步提高图像的细节信息。
纵观以上几种图像增强的算法,该类算法简单易实现,通过增强图像对比度来提高视觉上的观感,并没有从低光照图像的形成机理上进行处理,所以常常会出现局部区域失真、色彩失真的现象。因此,针对基于低光照图像的形成原理的研究来对降质图片进行处理的方法值得深入探索。
低光照图像的反转图看起来与雾图十分相似,远景部分的像素值通常都非常高,而对于近景部分,则至少存在一个颜色通道的像素值小于180。经过实验,发现低光照图像的反转图像的像素分布的确与雾图的像素分布很类似,两者都是80%以上的像素的RGB值都很高,而这些像素刚好对应远景部分。
既然低光照图像的反转图视觉上类似于雾图,那么将去雾算法应用在低光照图像的反转图上,再对处理图像进行反转,就有可能得到低光照图像的增强图像。例如,在雾图中,绿色的增强相当于变暗一点,其对应的反色相红色则变亮一点,这相当于在低光照图像中增强红色。

基于双边滤波改进的Retinex算法

传统的Retinex理论一般是把光照分量估计出来后,再直接从其原图中减去。但是一张图像原本就是由光照分量和反射分量组成,并且经过计算估计得出的光照分量并不准确。因此,在减去光照分量的同时,图像中肯定会丢失一些信息。针对此问题将对得到的光照分量和反射分量分别使用Gamma矫正和线性拉伸进行处理。再将经过处理的反射分量与光照分量两图合并,最后对合并的图像进行自动白平衡处理,以矫正色偏问题,从而获得课题中需要的高质量图像。
在传统的Retinex算法中,常使用上述的高斯滤波。高斯滤波对整个图像计算其加权平均值,像素点之间距离越接近,其关系越紧密,距离越远则关系越疏远,如此得到的图像必然会模糊掉边缘。因此在本课题研究的算法中,将使用双边滤波代替高斯滤波。双边滤波(Bilateral Filter)属于非线性滤波,是一种各向异性滤波算子。它在考虑空间邻近度的同时还考虑到像素值相似度,不仅可以去除噪声,还可以通过对图像强度进行变换来保护边缘信息。双边滤波有两种权重,分别是空间权重和相似权重。其中空间权重跟像素点所在的位置相关,即像素点间的距离(也可以称之为欧式距离或者空间度量)。因此一般被当做全局变量在循环外进行运算,公式定义为:

上式中d(ξ,x)是两像素点间的距离,将其进行滤波后得到:

在上式中: f(x) 代表未经过滤波的图像,用归一化系数(x)表示,h(x) 代表经过滤波处理后图像,像素点x与其相邻空间内的点ξ之间的几何邻近度用c(,x)表示。其中,(x)的数值不会随着几何位置的改变而发生变化,其数值是与图像自身含有的信息相联系的。求取权值(x)的公式为:

而相似权重则由像素值的大小决定,即像素值大小的差距(也可以称之为辐射距离或者相似性度量)。当像素值不同时相似权重也会随之改变,因此放在循环内进行运算,其公式定义为:

其中σ(f(),f(x))表示两个像素值之间的距离。该过程滤波如下:

在上式中: s(f(),f(x))代表原图中点 x的亮度值f(x)与其相邻区域中相邻点ξ的亮度值f()之间的亮度相似性。表示相似度的函数s(f(), f(x))和表示邻近度的函数c(,x)分别在像素点的值域和空间域起作用。这时可知权值(x)为:

将两个权重联系起来,就能够得到兼顾空间距离和相似程度的传递函数:

其权值为:

则可得到双边滤波器的表达式如下所示:

在上式中,对像素点x做值为(x)的双边滤波处理。空间域的高斯函数为(·),其在空间上的变化域限与其他像素点相比拥有较好的鲁棒性。值域的高斯函数(·),则是在指定变量的变化,上拥有上述空间域高斯函数的特性。T是像素点x的邻域,(·),和(·),都是高斯加权函数。
空间域高斯函数(·),和值域高斯函数(·),可分别表示为:

在上式中,、分别是表示空间和幅度的参数(在实验与结果中已标明参数取值)。整个滤波涵盖的范围就取决于这两个参数的值,因此也可称为滤波器的控制参数。同时,图像的模糊区域的大小被空间参数决定,对噪声的平滑深则被幅度参数决定。如果在与两参数中间其中一个的值近似于0,那么会导致图像变得粗糙,边缘纹理等细节内容更容易因为参数变动而受到干扰。由于双边滤波器对应的高斯函数的曲线会更为平滑,即随的值逐渐变大而趋近于高斯模糊,图像中的亮度间隔是恒定不变的。与此同时,图像中的纹理细节等内容随着空域参数的值不断变大也会变得越来越平滑。.

分析

通过观察可以得知,该算法能够获得更加自然的增强效果,增强后的图像的整体效果看起来比较舒服,增强之后的细节更加清晰。图像也更加明亮,看起来更加逼真,色彩基本上都正常的复原了。
可以得出以下结论:原图的全局亮度偏暗,颜色对比度较低,光源照射的不均匀导致图像内容的清晰度较差。使用上面增强算法对低照度条件下的图像进行处理之后,在整体上对图像的细节清晰度、亮度和对比度都有比较明显的提升。在曝光度上有所提高,色彩复原较好,图像边缘细节较为清晰,并且很好的抑制了光晕问题。使图像的细节信息得以再现,视觉感受舒适度也有大幅度的提升。

Retinex低光照图像增强相关推荐

  1. 代码解读——Retinex低光照图像增强(Deep Retinex Decomposition for Low-Light Enhancement)

    今天带来一篇代码解读的文章,是2018年BMVC上的一篇暗光增强文章.个人觉得网络比较轻量并且能够取得还不错的效果.废话不多说,直接贴传送门: 文章地址:http://arxiv.org/abs/18 ...

  2. 低光照图像增强算法汇总

    目录 1.场景需求 2.Retinex算法 2.1 Retinex算法简介 2.2 Retinex核心代码实现 2.3 Retinex算法效果展示与分析 3.LIME算法 3.1.LIME算法简介 3 ...

  3. 基于深度学习的低光照图像增强方法总结(2017-2019)| CSDN博文精选

    扫码参与CSDN"原力计划" 作者 | hyk_1996 来源 | CSDN博客精选 之前在做光照对于高层视觉任务的影响的相关工作,看了不少基于深度学习的低光照增强(low-lig ...

  4. 图像融合亮度一致_博文精选 | 基于深度学习的低光照图像增强方法总结

    光照估计(illumination estimation)和低光照增强(low-light enhancement)的区别:光照估计是一个专门的底层视觉任务,它的输出结果可以被用到其它任务中,例如图像 ...

  5. retinex 的水下图像增强算法_图像增强论文:腾讯优图CVPR2019

    Underexposed Photo Enhancement using Deep Illumination Estimation 基于深度学习优化光照的暗光下的图像增强 论文地址:Underexpo ...

  6. 论文笔记:基于透射率修正的湍流模型与动态调整retinex的水下图像增强

    基于透射率修正的湍流模型与动态调整retinex的水下图像增强 先验知识 lab空间 瑞利分布 维纳滤波 导向滤波 本文流程 匀光预处理 改进的湍流模型 retinex水下图像增强 实验结果 论文地址 ...

  7. python去除图像光照不均匀_CVPR 2020 | 从重建质量到感知质量:用于低光照增强的半监督学习方法...

    CVPR 2020 | 从重建质量到感知质量: 用于低光照增强的半监督学习方法 Code: https://github.com/flyywh/CVPR-2020-Semi-Low-Light 1 背 ...

  8. HSV空间Retinex理论低照度图像增强

    文章目录 一.课题任务.目的和要求 二.课题方案设计 三.课题设计实现 1 同态滤波算法增强夜晚图像的RGB各分量 2 HSV空间改进的多尺度Retinex 算法及伽马校正 3 直方图均衡函数对反射图 ...

  9. ChinaMM竞赛:低光照人脸检测

    点击我爱计算机视觉标星,更快获取CVML新技术 竞赛背景介绍 室外场景容易受到恶劣天气下复杂视觉退化的影响.在低光条件下进行拍摄会导致能见度降低和信号细节损失,对视觉增强和后续的感知任务造成阻碍,例如 ...

  10. 夜间(低光照)目标检测数据集整理:人脸检测,行人检测

    1.夜间(低光照)人脸检测的数据集 DARK FACE: Face Detection in Low Light Condition 提供了6000幅真实世界的低光图像,在夜间捕获,在教学楼.街道.桥 ...

最新文章

  1. linux的sort如何对时间排序,Linux中用Sort和Tsort对文件进行排序
  2. 初识Tcl(一):Tcl 命令
  3. python批量下载网页文件-超简单超详细python小文件、大文件、批量下载教程
  4. 数据连接之--Datalist 的使用(查看、编辑、删除)
  5. 在liferay strut2中如何使用session
  6. OpenCV 中的图像处理
  7. DTD -- XML验证
  8. meetup_使用RxNetty访问Meetup的流API
  9. 80 后技术人的中年危机
  10. 什么是SQL Server DATEPART()方法?
  11. windows下客户端连接上马上会断开连接_zookeeper系列客户端的骚操作amp; Curator使用...
  12. 服务器,Linux,centos7成功安装显卡驱动(超详细)
  13. 【Python】基于Python计算长时间遥感栅格图像的像元值变化度(斜率)和变异系数
  14. css的sprites什么意思,CSS Sprites是什么
  15. 【MySQL技术内幕】34-lock与latch
  16. php代码写一串新年祝福,临时保存新年祝福的php+dede
  17. 第1章 持续交付2.0
  18. 静态通讯录+动态版通讯录
  19. 离开页面触发事件onunload、onbeforeunload区别
  20. 输入一个整数,判断是不是质数?

热门文章

  1. 【通信仿真】基于matlab STAP全自由度空时自适应处理【含Matlab源码 1956期】
  2. FU-A STAP-A
  3. 数据的展现技巧——数据透视表(一)
  4. 你离技术大牛就只差这10个优质公众号!
  5. 人工智能--符号计算--笔记
  6. Android百度地图修改定位时间间隔
  7. 4g模块Linux拨号ppp脚本,在ARM-linux上实现4G模块PPP拨号上网【转】
  8. java微信公众号百度地图,微信企业号开发之微信考勤百度地图定位
  9. uniapp微信小程序使用canvas自定义分享名片
  10. HTTPServer不能从外部访问