pydicom支持读取像素数据。请参阅this文档。在pydicom tends to be “lazy” in interpreting DICOM data. For example, by
default it doesn’t do anything with pixel data except read in the raw
bytes:import dicom
ds=dicom.read_file("MR_small.dcm")
ds.PixelData
'\x89\x03\xfb\x03\xcb\x04\xeb\x04\xf9\x02\x94\x01\x7f ...
...
关于像素阵列A property of Dataset called pixel_array provides more useful pixel
data for uncompressed images. The NumPy numerical package must be
installed on your system to use this property, because pixel_array
returns a NumPy array:import dicom
ds=dicom.read_file("MR_small.dcm")
ds.pixel_array
array([[ 905, 1019, 1227, ..., 302, 304, 328],
[ 628, 770, 907, ..., 298, 331, 355],
[ 498, 566, 706, ..., 280, 285, 320],
...,
[ 334, 400, 431, ..., 1094, 1068, 1083],
[ 339, 377, 413, ..., 1318, 1346, 1336],
[ 378, 374, 422, ..., 1369, 1129, 862]], dtype=int16)
ds.pixel_array.shape
(64, 64)
正如在错误消息中所解释的(以及注释中的@kritzel_sw),pydicom还不支持源映像的传输语法。在尝试提取帧之前,请使用其他工具更改传输语法。在
还要检查this堆栈溢出问题;这是关于旧版本的,但可能会有所帮助。在