MatlabCode

本站所有资源均为高质量资源,各种姿势下载。

您现在的位置是:MatlabCode > 资源下载 > 一般算法 > 基于暗通道先验的图像去雾仿真系统

基于暗通道先验的图像去雾仿真系统

资 源 简 介

该项目利用MATLAB完整实现了由何恺明提出的暗通道先验(Dark Channel Prior)去雾算法,旨在解决由于大气散射引起的户外图像退化问题,包括对比度低、色彩暗淡和细节模糊等特征。系统首先计算输入图像每个像素邻域内的最小值以提取暗通道特征,由于暗通道图在无雾区域具有极低的光强值,系统能据此精确量化空间中雾气的浓度分布。随后,程序通过寻找暗通道中最亮部分的对应像素来自动估算全局大气光强度。在构建透射率图的过程中,为了克服传统中值滤波可能导致的边缘伪影,系统集成了导向滤波(Guided Filter

详 情 说 明

基于暗通道先验的图像去雾仿真系统

项目介绍

本项目是一个基于 MATLAB 开发的图像处理仿真系统,旨在实现何恺明(Kaiming He)提出的暗通道先验(Dark Channel Prior, DCP)去雾算法。该算法通过研究大量无雾自然图像的统计特征,发现图像在非天空区域的局部窗口内,至少有一个颜色通道的像素值非常低。系统利用这一先验规律,通过大气散射物理模型逆向推导,能够有效消除户外图像中的雾霾、薄雾带来的对比度下降和色彩偏离,恢复出清晰、通透的视觉效果。

功能特性

  • 自动化处理流程:提供图形化文件选择界面,支持多种主流图像格式(JPG, PNG, BMP, TIF)。
  • 大气光自动估算:基于暗通道图最亮区域自动锁定原始图像中的全局大气光强度。
  • 高保真边缘保留:集成导向滤波(Guided Filter)技术,解决粗略透射率导致的边缘光晕问题。
  • 自适应细节增强:包含基于 Rayleigh 分布的对比度受限自适应直方图均衡化(CLAHE)处理。
  • 综合评价体系:自动计算对比度提升倍数及时域信息熵,量化评价去雾前后的图像质量。
  • 可视化对比:六分屏同步对比原始图、暗通道图、透射率演变过程及最终增强效果。

使用方法

  1. 启动程序:在 MATLAB 环境中直接运行主函数。
  2. 选择图像:在弹出的文件对话框中选择一张待处理的有雾户外图像。
  3. 等待处理:系统将自动执行暗通道提取、参数估算、透射率细化、物理模型恢复及后处理增强。
  4. 查看结果:系统将弹出可视化窗口显示中间过程及最终结果,并在命令行窗口输出大气光值、对比度提升倍数、熵等技术指标。

系统要求

  • 软件环境:MATLAB R2016b 及以上版本。
  • 依赖工具箱:Image Processing Toolbox(图像处理工具箱)。

实现逻辑与步骤说明

本系统严格遵循大气散射物理模型 I(x) = J(x)t(x) + A(1-t(x)) 进行逆向求解,具体实现逻辑如下:

  1. 图像预处理
程序首先将输入的 RGB 图像转换为双精度浮点数(double)格式,范围归一化至 [0, 1],为后续数学运算提供精确度支持。

  1. 暗通道特征提取
系统首先计算每个像素在 R、G、B 三个通道中的最小值。随后利用最小值滤波(形状为 15x15 的全 1 矩阵进行腐蚀操作)提取局部区域内的最小光强,生成暗通道图。

  1. 全局大气光(A)估算
在暗通道图中选取亮度最高的 0.1% 的像素点,并定位这些点在原始有雾图像中的对应位置。取这些位置像素值中的最大值作为全局大气光 A 的估算值。

  1. 初始透射率计算
根据物理模型公式,利用归一化后的图像(I/A)计算暗通道。为了保留远景的深邃感,引入去雾因子 omega(取值 0.95),计算出粗略的透射率图。

  1. 导向滤波细化
为解决直接计算透射率产生的块状效应,系统以原图的灰度图作为引导图像,利用导向滤波对初始透射率进行保边平滑处理。该步骤通过计算局部均值、方差及线性系数,在平滑噪声的同时精确修复物体边缘的透射率。

  1. 物理模型逆向求解
将估算的大气光 A 和细化后的透射率带入去雾公式。为了防止透射率过小导致计算溢出或噪点放大,系统设定了透射率下限值 t0(取值 0.1)。

  1. 自适应增强后处理
针对恢复出的图像可能存在的色彩暗淡问题,系统对 R、G、B 三个通道分别执行 adapthisteq 自适应直方图均衡化,分布模型设定为 Rayleigh 分布,进一步提升图像的细节辨识度和视觉观感。

关键算法与实现细节

  • 导向滤波实现:代码内部实现了 guided_filter 子函数,通过计算引导图与输入图的局部协方差和方差,在线性变换框架下实现细节保留。
  • 快速盒式滤波:为了提升导向滤波的运算效率,实现了基于积分图思想的 box_filter 函数,利用 cumsum 累加和减法操作实现 O(1) 复杂度的窗口均值计算。
  • 评价指标指标:
- 对比度提升倍数:通过计算去雾后与去雾前灰度图的标准差比值来量化对比度增强程度。 - 信息熵:利用 entropy 函数计算图像的统计特征,体现去雾后图像细节信息的丰富程度。
  • 鲁棒性设计:通过 max(transmission_refined, t0) 机制,有效避免了在处理极浓雾区域时可能出现的数值不稳定现象。