从单个文件读取3D DICOM卷到numpy数组

时间:2019-12-15 13:35:13

标签: python dicom pydicom

我在CentOS 7的Anaconda Spyder上使用Python 3.7.3。

我在一个文件中有一个3D DICOM卷:/usr/share/aliza/datasets/DICOM/00_MR/Tra_FLAIR.dcm

我正在尝试将其读入3D numpy数组,如here所述。

我尝试以下代码

import pydicom as dicom
import numpy as np

image=dicom.read_file('/usr/share/aliza/datasets/DICOM/00_MR/Tra_FLAIR.dcm')
image.pixel_array

这导致

Traceback (most recent call last):

  File "<ipython-input-28-85bf1e993c9b>", line 1, in <module>
    image.pixel_array

  File "/home/peter/anaconda3/lib/python3.7/site-packages/pydicom/dataset.py", line 1362, in pixel_array
    self.convert_pixel_data()

  File "/home/peter/anaconda3/lib/python3.7/site-packages/pydicom/dataset.py", line 1308, in convert_pixel_data
    raise last_exception

  File "/home/peter/anaconda3/lib/python3.7/site-packages/pydicom/dataset.py", line 1276, in     convert_pixel_data
    arr = handler.get_pixeldata(self)

  File "/home/peter/anaconda3/lib/python3.7/site-    packages/pydicom/pixel_data_handlers/pillow_handler.py", line 187, in get_pixeldata
    raise NotImplementedError(e.strerror)

NotImplementedError: None

我的理解是,python软件包dicom只是pydicom 0.9.9或更早版本,当我搜索dicom here时,所有匹配都针对pydicom

1 个答案:

答案 0 :(得分:2)

这很可能是图像处理程序(在这种情况下为“枕形”)未处理压缩类型的问题。

请参阅文档当前稳定分支中的Supported Transfer Syntax页-您显示的链接适用于旧版本。如果您使用的是pydicom的旧版本,请进行更新-图像处理(和错误消息)一直在改进每个版本。

您可以使用||=== Build: Debug in CppApp (compiler: GNU GCC Compiler) ===| obj\Debug\Main.o||In function `main':| D:\CodeBlocks\CppApp\Main.cpp|5|undefined reference to `Vector<int>::Vector()'| D:\CodeBlocks\CppApp\Main.cpp|18|undefined reference to `Vector<int>::~Vector()'| ||error: ld returned 1 exit status| ||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 4 second(s)) ===| 来查看您拥有的类型,并从该表中确定哪些处理程序可以支持它。