Python 3.x 基于DICOM图像的医学图像处理

Python 3.x 基于DICOM图像的医学图像处理,python-3.x,Python 3.x,我是医学图像处理的新手。如何将3D DICOM医学图像转换为使用Python或C++ + 的数值矩阵格式?您可以通过以下方式在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) fil

我是医学图像处理的新手。如何将3D DICOM医学图像转换为使用Python或C++ +

的数值矩阵格式?您可以通过以下方式在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'

这是一个详细的选项。

另一个选项,如果您真的想要“3D”dicom图像支持(即CT/MR/NM/PET 3D系列-与纯2D图像处理相反),并且您想要做任何真正与3D相关和/或更复杂的事情,您可能需要查看

这给了你非常强大的真正的3d处理,而且速度很快(它围绕着C)。例如,它包括全3D图像配准和各种过滤器/工具等

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

然而,因为它比pydicom强大得多,所以它的学习曲线也要陡峭得多——但它确实有很多例子和在线jupyter笔记本教程

…因此,根据您的需要,这可能对您有好处。但是,如果您真的只需要基本的2d每次图像类型处理,那么pydicom就是一个不错的选择