以基本的Python身份显示DICOM图像作为医学专家


我是放射技师和医学物理学家。
我将在文章中留下学习编程过程的备忘录。
希望对以后的人有所帮助。

我想显示一个DICOM图像

您想在医学领域使用Python做什么?
Python在医学图像处理中被广泛使用,并且在机器学习领域有许多主题,例如从图像中自动识别病变。
医学领域中使用的图像是DICOM格式的数据,
可以说,DICOM的知识对于医学领域的编程(主要是图像处理)是必不可少的。
我暂时要尝试的第一个障碍是"在Python中显示图像"。

什么是DICOM?

首先,让我们组织DICOM(为我自己)。

DICOM是一个缩写,它连接了"医学数字成像和通信"的首字母缩写。
它是用于传达医学图像信息等的标准,并且在世界范围内使用。
在要传送的数据中,不仅将通常成像的图像数据,而且还将诸如患者姓名,患者ID,检查日期,设备名称和成像条件之类的许多项目定义为附带信息。

有许多用于检查的机器和通信设备制造商,但是通过使用不依赖于制造商的通用规则(例如DICOM),代替按原始规则处理数据会更好,可以平滑地管理数据。

过去(仍在某些设施中),使用了伦琴胶片的照片进行诊断,但是从模拟医学图像到数字医学图像的转变使管理大量医学数据变得更加容易。 DICOM的存在也对此有所帮助。

顺便说一句,放射治疗领域有一些特殊的DICOM数据,而诊断领域却没有。
在显示图像的过程中这不是必需的知识,但是我本人是放射治疗部门的工作人员,因此我将对此进行一些介绍。
用于放射治疗的DICOM数据(DICOM RT)包括基于图像的数据(例如其他图像模态的DICOM)和基于非图像的数据(例如坐标信息和设备设置信息)。
alt
RT剂量表示剂量信息,RT结构表示伴侣信息,RT计划表示设备操作信息,每个信息都链接在一起作为治疗信息。

[参考] DICOM反向查找手册
(您可以查看研讨会幻灯片→DICOM学习课程资料)

除此之外,日本影像医学系统工业协会[JIRA]:在DICOM领域中,有很多关于DICOM的有用信息,因此请参考它。

使用Python图像显示超级简单!

我正在学习C#一段时间,但是
我什至无法显示一张CT图像。
因此,即使显示图像,对我来说也是一个很大的障碍...
我以为暂时还不能做。

但是!!
使用Python很简单!
我很惊讶。这么容易吗?
多亏了丰富的库,您只需知道简单的代码就可以显示它。
感谢那些制作图书馆的人。
谢谢,我很感激(今天在英语会话课上学习的短语)

这次,我将使用可免费使用的DICOM图像,因此
如果您手头没有DICOM图像也没关系。
DICOM的世界将再次受到关注。
我很感激
使用称为" CR_LEE_IR6a.dcm"的胸部CR图像。

环境(Mac)

python 3.7.4
matplotlib 3.1.1
pydicom 1.2.2
终端机(我不使用Jupyter Notebook)
Atom(任何文本编辑器均可接受)

整体代码

show_dicom.py

1
2
3
4
5
6
7
from matplotlib import pyplot as plt
import pydicom

cr = pydicom.read_file("CR_LEE_IR6a.dcm")

plt.imshow(cr.pixel_array, cmap = "gray")
plt.show()

*将要使用的DICOM数据(.dcm)与代码(.py)保存在同一目录中。

输出图像

スクリーンショット 2020-04-11 19.16.57.png

这就是

的全部。
这不是超级容易吗?
我仅用5行就能显示图像。
您可以利用简单的代码通过利用现有的出色模块(例如matplotlib和pydicom)来做到这一点。

我将省略Python语法。
请尝试一下。

最后,我想介绍一个非常有用的网站。
欧洲医学物理室医学物理室Blog
它包含详细的信息,这些信息在放射治疗领域使用Python时将非常有帮助。
毫无疑问,它将很有用,因此,如果您有兴趣,请查看一下!