使用DICOM图像进行医学图像处理

时间:2019-07-19 05:44:24

标签: python-3.x

对医学图像处理不熟悉。如何使用python或c ++将3D DICOM医学图像转换为数字矩阵格式?

3 个答案:

答案 0 :(得分:0)

您可以在python中使用pydicom软件包。您可以通过以下方式在python中安装它:

pip install pydicom

这是读取DICOM图像并将其转换为numpy数组的简单示例:

import os
import pydicom
import numpy as np

dicom_dir = your_dicom_folder_of_slices
file_names = os.listdir(dicom_dir)
file_names.sort()

dicom_data = []
for name in file_names:
    path = os.path.join(dicom_dir, name)
    dicom_data.append(pydicom.read_file(path))

array = [data.pixel_array for data in dicom_data]
array = np.stack(array, axis=-1)  # or 0 if 'channel_first'

这是详细的example

答案 1 :(得分:0)

另一种选择是,如果您确实想要“ 3D” dicom图像支持(即CT / MR / NM / PET 3d系列-与纯2D图像处理相反),并且您想做任何与3d相关和/或更复杂的事情,您可能想签出simple ITK

这为您提供了非常强大的真实3d处理功能,并且速度很快(它被包裹在已编译的C中)。例如,它包括完整的3D图像配准以及各种滤镜/工具等。

它可以一次读取整个系列,并自动为您创建一个完全了解空间的3D numpy数组(即,它可以为您处理所有dicom 3D空间方向/间距等标记)

但是,由于它比pydicom强大得多,因此它的学习曲线也更陡峭-但是确实有很多示例和在线jupyter笔记本教程。

...因此,根据您的需求,可能对您有好处。但是,如果您只想要基本的一次2D图像类型处理,那么pydicom是可行的方法。

答案 2 :(得分:0)

我更喜欢使用 SimpleElastix 进行医学图像处理。它有许多分割方法和许多其他有用的方法。它在 python 和 C++ 中都可用。根据我的经验,SimpleElastix 比其他包更好地处理 DICOMS 和 niftis。