Вам может понадобиться изменить размер изображения до того же размера, что и исходное изображение - при условии, что ваша сегментация имеет то же происхождение, что и входное изображение, эта функция должна сделать это.
import SimpleITK as sitk
def resample_image(input_img, input_seg, is_label=False):
dimension = 3
original_spacing = itk_image.GetSpacing()
original_size = itk_image.GetSize()
resample = sitk.ResampleImageFilter()
resample.SetOutputSpacing(original_spacing)
resample.SetSize(out_size)
resample.SetOutputDirection(input_img.GetDirection())
resample.SetOutputOrigin(input_img.GetOrigin())
resample.SetTransform(sitk.Transform(dimension, sitk.sitkIdentity))
resample.SetDefaultPixelValue(input_img.GetPixelIDValue())
if is_label:
resample.SetInterpolator(sitk.sitkNearestNeighbor)
else:
resample.SetInterpolator(sitk.sitkBSpline)
return resample.Execute(itk_image)