CT扇束等角滤波反投影(FBP)重建算法
项目介绍
本项目是一个基于MATLAB实现的计算机断层扫描(CT)图像重建系统。其核心聚焦于“扇束等角扫描”几何结构下的滤波反投影(Filtered Back-Projection, FBP)算法。通过模拟X射线的产生、穿过物体(线积分计算)以及后期的数学重建过程,完整展示了从物理投影到数字图像恢复的端到端逻辑。
功能特性
- 高精度几何模拟:严格遵循等角扇束扫描模型,支持自定义射线源到中心距离(Dso)和射线源到探测器距离(Dsd)。
- 正向投影仿真:利用图像内插技术模拟X射线在离散图像矩阵中的衰减过程,生成符合物理规律的正轴图(Sinogram)。
- 多级滤波处理:集成了Ram-Lak(Ramp)滤波器并结合Hamming窗函数,有效抑制重建过程中的高频噪声并消除边缘伪影。
- 空间加权反投影:针对扇束几何特性,实现了基于距离平方反比(1/L2^2)的加权算法,确保重建图像的几何保真度和强度准确性。
- 多维度性能评估:提供峰值信噪比(PSNR)、均方误差(MSE)、残差矩阵分析以及中心剖面线对比功能。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 工具箱要求:需要安装 Image Processing Toolbox(用于生成标准 Shepp-Logan 头模型及执行高级插值)。
算法实现逻辑
本项目的核心算法流程共分为五个阶段,各阶段逻辑如下:
1. 几何参数初始化
设置重建矩阵的大小(默认256x256)以及物理几何参数。通过射线源到旋转中心的距离确定扫描半径,并根据物体尺寸自动计算检测器扇区的张角(gamma_max)。定义了角采样间隔和旋转步长,构建出完整的扫描坐标系。
2. 预设模型生成
使用标准 Modified Shepp-Logan 头模型作为仿真源图像。该模型包含了不同灰度值的椭圆,用以模拟人体组织的X射线吸收系数。
3. 扇束正向投影模拟
该模块遍历所有旋转角度(Beta)和探测器等角采样点(Gamma)。通过坐标变换将扇束参数映射为平行束等效参数(rho, theta),并在源图像上执行线积分。该过程通过二维线性插值提取射线路径上的像素值并累加,最终生成的正弦图反映了投影强度随角度的变化。
4. 滤波反投影重建
这是算法的核心模块,包含四个具体步骤:
- 预加权:根据等角扇束公式,对原始采样数据乘以 Dso*cos(gamma) 进行修正,补偿扇绕束几何产生的采样不均。
- 滤波器设计:在频域构建 Ram-Lak 滤波器,并叠加 Hamming 窗函数以平滑频谱。
- 频域卷积:对加权后的投影数据执行快速傅里叶变换(FFT),与滤波器频谱相乘后进行逆变换(IFFT),提取图像特征。
- 加权反投影:将滤波后的数据映射回笛卡尔坐标系。对于图像中每个像素点,计算其到源的距离比以及相对于中心射线的偏移角,应用 1/L2^2 的加权系数进行累加。
5. 结果校准与可视化
对重建后的浮点图像进行归一化处理和强度校正,确保其动态范围与原始图像一致。最后通过六幅图表直观展示原图、正弦图、滤波曲线、重建图、残差分布以及水平剖面强度的重合度。
实现细节分析
- 线积分算法:在模拟投影中,程序通过 persistent 变量缓存坐标网格以提高计算速度。利用 interp2 保持了射线路径采样的一致性。
- 等角采样补偿:算法明确区分了等距采样与等角采样的差异,在反投影阶段通过 atan2 函数精确计算每个像素点对应的探测器角度。
- 滤波器修正:不仅使用了标准的 Ramp 滤波,还针对扇束重建的需求,在反投影累加前通过几何权重因子解决了由于射线不平行导致的图像径向失真。
- 误差评价指标:通过对比原始剖面和重建剖面,可以清晰观察到 FBP 算法在复杂边缘处的处理能力以及在均匀区域的噪声抑制表现。