DICOM - 医学数字成像和通信,是医学成像系统的标准语言。每当听到“DICOM”一词时,有些人可能会认为它只是医学图像。但是,医疗保健分析师/数据科学家可能会将其视为与任何其他医疗数据集一样的宝库,因为它超出了像素数据的范围。DICOM文件包括与患者,成像方式和其他重要内容相关的有价值的数据。
使用 DICOM 元数据和访问特定属性对任何人都是有利的,包括处理 DICOM 文件的分析师/数据科学家。PyDicom在DICOM文件上提供了各种功能,方法和属性。
PyDicom是一个强大的Python包,用于处理DICOM文件,如医疗报告,图像和放射治疗对象。PyDicom软件包允许用户轻松地将这些复杂的文件读取和写入自然的pythonic结构中,以便于操作。
在下面的教程中,学习如何使用PyDicom和Matplotlib包在Python编程语言中可视化DICOM图像。
安装所需的软件包
首先,将安装以下软件包:
- PyDicom:这个包将允许处理DICOM文件,如医学图像,报告和放射治疗对象。
- Matplotlib:这个包将允许可视化数据。
通过在命令提示符下运行以下命令来使用 PIP 安装程序安装这些软件包:
语法:
$ pip install pydicom
$ pip install matplotlib
验证安装
安装模块后,可以通过创建一个空的 Python 程序文件并编写一个 import
语句来验证它,如下所示:
文件: verify.py
import pydicom
import matplotlib
现在,保存上述文件并在终端中使用以下命令执行它:
语法:
$ python verify.py
如果上面的 Python 程序文件没有返回任何错误,则软件包安装正确。但是,在引发异常的情况下,请尝试重新安装该软件包,并且还建议参考两个软件包的官方文档。
在 Python 中可视化 DICOM 图像的分步实现
以下是我们将使用的分步方法,以便使用 PyDicom 和 Matplotlib 包可视化 DICOM 映像:
第一步: 首先,导入所需的模块。
第二步: 其次,读取DICOM数据。
第三步: 最后,以2D形式可视化DICOM图像。
下面开始详细了解上述步骤。
导入必要的模块
从导入必要的模块开始。这些模块包括来自 PyDicom 包的 pydicom
和数据模块,以及来自 Matplotlib 包的 pyplot
模块。
以下是演示相同内容的代码片段:
文件: example.py
# importing the required modules
import pydicom # importing the pydicom module
import pydicom.data # importing the pydicom.data module
import matplotlib.pyplot as plot # importing the matplotlib.pyplot module
解释:
在上面的代码片段中,导入了所需的模块,如pydicom
,pydicom.data
和matplotlib.pyplot
。
读取 DICOM 数据
现在已经导入了必要的模块,将使用 pydicom.data.data_manager.get_files()
方法读取 DICOM 数据文件。
语法:
pydicom.data.data_manager.get_files(base, pattern)[0]
参数:
base
:此参数是要作为字符串递归搜索的基目录。pattern
:默认情况下,此参数设置为*
,它是用于过滤文件的字符串模式。
还将使用 pydicom 模块的 dcmread() 方法来读取和解析 DICOM 数据集。下面考虑以下代码片段来说明相同的内容。
文件: example.py
# Full path of the DICOM file is passed in base
baseAddress = r"D:\Learn Coding\learnPython\Python_programs\SampleDICOM"
passDicom = "test_brain.dcm" # file name is test_brain.dcm
# entering the DICOM image name for pattern
# result is a list of 1 element
f_name = pydicom.data.data_manager.get_files(baseAddress, passDicom)[0]
# reading and parse the DICOM dataset
dataset = pydicom.dcmread(f_name)
在上面的代码片段中,定义了一些变量,指定 DICOM 数据文件的基址。然后使用 pydicom.data.data_manager.get_files()
方法为模式选择 DICOM 映像名称,并使用 dcmread()
方法读取和分析 DICOM 数据集。
DICOM 图像的 2D 可视化
进入最后一步,现在将使用matplotlib.plot
模块的imshow()
方法在2D中可视化DICOM图像。还将使用 show()
方法来显示最终的 2D 图像。
考虑以下代码片段来说明相同的内容。
文件: example.py
# visualizing the DICOM dataset in 2D
plot.imshow(dataset.pixel_array, cmap = plot.cm.bone) # set the color map to bone
# displaying the final 2D image
plot.show()
在上面的代码片段中,使用 plot.imshow()
方法在 2D 中可视化 DICOM 数据集,并将颜色映射设置为骨骼。然后使用plot.show()
方法来显示最终的2D图像。现在已经成功编写了代码,是时候查看输出了。但在此之前,为方便起见,下面给出了完整的程序代码。
文件: example.py
# importing the required modules
import pydicom # importing the pydicom module
import pydicom.data # importing the pydicom.data module
import matplotlib.pyplot as plot # importing the matplotlib.pyplot module
# Full path of the DICOM file is passed in base
baseAddress = r"D:\Learn Coding\learnPython\Python_programs\SampleDICOM"
passDicom = "test_brain.dcm" # file name is test_brain.dcm
# entering the DICOM image name for pattern
# result is a list of 1 element
f_name = pydicom.data.data_manager.get_files(baseAddress, passDicom)[0]
# reading and parse the DICOM dataset
dataset = pydicom.dcmread(f_name)
# visualizing the DICOM dataset in 2D
plot.imshow(dataset.pixel_array, cmap = plot.cm.bone) # set the color map to bone
# displaying the final 2D image
plot.show()
运行结果:
在上面的教程中,我们学习了如何使用 Python 中的 PyDicom 和 Matplotlib 包以 2D 形式可视化 DICOM 图像文件。