Retinex低光照图像增强

article/2025/11/6 15:14:41

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的邻域,(·),和(·),都是高斯加权函数。
空间域高斯函数(·),和值域高斯函数(·),可分别表示为:
=exp=exp

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

分析

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


http://chatgpt.dhexx.cn/article/ftKvWEjd.shtml

相关文章

对Retinex算法的一些理解

最近在跟老师做视网膜病灶检测的一个项目,其中一个环节是将两张不同时刻的视网膜图像(灰度图像)亮度对齐以方便后续的处理,即保持相同的组织变化后的灰度值基本相同而病变区域仍有较大的差异。在这个对齐图像亮度的环节中我主要应用了Retinex算法,也测试了一些图像,现在把…

OpenCV—Python Retinex图像增强算法

Retinex图像增强算法 一、单尺度SSR(Single Scale Retinex)理论二、Retinex理论的理解三、多尺度MSR(Multi-Scale Retinex)四、MSRCR & MSRCPMSRCR 算法步骤MSRCR其他实现方法MSRCP算法实现:(代码有问题,改进待续) 一、单尺度…

Retinex算法在暗光增强应用以及Python实现

图像暗光增强(一) Retinex简介Single Scale Retinex(SSR)多尺度MSR Multi-Scale Retinex带色彩恢复的多尺度MSR,即MSRCR(Multi-Scale Retinex with Color Restoration)MSRCP Retinex简介 Retinex由两个单词合成的一个…

基于retinex理论改进的低照度图像增强算法

写本文的目的是记录自己学习过或做过的一些东西,深化理解,理清思路,便于回忆。本人处于学习阶段,欢迎指出不对的地方。 本文算法参考文献:李勇.基于Retinex理论的低照度图像增强算法研究与实现[D].西安电子科技大学,2…

图像去雾(二)Retinex图像增强算法

前一段时间研究了一下图像增强算法,发现Retinex理论在彩色图像增强、图像去雾、彩色图像恢复方面拥有很好的效果,下面介绍一下我对该算法的理解。 Retinex理论 Retinex理论始于Land和McCann于20世纪60年代作出的一系列贡献,其基本思想是人感知到某点的颜…

基于 Retinex 的几种图像增强算法总结

Retinex 理论 Retinex 这个词由 Retina 和 Cortex 两个单词组成。在 Retinex 理论中,物体的颜色是由物体对长波、中波和短波光线的反射能力决定的,而不是由反射光强度的绝对值决定的,并且物体的色彩不受光照非均性的影响,具有一致…

Retinex图像增强算法(SSR, MSR, MSRCR)详解及其OpenCV源码

Retinex图像增强算法(SSR, MSR, MSRCR)详解及其OpenCV源码 Retinex是一种常用的建立在科学实验和科学分析基础上的图像增强方法,它是Edwin.H.Land于1963年提出的。就跟Matlab是由Matrix和Laboratory合成的一样,Retinex也是由两个单词合成的一个词语&…

Retinex实例

Retinex实例 1、代码&#xff1a; #include <iostream>#include <cstring>#include "opencv2/opencv.hpp"using namespace cv;static void help(std::string errorMessage){std::cout<<"Program init error : "<<errorMessage&l…

matlab Retinex图像增强算法

Retinex理论在彩色图像增强、图像去雾、彩色图像恢复方面拥有很好的效果&#xff0c;下面介绍一下我对该算法的理解。 Retinex理论 Retinex理论始于Land和McCann于20世纪60年代作出的一系列贡献,其基本思想是人感知到某点的颜色和亮度并不仅仅取决于该点进入人眼的绝对光线&a…

深入探究Retinex

深入探究Retinex 导读Retinex动态范围增强Retinex核心理论 带色彩恢复的Retinex->MSRCR 导读 Retinex理论是建立在人对颜色感知的恒常性上&#xff0c;真实物体都是无色的&#xff0c;所有颜色的产生都是光和物体相互作用&#xff0c;再被人眼感知的过程。在这样的理论基础下…

