4. 图像坐标系与空间方向标准化

在医学影像工程中,同一套 DICOM 序列里往往同时存在三套彼此关联的坐标描述:体素坐标(i, j, k)描述像素在矩阵中的行列层位置,患者坐标(x, y, z)描述该点在扫描仪/患者解剖空间中的物理位置,世界坐标则是在多模态配准、导航或可视化场景中统一各设备、各序列的公共参考系。预处理阶段若不能把这三者关系理清,后续的配准、重采样、ROI 提取和模型训练都会出现方向翻转、左右错位或层间错位等隐蔽错误。

三套坐标系的定义与转换链

体素坐标是离散索引,通常以 (0,0,0) 表示矩阵第一个体素,i 沿行方向、j 沿列方向、k 沿层方向。患者坐标是连续物理坐标,单位为毫米,由 DICOM 的 Image Position (Patient)(0020,0032)、Image Orientation (Patient)(0020,0037)、Pixel Spacing(0028,0030)和 Slice Thickness / Spacing Between Slices 共同确定。世界坐标则是在配准或显示时引入的公共坐标系,例如以某次参考扫描或标准模板(如 MNI 空间)为基准。

从体素坐标到患者坐标的映射可写成仿射变换:

P_patient = O + D · S · [i, j, k]^T

其中:
O  = Image Position (Patient),即首层左上角体素中心在患者坐标中的位置
D  = 3×3 方向矩阵,列向量分别为行方向、列方向、层方向在患者坐标中的单位向量
S  = diag(Δi, Δj, Δk),即列间距、行间距、层间距

方向矩阵 D 的每一列都是单位向量,且通常两两正交。若 D 为单位矩阵,说明图像轴与患者坐标轴完全对齐;若 D 出现负值或非对角元素,说明扫描存在倾斜、翻转或旋转。原点 O 决定图像在患者空间中的绝对位置,间距 S 决定体素物理尺寸。三者共同构成完整的空间描述,缺一不可。

体素坐标 → 患者坐标 → 世界坐标 转换链与方向矩阵作用 体素坐标 (i, j, k) 离散索引,整数 i: 行方向 j: 列方向 k: 层方向 患者坐标 (x, y, z) 连续物理坐标,mm 由 DICOM 标签确定 原点 O + 方向 D + 间距 S 与扫描仪/患者解剖对应 世界坐标 (X, Y, Z) 公共参考系 多模态配准基准 如 MNI、设备坐标系 统一显示与导航 仿射变换 O + D·S·[i,j,k] 配准矩阵 T_world←patient 方向矩阵 D 的列向量含义(以患者坐标轴为参考) 第1列:行方向单位向量 对应 i 增加方向 第2列:列方向单位向量 对应 j 增加方向 第3列:层方向单位向量 对应 k 增加方向 空间标准化关键操作 统一原点 O 对齐首层位置 统一间距 S 重采样到各向同性 统一方向 D 重定向到标准轴 验证一致性 检查左右/前后/头脚

方向矩阵与原点、间距的统一

方向矩阵 D 是空间标准化的核心。以常见的轴位扫描为例,若 D 的三列分别为 (1,0,0)、(0,1,0)、(0,0,1),则 i 沿患者 X 轴(通常为左右方向)、j 沿 Y 轴(前后方向)、k 沿 Z 轴(头脚方向)。但实际扫描中,由于机架倾斜或患者摆位,D 可能变为 (0.98, 0.17, 0)、(-0.17, 0.98, 0)、(0, 0, 1) 这类含旋转分量的形式。此时若直接按索引读取体素,就会把倾斜方向误认为标准解剖方向。

统一原点的做法是:选定一个参考层(如第一层或中间层),将其 Image Position (Patient) 作为基准,其余层通过层间距沿层方向向量累加得到各自原点。若原始层间距不均匀,需要先插值到均匀网格,再重新计算每层原点。统一间距则通过重采样实现:根据目标间距 Δi'、Δj'、Δk' 建立新的体素网格,对每个新体素中心用三线性插值从原图像取值。例如原始层间距为 5 mm,目标为 1 mm,则层方向需要插值出 5 倍数量的新层。

统一方向 D 通常称为“重定向”(reorientation)。目标是把 D 变为单位矩阵或标准方向矩阵,使 i、j、k 分别对应患者坐标的固定轴。实现方式是构造一个旋转矩阵 R,使得 D' = R · D 为单位矩阵,然后对图像做相应的空间变换。重定向后,图像的左右、前后、头脚方向与标准解剖方向一致,便于后续配准和显示。

实际处理流程与示例参数

以下以一个假设的头部 CT 序列为例,说明空间标准化的关键步骤。假设原始序列有 120 层,层间距 2.5 mm,Pixel Spacing 为 [0.7, 0.7] mm,Image Orientation (Patient) 为 [1, 0, 0, 0, 1, 0],Image Position (Patient) 首层为 [-175, -175, -300]。目标是将层间距统一为 1 mm,方向保持标准轴位。

  1. 读取空间标签:从 DICOM 头中提取 Image Position、Image Orientation、Pixel Spacing、Slice Thickness、Spacing Between Slices。确认方向矩阵 D 的三列分别为 (1,0,0)、(0,1,0)、(0,0,1),即标准轴位。
  2. 计算各层原点:第 k 层原点 O_k = O_0 + k · Δk · d3,其中 d3 为层方向单位向量 (0,0,1),Δk 为层间距 2.5 mm。因此第 0 层 z = -300,第 1 层 z = -297.5,依此类推。
  3. 重采样到目标间距:目标层间距 1 mm,新层数 = (120-1) × 2.5 / 1 + 1 ≈ 299 层。对每个新层位置 z',找到原始相邻两层,按距离加权插值。行、列方向保持 0.7 mm 不变,若需各向同性可同时将行列重采样到 1 mm。
  4. 更新空间标签:新序列的 Image Position 首层仍为 [-175, -175, -300],但 Spacing Between Slices 改为 1 mm,层数改为 299。方向矩阵保持不变。
  5. 验证方向一致性:检查新序列的左右、前后、头脚标记是否与原始一致。可在冠状面和矢状面重建中观察鼻尖、枕骨、顶骨的位置关系,确认没有翻转。
判断依据:重定向后,若在轴位图像上“图像左侧”对应患者右侧,且头脚方向与 DICOM 的 Patient Position 一致,则方向标准化正确。若出现左右互换,通常是方向矩阵的符号处理错误,需要检查 D 的行列式是否为 +1(右手系)。

常见问题与排障

空间标准化中最常见的错误有三类。第一类是方向矩阵未归一化,导致体素物理尺寸计算错误;第二类是层间距与 Slice Thickness 混用,尤其在层间距不等于层厚时,重采样后层数计算偏差;第三类是多模态数据各自独立重定向后,世界坐标未统一,配准结果出现整体偏移。排障时建议先打印每套数据的 D、O、S 三个参数,对比其行列式和单位向量长度,再检查重采样后的原点序列是否等间隔。

参数 DICOM 标签 作用 常见错误
原点 O (0020,0032) 首层左上角体素中心位置 误用图像中心或角点
方向 D (0020,0037) 行、列、层方向单位向量 未归一化或行列式不为 +1
间距 S (0028,0030)、(0018,0050) 体素物理尺寸 层间距与层厚混用

完成上述统一后,体素坐标、患者坐标和世界坐标之间的转换关系就变得明确且可复现。后续的配准、重采样和 ROI 提取都可以在统一的空间框架下进行,避免因方向或原点不一致引入的隐性误差。