MatlabCode

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

您现在的位置是:MatlabCode > 资源下载 > 一般算法 > 基于简单反投影算法的图像重建系统

基于简单反投影算法的图像重建系统

资 源 简 介

该项目旨在实现并演示计算机断层扫描(CT)中最基础的重建技术——简单反投影(Simple Back Projection, SBP)。 项目核心功能包括利用拉东变换(Radon Transform)对输入的二维图像进行多角度投影采样,生成反映物体内部密度分布的正弦图(Sinogram)。 在重建阶段,系统执行反投影操作,将每一个角度下的一维投影数据沿其原始投影路径重新扩展并叠加到二维图像平面上。 通过累加所有角度的投影贡献,系统能够逐步恢复出原始物体的几何轮廓。 该功能详细展示了投影角度数量对重建质量的影

详 情 说 明

项目说明文档:基于简单反投影算法的图像重建系统

项目介绍

本项目是一个用于演示计算机断层扫描(CT)中最基础重建技术——简单反投影(Simple Back Projection, SBP)的集成演示系统。系统通过数学建模模拟了从物体投影数据(正弦图)恢复原始二维图像的全过程,旨在直观展示断层成像的基本原理,并深入分析采样频率与重建质量之间的关系。该系统不仅实现了算法核心逻辑,还提供了丰富的可视化工具,用于剖析简单反投影引起的图像模糊及特有的星状伪影现象。

功能特性

  • 标准体模生成:自动生成经典的 Shepp-Logan 头模型,作为重建的目标参考。
  • 多角度投影仿真:利用拉东变换(Radon Transform)模拟探测器采样,支持自定义角度步长以对比不同采样密度下的正弦图。
  • 纯手工实现反投影:内部构建了基于坐标旋转和线性插值的反投影算法,不依赖高级黑盒函数,完整还原物理投影路径。
  • 动态累加过程演示:实时展示投影线如何一步步在二维平面上叠加形成物体的过程,使抽象的数学计算过程可视化。
  • 多维度分析对比:包含正弦图可视化、低采样对比、图像中心剖面线对比,科学揭示 SBP 算法产生的密度分布偏差。

系统要求

  • 软件环境:MATLAB R2016a 或更高版本。
  • 必备工具箱:图像处理工具箱 (Image Processing Toolbox),用于调用拉东变换及部分图像旋转处理函数。

功能实现方案与逻辑描述

系统的执行逻辑严格遵循 CT 物理成像的逆过程,分为以下几个核心阶段:

1. 参数初始化与采样策略 系统设定原始图像矩阵为 256x256 像素。为了展示采样密度对重建的影响,设置了两组采样策略:一组为步长 45 度的极低采样率(用于捕捉星状伪影),另一组为步长 1 度的精细采样(用于观察典型模糊现象)。

2. 正弦图生成(前向投影) 系统调用 Radon 变换函数,模拟 X 射线从 0 到 179 度的旋转扫描。在该过程中,二维图像在不同方向上的积分被投影为一系列一维信号,最终排列成以投影角为横轴、探测器位置为纵轴的正弦图(Sinogram)。

3. 反投影算法核心逻辑 系统手动实现了 performSimpleBackProjection 核心函数。其逻辑如下:

  • 坐标预处理:首先建立以图像中心为原点的网格坐标系 (X, Y)。
  • 投影映射:对于每一个投影角度,利用旋转公式算出图像中每个像素点 (x, y) 对应的投影轴位置 t。计算公式为:t = x*cos(theta) + y*sin(theta)。
  • 信号叠加:由于计算出的投影位置 t 通常不为整数,系统通过线性插值从原始一维投影数据中提取精确数值,并将其沿投影方向“涂抹”回图像平面,最后将所有角度的贡献进行累加。
  • 归一化:将累加后的庞大数值映射回 0 到 1 之间,以便于图像显示和对比。
4. 结果可视化与剖面对比 系统提供了一个综合视图,将原始图像、正弦图、低采样重建、高采样重建以及中心剖面线(Profile)放在同一界面。通过比较重建图像与原始图像的中心行像素分布,可以量化观察到 SBP 产生的直方图拉升和边缘平滑现象。

5. 反投影动态演化 为了教学演示,系统包含了一个循环渲染模块。利用 imrotate 函数模拟投影平面的旋转叠加,选取典型的角度节点(如 1 个、10 个、180 个投影累加),动态展示图像从杂乱线条逐渐汇聚成物体轮廓的物理演变过程。

关键技术与现象分析

1. 点扩散函数 (PSF) 与图像模糊 系统展示了简单反投影的一个本质缺陷:其点扩散函数近似为 1/r。在代码实现中,由于没有进行任何高通过滤,低频成分被过度放大。在剖面线对比图中,可以清晰看到重建后的物体边缘比原始图像更宽、更平滑,且中心区域出现了整体的亮度抬升。

2. 星状伪影 (Star Artifacts) 当投影角度较少(如设置角度步长为 45 度)时,系统可视化结果中会出现明显的放射状条纹。这是因为有限数量的线性投影相互交叉,在未被物体覆盖的区域留下了明显的轨迹痕迹。

3. 采样的重要性 通过高低采样率的对比,系统证明了增加角度数量虽然能消除不连续的星状条纹,但无法解决 SBP 固有的模糊问题。这一结果直观地暗示了为何在实际医学 CT 中必须引入“滤波反投影 (FBP)”算法来修正频率响应。

使用方法

  1. 启动 MATLAB 并将当前路径设置为该项目文件夹。
  2. 在命令行窗口输入入口程序文件名并回车,或直接点击编辑器中的“运行”按钮。
  3. 系统将自动计算并弹出两个窗口:
* 窗口 1:全景对比分析图。观察 Sinogram 布局和不同采样率下的重建效果,重点关注剖面线的差异。 * 窗口 2:动态展示动画。观察右侧图像如何随采样角度的增加而变得清晰。
  1. 用户可以手动修改程序开头的参数(如 thetaStep)来探索不同的采样方案对重建精度的影响。