1. 项目概述
同态滤波图像去雾是一种基于频域处理的经典图像增强技术。我第一次接触这个方法是在处理航拍图像时遇到的——当时拍摄的山区照片总是灰蒙蒙的,细节损失严重。传统直方图均衡化虽然能提升对比度,但会同时放大噪声。而同态滤波的独特之处在于它能同时压缩亮度范围和增强对比度,特别适合处理这种光照不均的雾天图像。
这个Matlab实现的核心思想是将图像建模为光照分量和反射分量的乘积,通过在频域设计合适的滤波器来分别处理这两个分量。与深度学习去雾方法相比,它的优势在于不需要训练数据、计算量小,且在适度雾霾条件下效果显著。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 同态滤波原理详解
2.1 图像成像模型
同态滤波建立在经典的照明-反射模型基础上:
code复制f(x,y) = i(x,y) * r(x,y)
其中:
i(x,y)代表光照分量(低频主导)r(x,y)代表反射分量(高频主导)
雾天图像中,光照分量由于大气散射作用变得异常突出,而反射分量(真实场景细节)被压制。取对数是为了将乘积关系转换为线性可加:
code复制ln(f(x,y)) = ln(i(x,y)) + ln(r(x,y))
2.2 频域处理流程
- 对数变换:将图像从空间域转换到对数域,分离光照和反射分量
- 傅里叶变换:转换到频域进行分析
- 滤波器设计:构造适合的频域滤波器(关键步骤)
- 逆傅里叶变换:回到空间对数域
- 指数变换:恢复为线性亮度
2.3 滤波器设计要点
理想的同态滤波器应具有如下特性:
matlab复制H(u,v) = (γH - γL)[1 - exp(-c(D(u,v)/D0)^2)] + γL
参数说明:
D(u,v):频率点(u,v)到中心点的距离D0:截止频率(通常取图像尺寸的5%-10%)γH:高频增益(1.5-2.5)γL:低频增益(0.5-0.75)c:控制过渡陡度(0.1-1.0)
提示:实际应用中需要根据图像尺寸调整D0。对于512x512图像,D0=30是个不错的起点。
3. Matlab实现解析
3.1 核心代码结构
matlab复制function [outpu
