用途:pydicom 是用于读写和修改 DICOM(医学数字成像与通信)文件的纯 Python 库,可访问元数据标签并以 NumPy 数组形式获取像素数据,覆盖 CT、MRI、X 射线、超声等模态。
主要能力:读取 DICOM 文件与元数据(患者信息、检查参数、成像设置);提取像素数据用于分析或可视化;转换为 PNG/JPEG/TIFF 等标准格式;通过删除 PHI 标签实现匿名化;修改或新增元数据标签;从零创建 DICOM 文件(把 NumPy 数组封装为 DICOM);将 CT/MRI 序列按空间位置排序并堆叠为 3D 体积数组;提取多帧(cine/视频)DICOM 帧。
依赖与安装:需要 pydicom、numpy、pillow。压缩传输语法需可选编解码器:pylibjpeg + pylibjpeg-libjpeg(JPEG)、pylibjpeg-openjpeg(JPEG 2000)、python-gdcm(格式覆盖最全)。安装命令:pip install pydicom numpy pillow;pip install pylibjpeg pylibjpeg-libjpeg;pip install pylibjpeg-openjpeg;pip install python-gdcm。
使用方式:用 pydicom.dcmread 读取文件,可通过属性名或 (group, element) 标签号访问元素,用 getattr 安全取值;ds.pixel_array 获取 NumPy 数组;apply_modality_lut 做 CT 的 HU 重标定,apply_voi_lut 做显示窗宽窗位,也可手动 np.clip 加窗;convert_color_space 处理 YBR 到 RGB;改标签后 ds.save_as 保存;用 generate_uid 替换 Study/Series/SOP Instance UID;创建文件时按需设置 FileMetaDataset 与必需属性并把数组写入 PixelData。
适用场景:医学影像数据整理与元数据批量导出(如转 CSV)、可视化与格式转换、去标识化研究数据准备、CT/MR 序列三维重建前处理。
限制与替代:全切片病理图像(SVS、NDPI)应改用 histolab-wsi-processing,NIfTI 神经影像(.nii/.nii.gz)应改用 nibabel;访问压缩像素前必须安装对应传输语法处理库,RLE 无损为内置支持。其余未提供的信息暂未说明。