pydicom

关注
义项:DICOM医学影像处理库
pydicom

pydicom是使用Python语言编写的一个纯Python软件包,用于创建、读取、修改和写入DICOM(医学数字成像和通信)格式的医学影像文件及其文件集,也可以将压缩或未压缩的像素数据转换为NumPy数组并写回文件。[1]它把结构复杂的DICOM数据集解析为符合Python习惯的对象,使医学影像的数据元素可以直接用代码访问和处理,广泛用于医学影像分析、影像归档与通信系统以及放射科工作流程等场景。[2]

百科 图文
目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

pydicom是一个用Python编写的纯Python软件包,主要用途是处理符合DICOM标准的文件,包括医学影像、检查报告以及放射治疗对象。[3]它面向DICOM数据集的读写,把文件中的各个数据元素以Python对象的方式呈现,读取修改后的数据集可以再写回DICOM格式文件。

作为纯Python实现,pydicom本身不依赖其他第三方库即可运行,只有在处理像素数据时才建议安装NumPy。[2]它定位于通用性的DICOM读写框架,并不负责DICOM网络通信,也不以图像显示为主要目标;网络通信由同项目下的pynetdicom承担,匿名化等更具体的功能则由基于pydicom构建的其他库提供。[2][4]

原理

DICOM文件由一系列数据元素构成,每个元素以标签标识,标签由组号和元素号组成,并带有值表示(VR)以说明数据类型。pydicom读取文件后返回Dataset对象,既可以用标签查找元素,也可以按数据元素的名称以属性形式访问,例如读取患者姓名、患者编号等字段。[5]向数据集添加标准元素时,pydicom可以依据元素关键字自动完成VR查找;添加私有元素时,则会按DICOM标准要求同时写入私有创建者元素,用于标识并保留对应区段的私有标签。[5]

对于影像像素数据,pydicom始终可以按字节形式读取、修改和写入压缩与未压缩的像素数据;在安装了NumPy的情况下,还可以通过pixel_array属性把像素数据转换为多维数组,数组形状由数据集中的行列数等参数决定。[2]解码JPEG、JPEG-LS、JPEG 2000等压缩像素数据时需要额外安装相应的解码库,RLE编码的解码仅依赖NumPy即可完成。[2]

发展历程

pydicom的早期版本以dicom作为包名,其代码文件标注的版权年份为2008年至2012年,作者为Darcy Mason,采用经过修改的MIT许可证发布。当时的发行说明中给出的使用方式是先读取文件、修改数据元素的值,再另存为新的文件。

该软件包在0.9.x系列之后继续迭代,先后发布2.0.0、2.3.1、2.4.4、3.0.2等版本,并被收录进Debian、NetBSD pkgsrc等软件包集合。[3]项目由志愿者利用业余时间维护,源代码托管于GitHub,文档同时提供正式发布版和开发版的用户指南、教程、示例与API参考。[2]

应用

pydicom常用于读取和修改医学影像的元数据,例如更改患者编号后另存为新文件,或提取标签信息用于整理数据集。[2]在影像处理方面,它可以从CT、MRI、X射线和超声等影像中提取像素数据,配合NumPy与绘图库进行显示和分析,也支持把DICOM图像转换为PNG、JPEG等常见图像格式。

该库还用于处理多帧影像与影像序列,可以按层位置或实例编号排序后重建三维体数据;在医学数据共享和科研场景中,常借助它删除或替换患者姓名、患者编号、出生日期等可识别信息以实现匿名化。由于这些能力,pydicom被应用于医学影像分析、影像归档与通信系统(PACS)、放射科工作流程以及医疗影像相关的软件开发。

局限

pydicom不是DICOM服务器,主要定位也不是图像浏览,而是通过代码操作DICOM文件中的数据元素。[4]它只提供通用的数据集读写框架,不处理各个存储服务类(SOP类)的具体细节以及DICOM标准的其他方面,相关功能需要由基于它的其他库补充。[2]

压缩像素数据是另一个受限之处:压缩的像素数据无法在不先解压的情况下被有针对性地修改,必须先解码,修改后再按与未压缩数据相同的方式写回DICOM文件。[4]此外,JPEG、JPEG-LS、JPEG 2000等压缩像素数据的解码依赖额外安装的第三方库,RLE解码虽然只需NumPy,但速度可能较慢。[2]

参见

  • DICOM —— pydicom处理的数据所遵循的医学影像与通信标准。

  • 医学影像 —— pydicom主要处理的CT、MRI、X射线、超声等影像对象。

  • NumPy —— pydicom将像素数据转换为多维数组时可选依赖的数值计算库。

  • Python —— pydicom所使用的编程语言,纯Python实现使其可运行于任何支持Python的环境。

  • 影像归档与通信系统 —— pydicom的典型应用场景之一。

参考资料

  1. pydicom# [引用日期2026-10-14]
  2. pydicom [引用日期2026-10-14]
  3. biology/py-pydicom - The NetBSD Packages Collection [引用日期2026-10-14]
  4. Getting Started with pydicom [引用日期2026-10-14]
  5. pydicom quick start# [引用日期2026-10-14]
词条评价
词条统计

浏览次数:2 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-13T19:58:45Z

历史版本

本条目引用的词条
DICOM 医学影像 NumPy Python 影像归档与通信系统