Retinex图像增强算法——SSR,MSR,MSRCR,MSRCP,autoMSRCR

系列文章目录 关于OpenCV的一些图像处理函数 图象基本操作&#xff08;读取、显示、通道提取、边界填充、融合、保存&#xff09; Retinex图像增强算法——SSR,MSR,MSRCR,MSRCP,autoMSRCR 文章目录 系列文章目录前言一、Retinex理论二、算法目的&#xff1a;三、Retinex基础算…

Retinex图像增强算法

Retinex图像增强算法 Retinex是一种常用的建立在科学实验和科学分析基础上的图像增强方法&#xff0c;它是Edwin.H.Land于1963年提出的。就跟Matlab是由Matrix和Laboratory合成的一样&#xff0c;Retinex也是由两个单词合成的一个词语&#xff0c;他们分别是retina 和cortex&am…

图像增强算法Python实现之Retinex(含代码)

Retinex是一种常用的建立在科学实验和科学分析基础上的图像增强方法&#xff0c;它是Edwin.H.Land于1963年提出的。就跟Matlab是由Matrix和Laboratory合成的一样&#xff0c;Retinex也是由两个单词合成的一个词语&#xff0c;他们分别是retina 和cortex&#xff0c;即&#xff…

Retinex图像增强

Retinex是一种常用的建立在科学实验和科学分析基础上的图像增强方法。就跟Matlab是由Matrix和Laboratory合成的一样&#xff0c;Retinex也是由两个单词合成的一个词语&#xff0c;他们分别是retina 和cortex&#xff0c;即&#xff1a;视网膜和皮层。Land的retinex模式是建立在…

图像处理:Retinex算法

目录 前言 概念介绍 Retinex算法理论 单尺度Retinex&#xff08;SSR&#xff09; 多尺度Retinex&#xff08;MSR&#xff09; 多尺度自适应增益Retinex&#xff08;MSRCR&#xff09; Opencv实现Retinex算法 SSR算法 MCR算法 MSRCR算法 效果展示 总结 参考文章 前…

Retinex

Retinex图像增强算法 前一段时间研究了一下图像增强算法&#xff0c;发现Retinex理论在彩色图像增强、图像去雾、彩色图像恢复方面拥有很好的效果&#xff0c;下面介绍一下我对该算法的理解。 Retinex理论 Retinex理论始于Land和McCann于20世纪60年代作出的一系列贡献,其基本思…

Retinex算法详解

Retinex是一种常用的建立在科学实验和科学分析基础上的图像增强方法&#xff0c;它是Edwin.H.Land于1963年提出的。就跟Matlab是由Matrix和Laboratory合成的一样&#xff0c;Retinex也是由两个单词合成的一个词语&#xff0c;他们分别是retina 和cortex&#xff0c;即&#xff…

关于Retinex理论的一些理解

目前一直在参与关于Retinex的相关课题&#xff0c;并完成了许多模型的构建&#xff0c;本文以个人的见解介绍Retinex的相关理论 1. 基本原理 Retinex理论是上世纪八十年代由land等人提出的算法。该理论认为人眼可以感知近似一致的色彩信息&#xff0c;这种性质称为色彩…

Retinex理解

Retinex是一种常用的建立在科学实验和科学分析基础上的图像增强方法,它是Edwin.H.Land于1963年提出的。就跟Matlab是由Matrix和Laboratory合成的一样,Retinex也是由两个单词合成的一个词语,他们分别是retina 和cortex,即:视网膜和皮层。Land的retinex模式是建立在以下三个…

Retinex理论,单尺度Retinex、多尺度Retinex(MSR)、带颜色恢复的多尺度 Retinex(MSRCR)原理

1、Retinex理论 Retinex 是两个单词合成的&#xff0c;它们分别是 retina &#xff08;视网膜&#xff09;和 cortex &#xff08;皮层&#xff09;&#xff0c;因此 Retinex 理论很多时候也被称为是视网膜皮层理论。 最初的基于 Retinex 理论的模型提出了一个人眼视觉系统 (…