地图(用于重采样 DICOM 图像的浮点数抛出多值错误

136*_*369 5 resampling python-3.x scikit-image pydicom

我得到“只能将列表(不是“MultiValue”)连接到列表”突出显示图(浮动部分,在重采样下运行时,此代码在整个图像分割(如肺部等)中非常常用,我想这可能是 Python 的问题3 并且适用于早期版本,非常感谢任何帮助:

id = 0
imgs_to_process = 
np.load(output_path+'fullimages_{}.npy'.format(id))
def resample(image, scan, new_spacing=[1,1,1]):
    # Determine current pixel spacing
    spacing = map(float, ([scan[0].SliceThickness] + scan[0].PixelSpacing))
    spacing = np.array(list(spacing))

    resize_factor = spacing / new_spacing
    new_real_shape = image.shape * resize_factor
    new_shape = np.round(new_real_shape)
    real_resize_factor = new_shape / image.shape
    new_spacing = spacing / real_resize_factor

    image = scipy.ndimage.interpolation.zoom(image, real_resize_factor)

    return image, new_spacing

print ("Shape before resampling\t", imgs_to_process.shape)
imgs_after_resamp, spacing = resample(imgs_to_process, patient, [1,1,1])
print ("Shape after resampling\t", imgs_after_resamp.shape)
Run Code Online (Sandbox Code Playgroud)

Ank*_*kur 9

改变

spacing = map(float, ([scan[0].SliceThickness] + scan[0].PixelSpacing))
Run Code Online (Sandbox Code Playgroud)

spacing = map(float, ([scan[0].SliceThickness] + list(scan[0].PixelSpacing)))
Run Code Online (Sandbox Code Playgroud)

基本上 scan[0].PixelSpacing 是一个 MultiValue 并且需要在连接到另一个列表之前转换为列表。