def resize_sitk(self,volume_image_np,seg_volume_image_np,nsize,isLabel=False): #new_size = [112,96,160] #num_slices = volume_image_np.shape[0] image = sitk.GetImageFromArray(volume_image_np) labeled_image = sitk.GetImageFromArray(seg_volume_image_np) resample = sitk.ResampleImageFilter() if isLabel: resample.SetInterpolator = sitk.sitkNearestNeighbor else: resample.SetInterpolator = sitk.sitkLinear orig_spacing = image.GetSpacing() orig_size = np.array(image.GetSize(), dtype=np.int) new_spacing = (orig_size/nsize)*orig_spacing resample.SetOutputSpacing(new_spacing) resample.SetSize(nsize) resampled_image = resample.Execute(image) new_image = sitk.GetArrayFromImage(resampled_image) # resample labels """tr = resample.GetTransform() label_resample = sitk.ResampleImageFilter() label_resample.SetTransform(tr)""" resample.SetInterpolator = sitk.sitkNearestNeighbor resampled_label_image = resample.Execute(labeled_image) resampled_label_image = sitk.GetArrayFromImage(resampled_label_image) #print(new_image.shape) num_slices = new_image.shape[0] """if isLabel: for i in range(num_slices-1): new_image[i,:,:] = np.flipud(new_image[i,:,:])""" return new_image,resampled_label_image