基于SRAD算法的超声图像去噪处理系统
项目介绍
本项目是一款基于MATLAB环境开发的医学超声图像去噪系统。系统核心采用了斑点各向异性扩散算法(Speckle Reducing Anisotropic Diffusion, SRAD)。该算法不仅继承了传统各向异性扩散滤波器在平滑噪声的同时保持边缘的特性,更针对超声图像特有的乘性斑点噪声(Speckle Noise)进行了改进。通过对图像局部统计特征的建模,该系统能够显著提升医疗超声影像的清晰度,为后续的临床辅助分析和图像分割提供高质量的基础数据。
功能特性
- 智能斑点噪声抑制:专门针对相干成像系统产生的乘性噪声设计,优于传统的均值滤波或中值滤波。
- 边缘自适应保持:利用瞬时变异系数(ICOV)识别图像特征。在图像边缘和细节区域降低扩散强度,防止图像模糊;在均匀背景区域增强扩散强度,彻底平滑噪声。
- 自动化处理流程:支持用户交互式选择待处理图像,具备自动灰度化处理、数据归一化以及迭代效果的实时监控功能。
- 全方位的质量评价:系统内置了峰值信噪比(PSNR)、均方误差(MSE)演变曲线、对比度噪声比(CNR)以及基于Sobel算子的边缘保持性能评估指标。
系统要求
- 软件平台:MATLAB R2016a 或更高版本。
- 硬件要求:标准PC配置,建议内存4GB以上。
- 依赖组件:无需第三方工具箱,标准MATLAB环境即可运行。
系统功能实现细节与逻辑分析- 环境初始化与图像预处理
系统启动后会执行环境清理,并通过图形化对话框允许用户选择图像文件。若用户取消选择,系统将调用内置的标准测试图进行演示。输入的图像会统一转换为双精度浮点型并进行归一化处理(映射至0-1区间),确保数值计算的稳定性。如果是彩色图像,系统会自动将其转换为灰度图。
- 斑点噪声模拟
为了验证算法的有效性,系统在原始图像中注入了符合超声成像统计特性的乘性斑点噪声。噪声模型为 J = I + n*I,其中n是均值为0的随机噪声。
- 核心迭代计算模型
SRAD算法的实现通过多轮离散化数值迭代完成,单次迭代包含以下关键步骤:
- 差分计算:系统在每个像素点计算北、南、西、东四个方向的差分,捕捉局部梯度的方向性。
- 梯度模方与拉普拉斯算子计算:利用四向差分结果求得局部梯度的幅值和二阶导数近似值。
- 瞬时变异系数(ICOV)求解:根据公式计算图像局部的方差与均值之比。这是SRAD的核心,它能够反映图像的局部异质性。
- 扩散系数映射:应用非线性函数将ICOV映射为扩散系数。系统引入了随迭代次数衰减的参考系数q0,以确保随着迭代进行,算法能更加细致地锁定边缘。
- 图像更新:基于散度方程的离散化形式,结合步长参数对图像像素值进行增量更新。
- 参数控制说明
- 迭代次数(iter_num):默认为50次,平衡了去噪效果与计算时间。
- 积分步长(delta_t):设为0.05,确保数值解法的稳定性,避免产生伪影。
- 软阈值参数(rho):用于控制参考变异系数的衰减速度,直接影响对边缘细节的保留程度。
- 结果可视化与评价
- 动态收敛评估:系统实时记录每轮迭代后的均方误差(MSE),并绘制演变曲线,直观展示算法的收敛过程。
- 多维对比视图:系统生成对比界面,同步显示原始图、噪声图、去噪结果图,并在标题中直接标注PSNR分值。
- 边缘保持验证:通过对去噪前后的图像分别执行Sobel边缘检测,直观展示算法在滤除噪声的同时,是否完整保留了图像的解剖结构轮廓。
- 临床指标模拟:在图像中心区域提取目标区域(ROI)与背景区域,计算对比度噪声比(CNR),用于评估图像对于病灶检测的增益。
使用方法- 在MATLAB中运行主程序脚本。
- 在弹出的文件选择框中搜索并选定需要处理的超声图像文件(支持JPG、PNG、BMP、TIF格式)。
- 程序将自动开始迭代处理,命令行窗口会实时显示处理进度及耗时。
- 处理完成后,系统将自动弹出两个图像窗口:一个展示各阶段去噪结果与性能曲线,另一个展示边缘保持对比效果。
- 相关的定量指标(PSNR、CNR等)将在MATLAB命令行视窗中打印输出。