有没有办法在pydicom中添加多值和列表
Is there a way to add MultiValues and lists in pydicom
我正在尝试将 MultiValue
添加到列表中。但是我收到一条错误消息,说明我不能。我还尝试了 .append
和 .extend
将多值添加到列表中,但收到无法将 NaN 值添加到列表中的错误。另外,我无法理解 MultiValue
.
到底是什么
我正在尝试 运行 的代码是:
original_z_spacing = np.abs(patient_data[0].ImagePositionPatient[2]
- patient_data[1].ImagePositionPatient[2])
# obtain rescaled HU array
hu_array = get_hounsfield_unit_array(patient_data)
original_spacings = np.array(patient_data[0].PixelSpacing + [original_z_spacing], dtype='float32') # the error occurs here
患者数据是一个包含 1595 个文件夹的文件夹,其中包含 dicom 文件。我 运行 在 Python 3.7 和 pydicom 版本 1.4.2 上使用此代码。我收到的错误是:
TypeError: unsupported operand type(s) for +: 'MultiValue' and 'list'
这里有两个问题:MultiValue
确实不能加到列表中,但是可以强制转换为list
。在这种情况下,仅此一项是行不通的,因为 PixelSpacing
具有 VR "DS",例如被写为字符串值,因此您必须先将其转换为浮点数。
这应该有效:
pixel_spacing = patient_data[0].PixelSpacing
original_spacings = np.array([float(pixel_spacing[0]), float(pixel_spacing[1]), original_z_spacing], dtype='float32')
MultiValue
是在pydicom
中使用的class表示多值标签的值。它主要表现得像一个列表(它派生自 MutableSequence
)并且可以根据需要转换为列表。
我正在尝试将 MultiValue
添加到列表中。但是我收到一条错误消息,说明我不能。我还尝试了 .append
和 .extend
将多值添加到列表中,但收到无法将 NaN 值添加到列表中的错误。另外,我无法理解 MultiValue
.
我正在尝试 运行 的代码是:
original_z_spacing = np.abs(patient_data[0].ImagePositionPatient[2]
- patient_data[1].ImagePositionPatient[2])
# obtain rescaled HU array
hu_array = get_hounsfield_unit_array(patient_data)
original_spacings = np.array(patient_data[0].PixelSpacing + [original_z_spacing], dtype='float32') # the error occurs here
患者数据是一个包含 1595 个文件夹的文件夹,其中包含 dicom 文件。我 运行 在 Python 3.7 和 pydicom 版本 1.4.2 上使用此代码。我收到的错误是:
TypeError: unsupported operand type(s) for +: 'MultiValue' and 'list'
这里有两个问题:MultiValue
确实不能加到列表中,但是可以强制转换为list
。在这种情况下,仅此一项是行不通的,因为 PixelSpacing
具有 VR "DS",例如被写为字符串值,因此您必须先将其转换为浮点数。
这应该有效:
pixel_spacing = patient_data[0].PixelSpacing
original_spacings = np.array([float(pixel_spacing[0]), float(pixel_spacing[1]), original_z_spacing], dtype='float32')
MultiValue
是在pydicom
中使用的class表示多值标签的值。它主要表现得像一个列表(它派生自 MutableSequence
)并且可以根据需要转换为列表。