一、CT成像原理与重建算法基础
各位同学,咱们今天聊聊CT成像的根儿。说实话,我当年刚接触这个领域时,也被一堆物理公式和数学变换搞得头大。但后来在项目里摸爬滚打几年,发现核心其实就那么几件事——X射线怎么穿透人体、数据怎么采集、图像怎么算出来。
嗯,咱们一步步来。
1.1 X射线物理基础
CT成像的源头,就是X射线。它本质上是一种高能电磁波,波长极短,能穿透人体组织。但穿透过程中,射线强度会衰减——这就是我们获取信息的依据。
衰减规律可以用一个简单公式描述:
I = I₀ · e^(-μ·d)
其中:
- I₀:入射X射线强度
- I:穿透后的强度
- μ:组织的线性衰减系数(关键参数)
- d:穿透路径长度
不同组织对X射线的衰减能力不同。骨骼的μ值高,空气的μ值低。这就是CT能区分骨骼、软组织、脂肪和空气的物理基础。
核心要点:CT图像本质上是一张衰减系数μ的分布图。每个像素的值代表该位置组织对X射线的吸收能力。
我在项目中遇到过一个问题:X射线管电压的选择直接影响图像质量。电压太低,穿透力不足;电压太高,软组织对比度下降。我个人习惯是,腹部扫描用120kV,头部用140kV,胸部用100kV左右。当然,具体还得看设备型号和临床需求。
1.2 CT数据采集几何
数据怎么采?说白了,就是X射线管和探测器绕着人体转一圈,从各个角度获取投影数据。
常见的采集几何有三种:
- 平行束几何:最理想化的模型,射线相互平行。实际中很少用,但数学推导方便。
- 扇束几何:X射线呈扇形发散。这是第三代CT的典型结构,探测器阵列呈弧形排列。
- 锥束几何:X射线呈锥形发散。用于螺旋CT和C臂CT,一次扫描覆盖范围更大。
你想想看,为什么实际设备不用平行束?因为要产生平行束,需要准直器把大部分射线挡掉,剂量利用率太低。扇束和锥束能充分利用射线,扫描速度也更快。
避坑指南:我曾经在移植重建算法时,忽略了扇束到平行束的重排步骤,结果重建出来的图像全是伪影。后来花了三天才找到问题——几何参数没对齐。记住:采集几何决定了重建算法的输入格式,这一步错了,后面全白搭。
数据采集过程中,每个角度下探测器记录一组投影值。假设旋转一周采集N个角度,每个角度有M个探测器通道,那么原始数据就是一个N×M的矩阵。这个矩阵,就是重建算法的输入。
1.3 滤波反投影(FBP)算法原理
FBP是CT重建的经典算法,也是目前临床设备上用得最多的方法。它的核心思想很简单:把每个角度的投影数据“涂抹”回图像空间,然后叠加起来。
但直接反投影会得到模糊的图像。为什么?因为每个投影点贡献的是一条线,所有线叠加后,低频成分被过度增强,高频细节丢失。
解决办法就是——先滤波,再反投影。
FBP的数学流程:
1. 对每个角度的投影数据做傅里叶变换
2. 乘以斜坡滤波器(Ram-Lak滤波器)
3. 做逆傅里叶变换得到滤波后的投影
4. 将滤波后的投影反投影到图像空间
5. 对所有角度重复步骤1-4,累加结果
斜坡滤波器是关键。它的频率响应是|ω|,能补偿低频过增强的问题。但实际应用中,我们通常会对高频做截断或加窗,因为真实数据里有噪声,直接放大高频会引入大量噪点。
经验之谈:我建议初学者先理解平行束FBP,再扩展到扇束和锥束。平行束的数学推导最干净,理解了它,其他几何只是坐标变换的问题。
FBP的优点是速度快、算法稳定。在嵌入式系统上,如果使用定点数优化和查表法,单张512×512的图像重建可以做到毫秒级。但缺点也很明显——对噪声敏感,低剂量扫描时图像质量下降明显。
1.4 迭代重建算法简介
迭代重建是近年来热门的方向。它不直接求解解析解,而是通过反复迭代逼近最优解。
基本思路:
- 先猜一张初始图像(比如全零或FBP结果)
- 模拟前向投影,得到估计的投影数据
- 比较估计投影和实际测量投影,计算误差
- 根据误差更新图像
- 重复步骤2-4,直到收敛
数学上,迭代重建可以建模为求解一个优化问题:
min ||Ax - p||² + λ·R(x)
其中:
- A:系统矩阵(描述投影几何)
- x:待重建的图像
- p:实际测量的投影数据
- R(x):正则化项(抑制噪声、保持边缘)
- λ:正则化参数
迭代重建的优势很明显:
- 能处理不完备数据(比如有限角度扫描)
- 可以加入先验知识(比如解剖结构约束)
- 低剂量条件下图像质量优于FBP
但代价是计算量大。一次迭代相当于一次FBP的计算量,而通常需要几十次迭代才能收敛。在嵌入式系统上,这是个不小的挑战。
注意:迭代重建的参数调优是个坑。正则化参数λ选大了,图像过于平滑;选小了,噪声压不住。我曾经在一个项目中,花了整整两周调参,最后发现是系统矩阵A的建模精度不够,导致迭代不收敛。所以,先确保前向投影模型准确,再谈优化。
目前,主流CT厂商都在推迭代重建技术。GE的ASiR、西门子的SAFIRE、飞利浦的iDose,本质上都是迭代重建的工程化实现。在嵌入式平台上,通常会用GPU或FPGA加速,把迭代时间从分钟级压缩到秒级。
小结
这一章我们覆盖了CT成像的四个基础模块:
| 模块 | 核心内容 | 嵌入式关注点 |
|---|---|---|
| X射线物理 | 衰减规律、组织对比度 | 管电压控制、剂量管理 |
| 采集几何 | 平行束、扇束、锥束 | 几何参数校准、数据重排 |
| FBP算法 | 滤波+反投影、斜坡滤波器 | 定点数优化、查表加速 |
| 迭代重建 | 优化模型、正则化、收敛性 | 硬件加速、参数调优 |
下一章,我们会深入嵌入式系统的硬件选型,聊聊怎么用FPGA和GPU把重建算法跑起来。嗯,那才是真正有意思的部分。