2. 医学影像数据模态与格式解析
在医学影像预处理与标准化工程中,第一步永远不是滤波、配准或归一化,而是“把数据正确地读进来,并理解它到底是什么”。不同模态的成像物理决定了像素/体素的物理含义,不同格式的封装方式决定了工程读写时必须处理哪些元数据。若把 CT 的 HU 值当成普通灰度、把 MRI 的 12 位强度直接除以 255、把 PET 的 SUV 当原始计数使用,后续所有处理都会建立在错误前提上。本节从模态特性与格式读写两条线展开,并给出可直接落地的工程要点。
一、五种模态的像素/体素特性
CT 是定量模态。重建后像素值经标定转换为 Hounsfield 单位(HU),空气约 −1000 HU,水为 0 HU,致密骨可达 +1000 HU 以上。工程上必须读取 RescaleSlope 与 RescaleIntercept,按 HU = pixel × slope + intercept 还原,不能直接使用存储的原始整数值。CT 体素通常各向异性,如层厚 1.0 mm、层内 0.7 mm,重采样前必须明确目标间距。
MRI 是非定量模态。像素强度取决于质子密度、T1/T2 弛豫、线圈灵敏度与接收增益,同一组织在不同序列、不同设备间没有统一数值含义。因此 MRI 预处理几乎不做绝对阈值分割,而采用 Z-score 或百分位裁剪归一化。MRI 常为 16 位有符号/无符号整数,需注意 BitsStored 与 PixelRepresentation,避免符号位误读导致强度翻转。
PET 记录的是符合计数,经衰减校正、散射校正与重建后得到活动度浓度(Bq/mL)。临床常用 SUV 表达:SUV = 活动度浓度 / (注射剂量 / 体重)。工程读写时必须保留 Units、RadionuclideTotalDose、RadiopharmaceuticalStartTime、PatientWeight 等字段,否则无法复算 SUV。PET 分辨率低、噪声高,常需与 CT 配准后融合。
超声 是采集域数据,像素值对应回波幅度,经对数压缩后显示。它没有解剖坐标,探头方向、深度、增益都影响图像。超声多为 8 位或 24 位 RGB,常以 TIFF/PNG 或私有格式存储,元数据缺失严重,工程上需从文件名或采集日志补全探头与深度信息。
病理 WSI 是超高分辨率全切片图像,单张可达 10 万×10 万像素、数 GB。它以金字塔多分辨率层级存储,每层由若干 tile 组成,并配有物理分辨率(μm/pixel)与扫描仪色彩标定。WSI 的“像素”是 RGB 光学密度,预处理重点是色彩标准化(如 Macenko、Reinhard)与组织区域分割,而非灰度归一化。
二、DICOM 的工程读写要点
DICOM 是临床数据的事实标准,其核心是“标签 + 像素数据”。读取时不能只取像素矩阵,必须同时解析几何与强度元数据。一个稳健的读取流程如下:
import pydicom, numpy as np
ds = pydicom.dcmread("ct_slice.dcm")
px = ds.pixel_array.astype(np.float32)
hu = px * float(ds.RescaleSlope) + float(ds.RescaleIntercept)
spacing = [float(ds.SliceThickness),
float(ds.PixelSpacing[0]),
float(ds.PixelSpacing[1])]
origin = [float(v) for v in ds.ImagePositionPatient]
orient = [float(v) for v in ds.ImageOrientationPatient]
对于序列,必须按 ImagePositionPatient 沿法向量投影排序,而不是按文件名或 InstanceNumber 排序,否则层序可能错乱。压缩传输语法(如 JPEG2000、RLE)需确认解码库可用。此外,RescaleSlope/Intercept 在部分设备上可能逐层不同,应逐层读取而非只取首层。
三、NIfTI 与 NRRD 的坐标约定
NIfTI 用仿射矩阵把体素索引映射到世界坐标,sform 与 qform 可能不一致,工程上应优先使用 sform(当 sform_code > 0)。NIfTI 世界坐标通常为 RAS+(x 向右、y 向前、z 向上),而 DICOM 患者坐标常为 LPS,转换时需翻转 x、y 符号。NRRD 用 space directions 显式给出每轴方向向量与间距,适合各向异性与 4D 数据,读取时需检查 encoding(raw/gzip)与 endian。
四、工程落地检查清单
| 检查项 | CT | MRI | PET | 超声 | WSI |
|---|---|---|---|---|---|
| 强度还原 | slope/intercept | 位深/符号 | SUV 字段 | 对数压缩 | 色彩标定 |
| 几何信息 | Spacing/Origin | 仿射矩阵 | 与 CT 配准 | 探头/深度 | μm/pixel |
| 归一化 | 窗宽窗位 | Z-score | SUV 阈值 | 增益校正 | Macenko |
| 存储格式 | DICOM | DICOM/NIfTI | DICOM | TIFF/PNG | 金字塔 TIFF |
把上述要点固化为读取函数与元数据校验步骤,是后续重采样、配准与归一化可靠运行的前提。建议在数据入库阶段就完成模态识别、强度还原与坐标系标注,避免问题向后传递。