KSVD稀疏表示与图像去噪增强MATLAB工具包
项目简介
本项目是一个基于MATLAB开发的高级信号处理工具包,专注于实现K-SVD(K-奇异值分解)算法,用于图像的稀疏表示与去噪。该代码实现了一套完整的从图像分块、过完备字典训练到稀疏重构的流水线。通过从含噪图像中学习特征字典,利用信号的稀疏性剔除高斯白噪声,显著提升图像质量。
核心算法基于经典的K-SVD理论,涵盖了字典学习阶段(通过训练更新原子)和稀疏编码阶段(使用正交匹配追踪OMP),最终通过重叠分块的加权平均技术重建高质量图像。
主要功能特性
- K-SVD 字典学习:实现了基于SVD分解的迭代式字典更新算法,能够从训练样本中自适应学习出描述图像特征的过完备字典。
- 稀疏编码 (OMP):集成了正交匹配追踪(Orthogonal Matching Pursuit)算法,用于高效求解信号在字典下的稀疏系数。
- 图像去噪:针对高斯白噪声环境,利用学习到的字典对含噪图像进行稀疏分解与重构,有效去除噪声成分。
- 自动化数据处理:支持图像自动转灰度、归一化、样本随机采样以及重叠分块处理。
- 可视化评估:提供完整的可视化输出,包括原始图像、含噪图像、去噪后图像的对比,字典原子的可视化展示,以及训练过程中的收敛曲线。
- 无第三方依赖:所有核心功能(如滑窗切片、重构聚合、OMP求解)均在脚本内通过原生MATLAB代码实现,无需安装额外的工具箱。
系统要求
- MATLAB R2016a 或更高版本
- Image Processing Toolbox (推荐,用于读取图片,若无则代码会自动生成合成图像)
使用方法
直接运行主脚本 main 即可启动整个处理流程。
程序将自动执行以下步骤:
- 加载图像(默认为
cameraman.tif,若不存在则生成合成与纹理图像)。 - 添加标准差为 25 的高斯白噪声。
- 从含噪图像中提取图块并构建训练集。
- 执行 K-SVD 迭代进行字典学习。
- 利用训练好的字典对全图进行稀疏重构。
- 弹出窗口显示去噪效果、PSNR 指标、学习到的字典形态及误差收敛曲线。
算法实现与逻辑详解
本工具包的实现完全遵循 K-SVD 算法的标准流程,具体执行逻辑如下:
1. 参数初始化与数据准备
程序首先设定核心参数,包括噪声水平(Sigma=25)、图块大小(8x8)、字典大小(256个原子)、稀疏度约束(6)以及迭代次数。读取图像后将其转换为双精度灰度图,并人为叠加高斯噪声以模拟真实受噪环境。
2. 图像分块与预处理
- 滑窗取样:采用全重叠(步长为1)的方式将图像分割为大量 8x8 的小图块。
- 直流分量移除:为了更好地捕捉纹理特征,算法会计算并减去每个图块的平均值(DC分量),仅对交流分量进行字典训练。
- 训练集构建:从所有图块中随机抽取一定数量(默认最多4000个)的样本作为 K-SVD 的训练数据,以平衡训练速度与效果。
3. K-SVD 字典学习(核心循环)
进入迭代循环,交替执行以下两个步骤:
利用当前的字典,通过 OMP 算法为每个训练样本计算稀疏系数向量。该过程的目标是在固定字典的情况下,寻找能以最少原子线性组合来逼近样本的系数。
- 字典更新 (Dictionary Update):
逐个更新字典中的原子。对于第 k 个原子:
1. 找出所有使用了该原子的样本。
2. 计算去除该原子贡献后的残差误差矩阵。
3. 对误差矩阵进行 SVD(奇异值分解),取最大的奇异值及其对应的左右奇异向量。
4. 更新该字典原子为左奇异向量,并更新对应的非零系数。
*注:代码中包含了空原子处理逻辑,若某原子未被利用,将随机替换为新的数据样本以保持字典活力。*
4. 全局图像重构
字典训练完成后,进入图像恢复阶段:
- 全图编码:使用训练好的最终字典,对图像中提取的所有重叠分块进行 OMP 稀疏编码。
- 块重构:根据求解出的稀疏系数和字典还原出无噪的图块数据,并将之前移除的直流分量(DC)加回。
- 加权聚合:利用
col2im_sliding 逻辑,将所有重叠的图块放回原图位置。对于重叠区域的像素,计算其所有覆盖图块预测值的平均值,从而平滑块效应并进一步降低噪声。
关键函数分析
这是稀疏编码的核心实现。它接受字典和数据矩阵,对每一个信号向量执行正交匹配追踪。通过贪婪策略,每一步选择与当前残差相关性最大的原子,并通过最小二乘法更新系数,直到达到预设的稀疏度。
- im2col_sliding / col2im_sliding
手动实现了图像与列向量矩阵之间的转换。
im2col 负责按行按列滑动提取图块并展平为列向量;
col2im 负责执行逆过程,特别是处理了重叠区域的像素累加与计数归一化(平均),这对保证重建图像的平滑度至关重要。
用于将学习到的字典(矩阵形式)转换为可视化的拼贴图。它将 256 个原子重新排列为网格,并进行归一化处理,直观展示算法学习到的边缘、纹理等基底特征。
标准的图像质量评估函数,计算原始图像与重构图像之间的峰值信噪比(PSNR),以分贝(dB)为单位量化去噪效果。