问题:
我试图阅读带有 .dcm 扩展名的医学图像。但是在 Windows 和 Ubuntu 上都出现了错误。我找到了一种适用于两种机器的解决方案。
我在 Ubuntu 上遇到的错误是: NotImplementedError: this transfer syntax JPEG 2000 Image Compression (Lossless Only), can not be read because Pillow 缺少 jpeg 2000 解码器插件
(注意对于 Windows,我遇到了一个不同的错误,但我确信这是因为相同的问题,即 Pillow 不支持 JPEG 2000 格式)
平台信息:
- 我正在使用:Python 3.6、Anaconda 和 Ubuntu,15 GB RAM
内存很重要:
我应用的方案和上面阿里解释的一样。但我想添加此安装可能需要时间(取决于您使用的 RAM)。在 ubuntu 上,我在云平台上使用 15 GB RAM 花费的时间更少,而在 Windows 上,在本地机器上使用 4 GB RAM 花费了很多时间。
解决方案
蟒蛇是必要的。为什么?
请查看 pydicom 的官方文档(https://pydicom.github.io/pydicom/dev/getting_started.html),其中提到“要安装 pydicom 以及压缩像素数据的图像处理程序,我们鼓励您使用 Miniconda 或 Anaconda” (注意 Windows 我得到了一个不同的错误)
如果您使用的是 Ubuntu,请直接打开终端。如果您使用的是 Windows,则在 Anaconda Navigator 上从此处启动终端转到环境。在其上执行以下命令:
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
这将为您提供包含值的数组。