SuperAPI AI 工具集

pydicom

编程与开发

查看项目

更新于 10-15 21:39

技能介绍

用途:pydicom 是处理 DICOM 标准医学影像文件的纯 Python 包,本技能提供读取、写入与操作 DICOM 文件的指导,覆盖像素数据、元数据与压缩格式。适用 CT、MRI、X 光、超声、PET 等影像文件,元数据提取与修改,像素数据提取与处理,匿名化,转标准图像格式,解压,序列与结构化报告,多切片体数据重建,以及 PACS 集成。

安装:uv pip install pydicom;常见依赖 uv pip install pillow(图像转换)、numpy(像素数组操作)、matplotlib(可视化)。压缩文件另需 uv pip install pylibjpeg pylibjpeg-libjpeg pylibjpeg-openjpeg 或 uv pip install python-gdcm。

主要能力:用 pydicom.dcmread() 读取并返回 Dataset,以 ds.PatientName 或 ds[0x0010,0x0010] 访问元素,用 hasattr/getattr 处理缺失属性;通过 ds.pixel_array 获取像素数组,结合 apply_voi_lut 做窗宽窗位显示,处理 RGB、YBR_FULL 及多帧图像;可用 PIL 将像素归一化后保存为 PNG 等;可修改、新增或删除元素并 save_as() 保存;可按标签列表替换或删除 PHI 实现匿名化;可从零构建 FileDataset 并写入 PixelData;支持 ds.decompress() 与 compress() 处理压缩传输语法,如 ExplicitVRLittleEndian、JPEGBaseline8Bit、JPEGLossless、JPEG2000Lossless、RLELossless;支持 Sequence 嵌套结构与多文件序列处理,可按 ImagePositionPatient 或 InstanceNumber 排序并堆叠为三维体数据,读取 PixelSpacing、SliceThickness 等空间信息。附带脚本:scripts/anonymize_dicom.py、scripts/dicom_to_image.py、scripts/extract_metadata.py。

限制与注意:部分压缩数据需额外安装处理器,否则可能提示无法解码;访问不存在的标签会报 AttributeError,应先检查;显示过暗或过亮需应用 VOI LUT;大型序列注意内存;处理不可信来源文件需捕获异常;修改时用 write_like_original=True 保留元数据;创建新实例应生成新 UID,修改时保留原 UID;共享医学数据前须彻底核查匿名化。官方文档见 https://pydicom.github.io/pydicom/dev/。