之所以需要重采样是由于不同的病人体型不同,但最后数字成像的分辨率是一样的,这就导致了一定程度的失真变形。
但医学图像例如dcm或nii格式,都会带有SliceThickness,PixelSpacing类似的属性,可以利用这些属性去尽量还原真实物体。
例如:(下图第二个物体是星星,忘记改过来了)
现在希望spacing变为(1,1),意思是希望数字成像的图片大小就代表原始物体大小。
若spacing=(2,2)则表示原始物体大小是数字成像大小的两倍
因此,
# ct_array 是 z,y,x
# refactor_size = ct.GetSpacing()[-1] / new_spacing_z,...
ct_array = ndimage.zoom(ct_array, (ct.GetSpacing()[-1] / new_spacing_z, ct.GetSpacing()