1. 课程导入与工程全景

医学影像预处理与标准化,指的是在影像进入诊断阅读、定量分析或机器学习模型之前,对原始 DICOM 数据所做的一整套工程化处理:包括格式解析与元数据校验、灰度归一化、重采样与几何对齐、去噪与偏置场校正、强度标准化、掩膜与裁剪、以及最终以可复现的方式输出为 NIfTI、NPZ 或张量格式。它的目标不是"让图像更好看",而是让不同设备、不同中心、不同时间采集的影像,在同一套数值与几何约定下变得可比、可算、可复现。

要理解这门课的位置,可以把一条典型的临床与科研 pipeline 拆成五段:采集 → 预处理与标准化 → 建模/分析 → 评估与验证 → 归档与复用。预处理处在第二段,却决定了后面三段的成败。原始 DICOM 里,同一台 CT 的 HU 值有物理意义,但 MRI 的灰度是任意的;不同扫描仪的层厚、像素间距、方向余弦、窗宽窗位、甚至患者体位标记都可能不同。如果这些差异不在这里被消除,模型学到的往往是"哪台机器拍的",而不是"病灶长什么样"。

医学影像 pipeline 全景与预处理的位置 ① 采集 CT / MRI / PET / US ② 预处理与标准化 本课程核心 ③ 建模 / 分析 分割·检测·组学 ④ 评估与验证 Dice·AUC·ICC ⑤ 归档与复用 PACS / 数据湖 预处理内部关键环节 DICOM 解析 元数据·方向余弦 几何重采样 1×1×1 mm 等距 去噪 / 偏置场 N4·高斯·中值 强度标准化 Z-score·百分位 掩膜与裁剪 颅骨剥离·ROI 格式输出 NIfTI·NPZ·张量 典型失败案例(预处理缺失或错误导致) ✗ 未做 HU 窗宽窗位归一化 → 模型把"扫描协议差异"当成病灶特征 ✗ 各向异性层厚未重采样 → 3D 卷积核在 Z 方向感受野失真,分割边界锯齿 ✗ MRI 未做 N4 偏置场校正 → 同一组织灰度随位置漂移,阈值分割失效 ✗ 方向余弦未对齐 → 左右脑翻转,训练集与测试集标签错位 工程目标:可比 · 可算 · 可复现 可比:跨设备/跨中心/跨时间的影像在同一数值与几何约定下对齐 可算:像素间距、方向、强度范围统一,算法输入维度与分布稳定 可复现:每一步参数、版本、随机种子可记录,结果可回溯、可审计

上图中,预处理内部六个环节并非必须全部执行,而是要根据模态与任务取舍。例如 CT 肺结节检测通常保留 HU 并做窗宽窗位截断,而 MRI 脑肿瘤分割则更依赖 N4 偏置场校正与 Z-score 标准化。判断依据是:该步骤是否消除了与任务无关的变异,同时保留了与任务相关的信号。

一个可执行的最小预处理示例

下面以单例脑部 MRI 为例,给出一个可运行的最小预处理片段。示例参数为教学假设值,实际使用时应根据数据统计调整。

import nibabel as nib
import numpy as np
from scipy.ndimage import zoom

img = nib.load("sub-01_T1w.nii.gz")
data = img.get_fdata().astype(np.float32)
zooms = img.header.get_zooms()[:3]          # 例如 (1.0, 1.0, 3.0)

# 1) 重采样到 1×1×1 mm 等距
target = (1.0, 1.0, 1.0)
factors = [z / t for z, t in zip(zooms, target)]
data_iso = zoom(data, factors, order=1)

# 2) 百分位裁剪 + Z-score 标准化
p1, p99 = np.percentile(data_iso, [1, 99])
data_clip = np.clip(data_iso, p1, p99)
data_norm = (data_clip - data_clip.mean()) / (data_clip.std() + 1e-8)

print("原始尺寸:", data.shape, "重采样后:", data_iso.shape)
print("标准化后均值/标准差:", data_norm.mean(), data_norm.std())

运行后应观察三个量:重采样后的体素尺寸是否接近 1×1×1 mm;标准化后均值是否接近 0、标准差是否接近 1;以及裁剪是否去除了极端亮斑(如脂肪或伪影)。若标准差仍远大于 1,说明数据中存在未处理的强偏置场或异常值,需要回到 N4 或更稳健的裁剪策略。

工程习惯:把预处理写成可配置的 pipeline 函数,而不是散落在 notebook 里的临时代码。每个步骤记录输入形状、输出形状、关键参数与耗时,便于在数据量增大时定位瓶颈,也便于在结果异常时逐段回放。
常见误区:把"标准化"等同于"归一化到 0–1"。对 CT 而言,HU 本身具有物理意义,强行归一化会破坏绝对密度信息;对 MRI 而言,灰度无绝对意义,才需要 Z-score 或直方图匹配。先判断模态,再决定标准化策略。

本课程后续将围绕这条 pipeline 逐段展开:从 DICOM 元数据与几何约定,到重采样、去噪、偏置场校正、强度标准化、掩膜与裁剪,再到批处理、版本管理与质量检查。每一节都会给出可运行的代码、可观察的中间结果与判断依据,使读者不仅能"跑通",更能"跑对"。