Curvelet 变换工具包 (CurveLab) 演示系统
项目介绍
本项项目是一个基于快速离散曲率波变换(FDCT)的数学工具演示库。它专注于利用包裹(Wrapping)技术实现图像的多尺度、多方向分解。与传统小波变换相比,本工具包在处理图像中的曲线边界、边缘特征时具有更高的稀疏表示效率,能够广泛应用于图像去噪、边缘增强及多尺度几何分析领域。
功能特性
- 多尺度定向分解:支持将图像分解为不同尺度的频率子带,并在中间尺度进行多角度划分。
- 高效图像去噪:通过对 Curvelet 系数执行硬阈值过滤,有效分离高频噪声并保留图像边缘。
- 边缘特征提取:利用多尺度系数的累加实现精细的图像边缘检测与增强。
- 稀疏性分析:提供系数衰减统计功能,直观展示 Curvelet 变换在表示复杂几何结构时的稀疏特性。
- 仿真重构分析:实现了从系数空间回到像素空间的反向映射,并提供 PSNR(峰值信噪比)指标评估重构质量。
使用方法
- 确保您的计算环境中已安装 MATLAB 软件。
- 将所有相关代码函数放置于同一工作目录下。
- 在 MATLAB 命令行窗口中直接运行名为
main 的主函数。 - 系统将自动生成测试图像、执行变换处理,并弹出可视化窗口展示原始图像、含噪图像、去噪结果、各向异性系数、边缘特征及稀疏性曲线。
系统要求
- 软件环境:MATLAB及其图像处理工具箱(Image Processing Toolbox)。
- 计算硬件:标准计算设备即可,支持 256x256 及以上分辨率的实时计算。
实现逻辑与算法细节
#### 1. 核心处理流程
主程序遵循以下标准化信号处理流程:
- 测试数据合成:手动构造包含圆形、斜线、矩形的 256x256 灰度图像,模拟真实的几何特征,并注入 $sigma=0.1$ 的高斯白噪声。
- 前向变换逻辑:通过二级 FFT 将图像转入频率域,依据尺度数量计算各层的方向数(采用每升两层方向数翻倍的各向异性规律)。
- 系数处理:
*
硬阈值去噪:结合噪声标准差与各分量系数的标准差,计算动态阈值。
*
边缘合成:对中间层各方向系数进行双线性插值缩放并累加,形成边缘热力图。
#### 2. 关键算法实现
*
低频处理:通过矩形窗提取频谱中心区域,执行 IFFT 得到粗尺度系数。
*
中间层处理(模拟包裹):通过坐标旋转和剪切映射,从主频率矩阵中提取楔形(Wedge)区域。每个楔形代表一个特定的角度特征。
*
高频处理:直接保留频谱残差作为最细尺度分量。
*
频率累加:通过逆旋转映射(Unwrapping),将各尺度、各方向的系数重新映射回全局频谱格点。
*
平滑与重建:在反变换过程中应用高斯滤波以减轻块效应,最后通过全局 IFFT 还原空间图像。
- 坐标采样技术:在模拟包裹过程中,利用
meshgrid 生成旋转坐标,并通过 sub2ind 动态提取频率响应,模拟了 Curvelet 变换中复杂的插值过程。
#### 3. 数学支撑工具
- 窗口函数:内置了基于 Meyer 多项式的窗口函数实现,用于生成平滑的频率空间划分权重(虽然在简化版演示中主要以硬划分和高斯滤波辅助展示)。
- 指标评估:严格遵循 MSE(均方误差)和 PSNR 公式进行量化分析,确保去噪性能的可衡量性。
关键函数功能描述
- 前向变换函数:执行底层频率域划分,生成包含各尺度系数的多级细胞数组(Cell Array)。
- 反向变换函数:执行频率域反向映射与累加,完成从变换域到空间域的信号重构。
- 包裹模拟函数:实现楔形频率区域的坐标变换与提取,是体现 Curvelet 各向异性的核心逻辑。
- 解包裹模拟函数:负责将局部各向异性特征还原至全局坐标系。
- 指标计算模块:实时输出重构误差和 PSNR 提升数值,验证算法有效性。