基于Curvelet变换的数字图像去噪系统
项目介绍
本项目实现了一个基于快速离散Curvelet变换(FDCT)原理的数字图像去噪系统。Curvelet变换是小波变换的一种多尺度拓展,通过引入方位参数,能够更高效地表示图像中的边缘和曲线特征。系统模拟了FDCT的Wrapping(包裹)算法逻辑,通过频域划分和阈值收缩技术,旨在在去除高斯白噪声的同时,最大限度地保留图像的几何形态和边缘细节。该系统特别适用于对边缘敏感的医学影像、遥感图像和工业探伤图像的处理。
功能特性
- 交互式图像加载:支持用户通过图形界面选择多种格式(JPG, PNG, BMP, TIF)的本地图像,并能自动处理彩色图像,将其转换为灰度图。
- 多尺度方向分解:利用频率域掩膜技术,将图像分解为不同尺度和方向的系数集合,捕捉图像的各向异性特征。
- 自适应硬阈值去噪:针对不同尺度设置差异化的阈值策略(粗糙尺度采用更高阈值),有效分离噪声信号与真实的结构系数。
- 定量性能评估:自动计算并在终端输出峰值信噪比(PSNR)和均方误差(MSE),直观展示去噪前后的质量提升。
- 多维可视化方案:同步展示原始图、含噪图及去噪图的对比效果,并提供特定尺度下各方向系数的特写图,方便深入分析图像特征。
使用方法- 启动程序后,系统会弹出文件选择对话框,请选择需要处理的图像文件。如果取消选择,系统将默认处理内置的示例图像。
- 程序会自动向图像注入标准差为25的高斯白噪声。
- 系统将依次执行Curvelet正向分解、系数阈值化处理和逆变换重构。
- 处理完成后,程序将自动弹出两个图像窗口,分别显示去噪效果对比和中间层的Curvelet系数分布。
- 在终端窗口查看MSE和PSNR的计算数值。
系统要求
- 运行环境:MATLAB R2016a 或更高版本。
- 依赖库:核心算法采用原生MATLAB代码编写,模拟了FDCT逻辑,无需安装额外的第三方Curvelet工具箱。
- 硬件配置:建议内存4GB以上,以支持大尺寸图像的FFT运算。
算法实现逻辑与流程分析系统核心执行逻辑分为以下关键步骤:
1. 预处理与噪声建模
系统首先将输入图像进行归一化和灰度化处理。加入高斯白噪声模拟真实采样环境,噪声强度由sigma参数控制(默认为25)。
2. 模拟FDCT正向变换逻辑
系统在频域内实现了对Curvelet变换的模拟:
- 频域转换:对图像进行快速傅里叶变换(FFT)并进行频谱平移。
- 尺度划分:通过构造圆形/环状掩膜,将频谱划分为低频粗尺度层和多个高频细尺度层。
- 方向分解:在每个高频环带内,根据预设的初始方向数(如16)并随着尺度的增加而倍增方向数量,利用角度掩膜将频谱切割为多个“楔形(Wedge)”区域。
- 系数提取:对每个楔形区域的频谱执行逆傅里叶变换,得到对应尺度和方向的Curvelet系数。
3. 阈值收缩策略
系统采用硬阈值收缩算法对各分量系数进行处理:
- 阈值计算:基础阈值设为3倍噪声标准差。
- 尺度补偿:在第1尺度(粗糙尺度)上增加阈值至4倍噪声标准差,以增强对基础低频干扰的抑制。
- 系数过滤:将绝对值低于阈值的系数置零,保留代表图像边缘的高幅值系数。
4. 逆变换重构
去噪后的系数通过以下逻辑还原图像:
- 对处理后的每一组系数块进行FFT变换并映射回其原始频域位置。
- 将所有尺度和方向的频域分量进行线性累加。
- 执行全局逆FFT变换,并提取实部得到重构后的去噪图像。
5. 指标计算与评估
系统内置了评估函数,通过计算原始图像与处理后图像之间的像素均方差,得出PSNR值,用以定量衡量去噪系统的保真度。