【发布时间】:2017-12-08 04:32:09
【问题描述】:
我知道我可以使用以下代码查看 dicom 文件:
import dicom
from dicom.contrib.pydicom_PIL import show_PIL
f = "CT-MONO2-8-abdo.dcm"
ds = dicom.read_file(f, force=True)
show_PIL(ds)
但是,如何从多帧 DICOM 文件中提取和查看所有帧?我尝试使用上面的代码,但出现以下错误:
File "/home/auser/.local/lib/python3.5/site-packages/dicom/dataset.py", line 399, in _get_pixel_array
raise NotImplementedError("Pixel Data is compressed in a format pydicom does not yet handle. Cannot return array")
NotImplementedError: Pixel Data is compressed in a format pydicom does not yet handle. Cannot return array
我曾尝试使用位于http://www.barre.nom.fr/medical/samples/ 的一些多帧文件。像素大小等可用于这些文件。
如何提取和/或查看多帧 DICOM 文件的不同帧?
编辑:使用 gdcm 的以下命令可在 Linux 上将这些文件转换为未压缩文件:
$ gdcmconv --raw compressed.dcm uncompressed.dcm
(提取后我使用http://www.barre.nom.fr/medical/samples/files/US-PAL-8-10x-echo.gz文件)。
然后由上面的 python 代码读取,但只显示第一帧。如何提取和查看其他帧?
【问题讨论】:
-
您使用了哪些图片?错误消息对我来说似乎很清楚 - 像素数据被压缩,并且 pydicom 中没有合适的编解码器来解压缩它。作为一种解决方法,您可以尝试使用 dcmtk 命令行工具(例如 dcmdjpeg)更改格式(传输语法)。见 www.dcmtk.org
-
我认为@Amit Joshi 现在提供了一个全面的答案(因此,我投了赞成票)。
标签: python image dicom pydicom