基于Retinex理论的多算法图像去雾与增强系统
项目介绍
本项目是一个集成多种经典Retinex算法的MATLAB图像处理系统,专门用于修复受雾气、水汽或烟雾影响的图像。系统基于Retinex物象分解理论,将图像分解为入射分量(照射光)和反射分量(物体固有属性),通过对细节和色彩的重构,有效解决图像对比度低、视距受限及色彩失真问题。系统不仅实现了基本的增强功能,还包含了大气散射模型仿真及定量化的性能评价体系,适用于安防监控、无人机航拍等场景。
功能特性
- 雾气环境仿真:通过大气散射模型模拟真实环境下生成的雾图,作为算法处理的输入基准。
- 多算法对比:集成单尺度Retinex(SSR)、多尺度Retinex(MSR)和带彩色恢复因子的多尺度Retinex(MSRCR)三种主流算法。
- 全方位性能评估:自动计算图像信息熵、对比度等量化指标。
- 可视化直方图分析:同步展示处理前后RGB三通道的频率分布,直观反映动态范围压缩与扩展的效果。
- 自动化流水线:涵盖预处理、核心算法执行、指标计算与结果展示。
使用方法
- 准备环境:打开MATLAB环境,确保安装了图像处理工具箱(Image Processing Toolbox)。
- 输入数据:在主程序起始位置配置输入图像(系统默认为 peppers.png)。
- 调整参数:根据需要修改SSR尺度、MSR多尺度权重或MSRCR的色彩恢复系数。
- 运行程序:执行程序后,系统会自动在控制台打印各项算法的性能评估数值。
- 查看结果:系统将弹出集成展示窗口,对比不同算法生成的去雾图像及其对应的RGB直方图。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 硬件环境:建议配置 4GB 以上内存,以保证多尺度高斯卷积的运算效率。
- 依赖工具箱:Image Processing Toolbox(涉及 imgaussfilt, imhist, entropy 等函数)。
实现逻辑与算法流程分析
#### 1. 图像预处理与雾气模拟
系统首先将输入图像转化为双精度浮点数(double),以避免计算中的溢出问题。核心阶段利用大气散射模型生成模拟雾气:通过计算像素到图像中心的距离生成指数衰减的透射率图,并结合设定的大气光值(L=0.9),根据模型公式生成合成雾图。这一步为后续去雾算法提供了受控的实验对象。
#### 2. 单尺度Retinex (SSR) 实现细节
SSR算法在对数域执行。核心逻辑是对输入通道进行高斯低通滤波以估计入射分量(低频部分),然后在对数域内从原图中减去入射分量,从而提取出代表物体细节的反射分量。处理最后通过线性拉伸函数将动态范围重新映射至显示范围。该方法能显著提升阴影区域的可见度,但在增强力度与边缘保持上存在折中。
#### 3. 多尺度Retinex (MSR) 实现细节
为了解决单尺度算法在光晕抑制与细节保留之间的矛盾,MSR算法引入了三个不同尺度(小尺度15, 中尺度80, 大尺度250)的高斯核。系统对三种尺度下的处理结果进行等权重(1/3)加权求和。小尺度保证细节增强,大尺度保证色彩及全局光照的一致性,从而在抑制伪影的同时实现更自然的对比度提升。
#### 4. 带彩色恢复因子的MSR (MSRCR) 实现细节
作为系统中最先进的算法,MSRCR在MSR的基础上引入了彩色恢复函数。它通过计算各颜色通道与总亮度的对数比值,动态生成彩色恢复因子(CRF)。结合增益固定系数(G)与偏置(b),该算法能够修正Retinex处理中常见的“灰化”和色彩饱和度降低现象,使结果更加符合实际场景的色彩表现。
#### 5. 辅助功能与后处理
- 色彩平衡与拉伸:系统设计了针对性的拉伸函数。对于SSR/MSR,采用裁剪极端值(1%分位数)的线性拉伸方法;对于MSRCR,采用全量程的归一化拉伸,确保输出图像在[0,1]区间内。
- 质量评价体系:系统自动提取处理后图像的灰度特征,计算信息熵(反映信息量丰富度)和标准差(反映图像全局对比度),通过数值客观评价去雾效果。
- 统计分析:通过绘制三通道叠加的拆线视图,展示各算法对图像动态范围重塑的贡献。