Python图像处理——基于Retinex算法的低光照图像增强系统
1.项目内容
(1)算法介绍
①MSRCR (Multi-Scale Retinex with Color Restoration)
MSRCR 是多尺度 Retinex 算法(MSR)的扩展版,引入了色彩恢复机制以进一步提升图像增强质量。MSR 能有效地压缩图像动态范围,但在增强图像细节时常引入色彩失真,而 MSRCR 则通过引入颜色恢复因子,调节图像色彩比例,从而克服这一缺陷。
核心思路:利用多个尺度的高斯核对原图做 SSR 操作(即多尺度 SSR 加权平均)。增加一个颜色恢复模块,提升图像色彩一致性,抑制颜色失真。对增强结果进行非线性调节及像素值范围归一化处理。
步骤流程:首先使用高斯函数对原始图像进行低通滤波,抑制图像中的高频信息;随后将原始图像与滤波后的图像转换到对数域后做差,得到去除低频成分的对数域反射图像。接着,采用多尺度策略重复上述滤波与差分操作,在像素层面将各尺度反射图像进行求和,得到多尺度Retinex(MSR)结果。在此基础上,为增强图像颜色,先在通道层面对原始图像进行求和,作为归一化因子,用以生成归一化的权重矩阵,并转换至对数域以获得图像颜色增益,再将MSR结果与该颜色增益矩阵进行连乘组合,实现颜色恢复。最后,通过乘以增益系数、加上偏移量以及自动色阶调整,完成图像的最终恢复和增强处理。
②AutoMSRCR(Automatic Multi-Scale Retinex with Color Restoration)
AutoMSRCR 是对 MSRCR 的进一步改进,主要目标是实现参数的自适应调节,即根据不同图像自动调整高斯尺度参数、权重、颜色恢复系数等,避免手动调参的繁琐,提高算法的实用性与通用性。
核心思路:采用图像特征自动估计方法选择 MSRCR 所需的各项参数。使用色彩增益调节和图像直方图均衡提升亮度分布均衡性。保持 MSRCR 的基本结构框架,增强其适应不同图像内容的能力。
步骤流程:首先对图像应用SMR(Single-scale Retinex)算法,生成一个三维像素值数组作为初始处理结果。接着,对每个通道的像素值进行去重、排序,并统计不同像素值的数量,从中筛选出最小值、最大值以及像素值等于0的数量。然后,为了增强图像对比度,对每个通道的像素值范围进行缩放处理:通过统计小于0和大于0像素值的分布情况,确定每个通道的下限和上限——其中下限为像素值小于0且出现次数不超过0值像素数十分之一的最大值,上限为像素值大于0且出现次数不超过0值像素数十分之一的最小值。在此基础上,将所有超出上下限范围的像素值分别替换为上下限值,并对每个通道的像素值进行线性拉伸至0~255范围,最终取整后用于图像的可视化显示。
③MSRCP (Multi-Scale Retinex with Chromaticity Preservation)
MSRCP 是为了解决 MSRCR 在某些图像中出现“偏色”问题而提出的改进算法,适用于原始图像色调较自然时。其核心思想是:仅对图像亮度(Intensity)分量进行 MSR 操作,而不直接干预颜色信息(即 Hue 和 Saturation)。
核心思路:首先将彩色图像转换为亮度图,使用 MSR 对亮度分量进行增强。然后按照原图 RGB 各通道的比例,对增强后的亮度图进行映射,实现增强同时保留原有色彩分布。
步骤流程:首先对图像的每个像素点进行RGB分量求均值处理,作为亮度信息基础,然后对原始图像使用高斯函数进行低通滤波,以提取图像的低频成分。接着,将原始图像与滤波结果一同转换到对数域后做差,得到去除低频后的对数域反射图像。随后,在像素层面对该反射图像进行多尺度求和,完成多尺度Retinex(MSR)处理,并结合线性调节与自动色阶平衡提升图像视觉效果。最后,根据原始图像RGB通道的比例,将增强后的亮度信息映射回各个颜色通道,实现图像的颜色还原与增强,输出最终结果图像。
④R2RNet(Real-low to Real-normal Network)
一种全新的基于 Retinex 理论的真实低光到真实正常光图像增强网络(R2RNet),该网络由三个子网组成:Decom-Net、Denoise-Net 和 Relight-Net,分别用于图像的分解、去噪、对比度增强与细节保留。R2RNet 不仅充分利用图像的空间信息以提升对比度,还融合频域信息以更好地保留细节,从而在多种退化类型的图像上都表现出更强的鲁棒性。
(2)系统演示
①数据集
使用LOL (LOw-Light dataset)进行训练测试,LOL 数据集由 500 个低光和法光图像对组成,分为 485 个训练对和 15 个测试对。低光图像包含照片拍摄过程中产生的噪点。大多数图像是室内场景。所有图像的分辨率均为 400×600。
②本文设计的界面
基于gradio设计的交互界面实现上述MSRCR、AutoMSRCR、MSRCP和R2RNet四种模型的测试对比,并输出MSE、PSNR和SSIM。
演示视频:Python图像处理——基于Retinex算法的低光照图像增强系统
最后:
小编会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!