用途:pydicom 是纯 Python 包,用于处理医学影像标准格式 DICOM,适合读取、写入和修改 CT、MRI、X 光、超声、PET 等医学影像文件,以及提取元数据、处理像素数据、匿名化和转换图像格式。
主要能力:用 pydicom.dcmread() 读取文件得到 Dataset,可用属性或标签访问元素;通过 ds.pixel_array 获取像素数组,支持多帧图像、RGB/YBR 色彩空间转换和 VOI LUT 窗宽窗位显示;可修改、添加或删除元数据并保存;可对 PHI 标签进行匿名化;支持从零创建 DICOM 文件;可处理压缩传输语法并解压或压缩;支持 DICOM 序列和结构化报告;可按切片位置排序重建 3D 体数据。
安装:pip install pydicom;图像转换需 pillow,像素数组操作需 numpy,可视化需 matplotlib;压缩文件可能需 pylibjpeg、pylibjpeg-libjpeg、pylibjpeg-openjpeg 或 python-gdcm。
使用方式:读取后访问 ds.PatientName 等属性,用 hasattr 或 getattr 处理缺失属性;像素数据经 numpy 处理,必要时用 apply_voi_lut 做窗宽窗位;修改后 ds.save_as() 保存;匿名化可替换或删除敏感标签;创建文件需设置 file_meta、SOPClassUID、SOPInstanceUID 等必需元素。技能还提供 scripts/anonymize_dicom.py、scripts/dicom_to_image.py、scripts/extract_metadata.py 等辅助脚本。
适用场景:医学影像研究、数据共享前匿名化、DICOM 转 PNG/JPEG/TIFF、多切片体数据重建、PACS 集成等。
限制:处理压缩数据需额外依赖;大序列可能内存不足;访问不存在的标签会报 AttributeError;显示过暗或过亮需窗宽窗位调整;匿名化后应仔细核查。官方文档见 https://pydicom.github.io/pydicom/dev/。