MatlabCode

本站所有资源均为高质量资源,各种姿势下载。

您现在的位置是:MatlabCode > 资源下载 > 一般算法 > 基于Radon变换的SR-CT断层图像重建系统

基于Radon变换的SR-CT断层图像重建系统

资 源 简 介

本项目是一个基于MATLAB平台开发的同步辐射计算机断层扫描(SR-CT)数据处理与图像重建系统。该项目的主要功能是利用计算机断层成像的数学基础——Radon变换及其逆变换,实现从多角度投影数据到物体内部横断面图像的精确重建。具体实现流程包括:首先,系统能够读取SR-CT实验获取的原始投影序列图像或生成的模拟体模图像;其次,利用Radon变换原理构建正弦图(Sinogram),模拟平行束X射线穿过物体时的投影过程;核心部分是应用逆Radon变换(iradon),结合滤波反投影(FBP)算法,通过Ram-Lak、Shepp-Logan或Cosine等不同的频域滤波器来抑制星状伪影并恢复图像细节。此外,程序还包含了图像预处理模块,用于去噪和旋转中心自动校正,以及结果分析模块,用于计算重建图像与原始图像之间的均方误差(MSE)及峰值信噪比(PSNR),直观评估重建质量。该系统适用于材料微观结构分析、生物医学成像等领域的无损检测数据处理。

详 情 说 明

基于Radon变换的SR-CT断层图像重建系统

项目简介

本项目是一个基于MATLAB开发的同步辐射计算机断层扫描(SR-CT)数据处理与图像重建仿真系统。该系统利用数学上的Radon变换及其逆变换原理,模拟了从物体横断面到投影数据的生成过程,并实现了利用不同滤波器的反投影算法(FBP)将投影数据还原为横断面图像的功能。系统内置了图像质量评估模块和详细的可视化分析界面,适用于理解CT成像原理、测试重建算法性能以及进行无损检测数据处理的模拟实验。

功能特性

  • 体模生成模拟:自动生成标准的Modified Shepp-Logan体模,用于模拟该分辨率下的物体横断面,作为“金标准”图像。
  • 正向投影仿真 (Radon变换):模拟平行束X射线在0到179度范围内的扫描过程,生成正弦图(Sinogram)。
  • 噪声模拟:在投影数据中添加高斯白噪声(强度系数0.02),以模拟实际SR-CT实验中可能受到的电子噪声或光子统计噪声影响。
  • 多算法图像重建:基于滤波反投影(FBP)算法,实现了三种不同频域滤波器的重建效果对比:
* Ram-Lak滤波器:保留高频信息,分辨率高但对噪声敏感。 * Shepp-Logan滤波器:在频域进行平滑加窗,抑制高频噪声。 * Cosine滤波器:提供更强的平滑效果。
  • 图像质量量化评估:自动计算重建图像(Shepp-Logan结果)与原始图像之间的均方误差(MSE)和峰值信噪比(PSNR)。
  • 多维度可视化分析:通过2x3的图表布局,直观展示原始图、带噪正弦图、不同滤波器的重建结果、误差分布图以及中心剖面线对比。

系统要求

  • 软件环境:MATLAB R2016a 或更高版本。
  • 工具箱依赖:Image Processing Toolbox (图像处理工具箱) —— 用于支持 phantom, radon, iradon 等核心函数。

使用方法

  1. 启动MATLAB环境。
  2. 将工作目录切换至项目所在文件夹。
  3. 直接运行主函数。
  4. 程序将在控制台输出初始化信息及重建质量指标(MSE和PSNR),并弹出一个包含六幅子图的窗口展示分析结果。

---

代码实现逻辑与算法分析

该系统的核心逻辑封装在单一的主流程函数中,具体实现步骤如下:

1. 参数设置与环境初始化

程序首先清理工作区(clc, clear, close all)以确保无干扰运行。随后定义了关键仿真参数:
  • 图像分辨率:设置为 256x256 像素。
  • 扫描角度:定义了 theta 向量,范围覆盖 0度至179度,步长为1度,模拟180个投影角度。

2. 输入数据生成 (Phantom)

利用MATLAB内置的 phantom 函数生成 'Modified Shepp-Logan' 头部模型。这一步模拟了SR-CT中待扫描物体的理想横断面密度分布,作为后续计算重建误差的参考基准。

3. 正向过程:Radon变换与噪声添加

  • Radon变换:调用 radon 函数对原始图像进行离散Radon变换。该函数计算图像矩阵在指定角度 theta 下的投影,返回投影数据矩阵(即正弦图) sinogram 和径向坐标 xp
  • 噪声注入:为了更贴近实际物理实验,程序构造了高斯白噪声矩阵,其强度为最大投影值的2%,并叠加到原始正弦图上,生成 sinogram_noisy

4. 逆向过程:图像重建 (FBP算法)

利用 iradon 函数实现滤波反投影算法。为了对比滤波器性能,代码中分别执行了三次重建:
  • Ram-Lak:使用线性插值和Ram-Lak滤波器。此结果边缘最锐利,但图像中的颗粒噪声也最明显。
  • Shepp-Logan:本项目的主要评估对象,使用Shepp-Logan滤波器平衡了分辨率与降噪需求。
  • Cosine:使用余弦窗函数,进一步平滑图像。

5. 后处理与质量评估

  • 数值修正:对Shepp-Logan重建结果执行 max(0, ...) 操作,去除因吉布斯效应或计算误差产生的负值,符合X射线吸收系数非负的物理事实。
  • 误差计算:计算原始图像与修正后的Shepp-Logan重建图像之间的绝对差值矩阵,生成 error_map
  • 指标计算:通过辅助函数 calculate_metrics 计算 MSE 和 PSNR。其中 PSNR(峰值信噪比)是衡量重建质量的关键指标,数值越高代表重建图像失真越小。

6. 结果可视化

程序创建一个2行3列的绘图窗口,详细展示以下内容:
  1. 原始图像:标准的Shepp-Logan体模。
  2. 带噪正弦图:使用 'hot' 热力图展示的正向投影数据,横轴为角度,纵轴为径向位置。
  3. Ram-Lak重建:展示高频保留较多的重建结果。
  4. Shepp-Logan重建:展示综合性能较好的重建结果,并在标题中标注了计算出的PSNR值。
  5. 误差分布图:通过 'jet' 彩色映射展示重建图像与原始图像的差异,蓝色代表低误差,红色代表高误差。
  6. 剖面线对比:提取图像中心水平行的数据,在同一坐标系下绘制原始值(蓝实线)和重建值(红虚线)的波形图,直观反映边缘拟合程度和内部平滑度。

关键函数说明

  • radon(I, theta): 计算图像矩阵沿指定方向的投影,模拟X射线穿过物体的衰减积分。
  • iradon(R, theta, interp, filter, ...): 执行逆Radon变换。本系统利用其内置的FBP算法,将一维投影数据反投影回二维图像空间。
  • imagesc(...): 用于显示具有缩放颜色的图像数据,配合 colormapcolorbar 实现数值的可视化。
  • calculate_metrics(img1, img2): 自定义的辅助函数,用于计算两幅图像之间的均方误差和峰值信噪比,是量化评估重建算法精度的工具。