基于Weickert结构张量的各向异性扩散图像去噪与增强系统
项目介绍
本系统实现了由Joachim Weickert提出的经典各向异性扩散模型。与传统各向同性滤波(如高斯滤波)不同,该算法通过提取图像局部的结构张量(Structure Tensor),分析像素领域的几何特征(方向、相干性),从而实现具有方向选择性的平滑处理。该系统在滤除高斯噪声的同时,能够显著强化图像中的线性结构(如指纹、血管、地震剖面纹理),并有效抑制图像边缘的模糊。
---
功能特性
- 稳健的结构提取:利用高斯尺度空间对梯度进行正则化,并结合积分尺度聚合局部几何信息,构建鲁棒的结构张量。
- 方向导向扩散:根据结构张量的特征值分解结果,动态调整扩散张量的分量,使扩散沿边缘方向(相干方向)进行,而在垂直边缘方向受到抑制。
- 实时演化可视化:在数值求解过程中,程序会实时展示迭代的中间状态,方便观察图像从噪声状态向结构强化状态的演化逻辑。
- 多指标客观评价:系统内置了峰值信噪比(PSNR)与结构相似性(SSIM)计算功能,对去噪前后的图像质量进行定量对比。
- 灵活的参数控制:支持通过调整对比度阈值、扩散尺度、时间步长等参数来适配不同信噪比和特征尺度的图像处理任务。
---
系统实现逻辑与核心算法
程序遵循偏微分方程(PDE)的迭代演化逻辑,具体步骤如下:
1. 图像预处理与噪声模拟
程序首先读取用户选取的图像或演示图像,将其转换为灰度图并归一化至[0, 255]范围。随后向原图注入指定标准差(noise_level)的高斯白噪声,作为演化的初始状态。
2. 正则化梯度计算
为了避免噪声对梯度检测的干扰,系统首先使用参数为sigma的高斯核对图像进行平滑,随后利用数值导数算子计算图像在x和y方向的梯度分量。
3. 结构张量(Structure Tensor)构建
通过计算梯度分量的外积,并使用参数为rho的高斯核进行空间积分平滑,构造二阶对称正定矩阵J。该步骤用于捕捉邻域内的局部对比度变化及主导方向。
4. 特征值分解与几何分析
程序通过解析公式对结构张量进行逐像素的特征值分解。提取出的较大特征值mu1反映了垂直边缘方向的对比度强度,较小特征值mu2反映了沿边缘方向的对比度强度。同时通过atan2函数计算出主特征向量的方向角。
5. 扩散张量(Diffusion Tensor)构造
系统根据Weickert策略构造扩散张量D。其中:
- 垂直边缘方向的扩散系数稳定在极小值alpha,以起到保护边界的作用。
- 沿边缘方向的扩散系数受相干性度量(mu1-mu2)的指数函数控制,在结构明显的区域增加扩散,以连通断裂的纹理特征。
6. 数值求解:散度计算与显式更新
程序根据扩散张量与当前图像梯度的乘积计算通量(Flux)。随后计算该通量的散度(Divergence),并在每个迭代步dt内按照显式欧拉法更新图像像素值。
7. 性能评价模块
在迭代完成后,系统利用高斯加权窗口计算SSIM指标,并对比去噪效果。最终输出包含参数配置、PSNR增益、SSIM指标的处理报告,并展示无噪原图、含噪图与增强图的对比。
---
关键参数分析
- 噪声尺度 (sigma):控制梯度计算时的预平滑程度,sigma越大对噪声越不敏感,但小尺度边缘可能丢失。
- 积分尺度 (rho):定义了观察局部结构的感受野大小,对于线性和纹理增强,较大的rho有助于提取长程相干性。
- 对比度敏感度 (C_param):控制扩散系数对图像特征强度的反应。C越小,扩散器越容易被触发。
- 时间步长 (dt):影响数值求解的稳定性,对于显式格式,dt必须小于0.25以保证不发散。
---
使用方法
- 启动MATLAB环境。
- 运行主程序脚本。
- 在弹出的文件对话框中选择一张待处理的图像(支持PNG, JPG, BMP, TIF格式);若取消选择,则系统自动加载测绘标准图cameraman。
- 观察实时弹出的演化窗口,查看图像在迭代过程中的去噪与结构强化效果。
- 在处理结束后,查看命令行窗口输出的PSNR/SSIM报告,并分析最终生成的对比图与边缘结构度量图。
---
系统要求
- 环境:MATLAB R2016b 或更高版本。
- 工具箱:Image Processing Toolbox (用于imgaussfilt, imfilter等图像滤波操作)。
- 硬件:支持标准图形显示的计算机。