对CT采样至指定spacing:
def resample_volume(volume, interpolator=sitk.sitkLinear, out_spacing=[1, 1, 1]):
original_spacing = volume.GetSpacing()
original_size = volume.GetSize()
out_size = [int(round(osz * ospc / nspc)) for osz, ospc, nspc in zip(original_size, original_spacing, out_spacing)]
resampled_volume = sitk.Resample(volume, out_size, sitk.Transform(), interpolator,
volume.GetOrigin(), out_spacing, volume.GetDirection(), 0,
volume.GetPixelID())
return resampled_volume
复制原始CT信息:
out_volume.CopyInformation(in_volume)