当我在python3.6中使用pydicom时,存在一些问题:
import pydicom
import matplotlib.pyplot as plt
import os
import pylab
filePath = "/Users/zhuangrui/Documents/Python/Dicom/dicoms/zhang_bo/0001.dcm"
dataSet_1 = pydicom.dcmread(filePath)
plt.imshow(dataSet_1.pixel_array)
plt.show()
如何解决这个问题?非常感谢你!
答案 0 :(得分:1)
在对上面建议的链接进行了一些研究之后,我遇到了同样的问题。我设法通过更新到最新的pydicom模块“ 1.2.0”并安装gdcm来解决该问题。您可以使用以下方式更新pydicom
pip install -U git+https://github.com/pydicom/pydicom.git
您可以找到最新的gdcm here和this链接来说明安装。
我使用anaconda,安装gdcm软件包并解决问题更加容易。如果您使用水蟒
只需从您的环境中输入:
conda install pydicom --channel conda-forge
获取pydicom的最新消息和
conda install -c conda-forge gdcm
获取gdcm。这样可以解决问题。希望这些会有所帮助。
答案 1 :(得分:0)
使用pydicom,您还需要安装适当的图像处理程序来处理压缩的图像类型。
对于JPEG无损,理论上应该有以下工作:jpeg_ls,gdcm或带有jpeg插件的Pillow。所有这些还需要安装Numpy。请参阅https://github.com/pydicom/pydicom/issues/532上的讨论。
还有一个pull request正在为不同的图片添加更多描述性错误消息,以便为哪些图像处理程序添加。
答案 2 :(得分:0)
我正在尝试读取扩展名为.dcm的医学图像。但是在Windows和Ubuntu上都出现了错误。我找到了一个可以在两个机器上都可以使用的解决方案。
我在Ubuntu上遇到的错误是:NotImplementedError:由于Pillow缺少jpeg 2000解码器插件,因此无法读取此传输语法JPEG 2000图像压缩(仅无损失)
(对于Windows,请注意,我遇到了另一个错误,但我确定是由于相同的问题,例如Pillow不支持JPEG 2000格式)
我应用的解决方案与上面说明的Ali相同。但我想添加此安装可能需要一些时间(取决于您使用的RAM)。在ubuntu上,我在Cloud平台上使用15 GB RAM的时间减少了,而在Windows上具有4 GB RAM的本地计算机上的时间减少了。
Anaconda是必需的。为什么? 请检查pydicom(https://pydicom.github.io/pydicom/dev/getting_started.html)的官方文档,其中提到“要与图像处理程序一起安装pydicom以处理压缩像素数据,我们建议您使用Miniconda或Anaconda”(对于Windows,请注意,我遇到了另一个错误)< / p>
如果您使用的是Ubuntu,请直接打开Terminal。如果您使用Windows,则在Anaconda Navigator上,从此处启动终端转到Environment。在其上执行以下命令:
pip install -U git+https://github.com/pydicom/pydicom.git
conda install pydicom --channel conda-forge
conda install -c conda-forge gdcm
现在使用我们收到错误的.dcm
文件。尝试在Python笔记本中使用以下代码
filename = 'FileName.dcm'
ds = pydicom.dcmread(filename)
plt.imshow(ds.pixel_array, cmap=plt.cm.bone)
它应该打印输出。也尝试以下代码:
ds.pixel_array
这将为您提供包含值的数组。