本文整理汇总了Python中SimpleITK.ResampleImageFilter方法的典型用法代码示例。如果您正苦于以下问题:Python SimpleITK.ResampleImageFilter方法的具体用法?Python SimpleITK.ResampleImageFilter怎么用?Python SimpleITK.ResampleImageFilter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SimpleITK
的用法示例。
在下文中一共展示了SimpleITK.ResampleImageFilter方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: resample_images
# 需要导入模块: import SimpleITK [as 别名]
# 或者: from SimpleITK import ResampleImageFilter [as 别名]
def resample_images(
image: sitk.Image,
transforms: List[sitk.Euler3DTransform],
interpolation: Interpolation,
) -> List[sitk.Image]:
floating = reference = image
default_value = np.float64(sitk.GetArrayViewFromImage(image).min())
transforms = transforms[1:] # first is identity
images = [image] # first is identity
for transform in transforms:
resampler = sitk.ResampleImageFilter()
resampler.SetInterpolator(get_sitk_interpolator(interpolation))
resampler.SetReferenceImage(reference)
resampler.SetOutputPixelType(sitk.sitkFloat32)
resampler.SetDefaultPixelValue(default_value)
resampler.SetTransform(transform)
resampled = resampler.Execute(floating)
images.append(resampled)
return images
示例2: produceRandomlyTranslatedImage
# 需要导入模块: import SimpleITK [as 别名]
# 或者: from SimpleITK import ResampleImageFilter [as 别名]
def produceRandomlyTranslatedImage(image, label):
sitkImage = sitk.GetImageFromArray(image, isVector=False)
sitklabel = sitk.GetImageFromArray(label, isVector=False)
itemindex = np.where(label > 0)
randTrans = (0,np.random.randint(-np.min(itemindex[1])/2,(image.shape[1]-np.max(itemindex[1]))/2),np.random.randint(-np.min(itemindex[0])/2,(image.shape[0]-np.max(itemindex[0]))/2))
translation = sitk.TranslationTransform(3, randTrans)
resampler = sitk.ResampleImageFilter()
resampler.SetReferenceImage(sitkImage)
resampler.SetInterpolator(sitk.sitkLinear)
resampler.SetDefaultPixelValue(0)
resampler.SetTransform(translation)
outimgsitk = resampler.Execute(sitkImage)
outlabsitk = resampler.Execute(sitklabel)
outimg = sitk.GetArrayFromImage(outimgsitk)
outimg = outimg.astype(dtype=float)
outlbl = sitk.GetArrayFromImage(outlabsitk) > 0
outlbl = outlbl.astype(dtype=float)
return outimg, outlbl
示例3: resample_image
# 需要导入模块: import SimpleITK [as 别名]
# 或者: from SimpleITK import ResampleImageFilter [as 别名]
def resample_image(itk_image, out_spacing=[1.0, 1.0, 1.0], is_label=False):
original_spacing = itk_image.GetSpacing()
original_size = itk_image.GetSize()
out_size = [
int(np.round(original_size[0] * (original_spacing[0] / out_spacing[0]))),
int(np.round(original_size[1] * (original_spacing[1] / out_spacing[1]))),
int(np.round(original_size[2] * (original_spacing[2] / out_spacing[2])))
]
resample = sitk.ResampleImageFilter()
resample.SetOutputSpacing(out_spacing)
resample.SetSize(out_size)
resample.SetOutputDirection(itk_image.GetDirection())
resample.SetOutputOrigin(itk_image.GetOrigin())
resample.SetTransform(sitk.Transform())
resample.SetDefaultPixelValue(itk_image.GetPixelIDValue())
if is_label:
resample.SetInterpolator(sitk.sitkNearestNeighbor)
else:
resample.SetInterpolator(sitk.sitkBSpline)
return resample.Execute(itk_image)
示例4: resample_image
# 需要导入模块: import SimpleITK [as 别名]
# 或者: from SimpleITK import ResampleImageFilter [as 别名]
def resample_image(itk_image, out_spacing=(1.0, 1.0, 1.0), is_label=False):
original_spacing = itk_image.GetSpacing()
original_size = itk_image.GetSize()
out_size = [int(np.round(original_size[0] * (original_spacing[0] / out_spacing[0]))),
int(np.round(original_size[1] * (original_spacing[1] / out_spacing[1]))),
int(np.round(original_size[2] * (original_spacing[2] / out_spacing[2])))]
resample = sitk.ResampleImageFilter()
resample.SetOutputSpacing(out_spacing)
resample.SetSize(out_size)
resample.SetOutputDirection(itk_image.GetDirection())
resample.SetOutputOrigin(itk_image.GetOrigin())
resample.SetTransform(sitk.Transform())
resample.SetDefaultPixelValue(itk_image.GetPixelIDValue())
if is_label:
resample.SetInterpolator(sitk.sitkNearestNeighbor)
else:
resample.SetInterpolator(sitk.sitkBSpline)
return resample.Execute(itk_image)
示例5: produceRandomlyDeformedImage
# 需要导入模块: import SimpleITK [as 别名]
# 或者: from SimpleITK import ResampleImageFilter [as 别名]
def produceRandomlyDeformedImage(image, label, numcontrolpoints, stdDef):
sitkImage=sitk.GetImageFromArray(image, isVector=False)
sitklabel=sitk.GetImageFromArray(label, isVector=False)
transfromDomainMeshSize=[numcontrolpoints]*sitkImage.GetDimension()
tx = sitk.BSplineTransformInitializer(sitkImage,transfromDomainMeshSize)
params = tx.GetParameters()
paramsNp=np.asarray(params,dtype=float)
paramsNp = paramsNp + np.random.randn(paramsNp.shape[0])*stdDef
paramsNp[0:int(len(params)/3)]=0 #remove z deformations! The resolution in z is too bad
params=tuple(paramsNp)
tx.SetParameters(params)
resampler = sitk.ResampleImageFilter()
resampler.SetReferenceImage(sitkImage)
resampler.SetInterpolator(sitk.sitkLinear)
resampler.SetDefaultPixelValue(0)
resampler.SetTransform(tx)
resampler.SetDefaultPixelValue(0)
outimgsitk = resampler.Execute(sitkImage)
outlabsitk = resampler.Execute(sitklabel)
outimg = sitk.GetArrayFromImage(outimgsitk)
outimg = outimg.astype(dtype=np.float32)
outlbl = sitk.GetArrayFromImage(outlabsitk)
outlbl = (outlbl>0.5).astype(dtype=np.float32)
return outimg,outlbl
示例6: apply_bspline_transform
# 需要导入模块: import SimpleITK [as 别名]
# 或者: from SimpleITK import ResampleImageFilter [as 别名]
def apply_bspline_transform(
self,
tensor: torch.Tensor,
affine: np.ndarray,
bspline_params: np.ndarray,
interpolation: Interpolation,
) -> torch.Tensor:
assert tensor.dim() == 4
assert len(tensor) == 1
image = self.nib_to_sitk(tensor[0], affine)
floating = reference = image
bspline_transform = self.get_bspline_transform(
image,
self.num_control_points,
bspline_params,
)
self.parse_free_form_transform(
bspline_transform, self.max_displacement)
resampler = sitk.ResampleImageFilter()
resampler.SetReferenceImage(reference)
resampler.SetTransform(bspline_transform)
resampler.SetInterpolator(get_sitk_interpolator(interpolation))
resampler.SetDefaultPixelValue(tensor.min().item())
resampler.SetOutputPixelType(sitk.sitkFloat32)
resampled = resampler.Execute(floating)
np_array = sitk.GetArrayFromImage(resampled)
np_array = np_array.transpose() # ITK to NumPy
tensor[0] = torch.from_numpy(np_array)
return tensor
示例7: reslice_image
# 需要导入模块: import SimpleITK [as 别名]
# 或者: from SimpleITK import ResampleImageFilter [as 别名]
def reslice_image(itk_image, itk_ref, is_label=False):
resample = sitk.ResampleImageFilter()
resample.SetReferenceImage(itk_ref)
if is_label:
resample.SetInterpolator(sitk.sitkNearestNeighbor)
else:
resample.SetInterpolator(sitk.sitkBSpline)
return resample.Execute(itk_image)
示例8: resize_sitk_2D
# 需要导入模块: import SimpleITK [as 别名]
# 或者: from SimpleITK import ResampleImageFilter [as 别名]
def resize_sitk_2D(image_array, outputSize=None, interpolator=sitk.sitkLinear):
"""
Resample 2D images Image:
For Labels use nearest neighbour
For image use
sitkNearestNeighbor = 1,
sitkLinear = 2,
sitkBSpline = 3,
sitkGaussian = 4,
sitkLabelGaussian = 5,
"""
image = sitk.GetImageFromArray(image_array)
inputSize = image.GetSize()
inputSpacing = image.GetSpacing()
outputSpacing = [1.0, 1.0]
if outputSize:
outputSpacing[0] = inputSpacing[0] * (inputSize[0] /outputSize[0]);
outputSpacing[1] = inputSpacing[1] * (inputSize[1] / outputSize[1]);
else:
# If No outputSize is specified then resample to 1mm spacing
outputSize = [0.0, 0.0]
outputSize[0] = int(inputSize[0] * inputSpacing[0] / outputSpacing[0] + .5)
outputSize[1] = int(inputSize[1] * inputSpacing[1] / outputSpacing[1] + .5)
resampler = sitk.ResampleImageFilter()
resampler.SetSize(outputSize)
resampler.SetOutputSpacing(outputSpacing)
resampler.SetOutputOrigin(image.GetOrigin())
resampler.SetOutputDirection(image.GetDirection())
resampler.SetInterpolator(interpolator)
resampler.SetDefaultPixelValue(0)
image = resampler.Execute(image)
resampled_arr = sitk.GetArrayFromImage(image)
return resampled_arr
开发者ID:mahendrakhened,项目名称:Automated-Cardiac-Segmentation-and-Disease-Diagnosis,代码行数:35,代码来源:data_augmentation.py
示例9: reorient_image
# 需要导入模块: import SimpleITK [as 别名]
# 或者: from SimpleITK import ResampleImageFilter [as 别名]
def reorient_image(image):
"""Reorients an image to standard radiology view."""
dir = np.array(image.GetDirection()).reshape(len(image.GetSize()), -1)
ind = np.argmax(np.abs(dir), axis=0)
new_size = np.array(image.GetSize())[ind]
new_spacing = np.array(image.GetSpacing())[ind]
new_extent = new_size * new_spacing
new_dir = dir[:, ind]
flip = np.diag(new_dir) < 0
flip_diag = flip * -1
flip_diag[flip_diag == 0] = 1
flip_mat = np.diag(flip_diag)
new_origin = np.array(image.GetOrigin()) + np.matmul(new_dir, (new_extent * flip))
new_dir = np.matmul(new_dir, flip_mat)
resample = sitk.ResampleImageFilter()
resample.SetOutputSpacing(new_spacing.tolist())
resample.SetSize(new_size.tolist())
resample.SetOutputDirection(new_dir.flatten().tolist())
resample.SetOutputOrigin(new_origin.tolist())
resample.SetTransform(sitk.Transform())
resample.SetDefaultPixelValue(image.GetPixelIDValue())
resample.SetInterpolator(sitk.sitkNearestNeighbor)
return resample.Execute(image)
示例10: resample_image_to_ref
# 需要导入模块: import SimpleITK [as 别名]
# 或者: from SimpleITK import ResampleImageFilter [as 别名]
def resample_image_to_ref(image, ref, is_label=False, pad_value=0):
"""Resamples an image to match the resolution and size of a given reference image."""
resample = sitk.ResampleImageFilter()
resample.SetReferenceImage(ref)
resample.SetDefaultPixelValue(pad_value)
if is_label:
resample.SetInterpolator(sitk.sitkNearestNeighbor)
else:
#resample.SetInterpolator(sitk.sitkBSpline)
resample.SetInterpolator(sitk.sitkLinear)
return resample.Execute(image)
示例11: resample_image
# 需要导入模块: import SimpleITK [as 别名]
# 或者: from SimpleITK import ResampleImageFilter [as 别名]
def resample_image(image, out_spacing=(1.0, 1.0, 1.0), out_size=None, is_label=False, pad_value=0):
"""Resamples an image to given element spacing and output size."""
original_spacing = np.array(image.GetSpacing())
original_size = np.array(image.GetSize())
if out_size is None:
out_size = np.round(np.array(original_size * original_spacing / np.array(out_spacing))).astype(int)
else:
out_size = np.array(out_size)
original_direction = np.array(image.GetDirection()).reshape(len(original_spacing),-1)
original_center = (np.array(original_size, dtype=float) - 1.0) / 2.0 * original_spacing
out_center = (np.array(out_size, dtype=float) - 1.0) / 2.0 * np.array(out_spacing)
original_center = np.matmul(original_direction, original_center)
out_center = np.matmul(original_direction, out_center)
out_origin = np.array(image.GetOrigin()) + (original_center - out_center)
resample = sitk.ResampleImageFilter()
resample.SetOutputSpacing(out_spacing)
resample.SetSize(out_size.tolist())
resample.SetOutputDirection(image.GetDirection())
resample.SetOutputOrigin(out_origin.tolist())
resample.SetTransform(sitk.Transform())
resample.SetDefaultPixelValue(pad_value)
if is_label:
resample.SetInterpolator(sitk.sitkNearestNeighbor)
else:
#resample.SetInterpolator(sitk.sitkBSpline)
resample.SetInterpolator(sitk.sitkLinear)
return resample.Execute(sitk.Cast(image, sitk.sitkFloat32))
示例12: resize_sitk_3D
# 需要导入模块: import SimpleITK [as 别名]
# 或者: from SimpleITK import ResampleImageFilter [as 别名]
def resize_sitk_3D(self, image_array, outputSize=None, interpolator=sitk.sitkLinear):
"""
Resample 3D images Image:
For Labels use nearest neighbour
For image use
sitkNearestNeighbor = 1,
sitkLinear = 2,
sitkBSpline = 3,
sitkGaussian = 4,
sitkLabelGaussian = 5,
"""
image = image_array
inputSize = image.GetSize()
inputSpacing = image.GetSpacing()
outputSpacing = [1.0, 1.0, 1.0]
if outputSize:
outputSpacing[0] = inputSpacing[0] * (inputSize[0] /outputSize[0]);
outputSpacing[1] = inputSpacing[1] * (inputSize[1] / outputSize[1]);
outputSpacing[2] = inputSpacing[2] * (inputSize[2] / outputSize[2]);
else:
# If No outputSize is specified then resample to 1mm spacing
outputSize = [0.0, 0.0, 0.0]
outputSize[0] = int(inputSize[0] * inputSpacing[0] / outputSpacing[0] + .5)
outputSize[1] = int(inputSize[1] * inputSpacing[1] / outputSpacing[1] + .5)
outputSize[2] = int(inputSize[2] * inputSpacing[2] / outputSpacing[2] + .5)
resampler = sitk.ResampleImageFilter()
resampler.SetSize(outputSize)
resampler.SetOutputSpacing(outputSpacing)
resampler.SetOutputOrigin(image.GetOrigin())
resampler.SetOutputDirection(image.GetDirection())
resampler.SetInterpolator(interpolator)
resampler.SetDefaultPixelValue(0)
image = resampler.Execute(image)
return image
示例13: sitk_resample_to_image
# 需要导入模块: import SimpleITK [as 别名]
# 或者: from SimpleITK import ResampleImageFilter [as 别名]
def sitk_resample_to_image(image, reference_image, default_value=0., interpolator=sitk.sitkLinear, transform=None,
output_pixel_type=None):
if transform is None:
transform = sitk.Transform()
transform.SetIdentity()
if output_pixel_type is None:
output_pixel_type = image.GetPixelID()
resample_filter = sitk.ResampleImageFilter()
resample_filter.SetInterpolator(interpolator)
resample_filter.SetTransform(transform)
resample_filter.SetOutputPixelType(output_pixel_type)
resample_filter.SetDefaultPixelValue(default_value)
resample_filter.SetReferenceImage(reference_image)
return resample_filter.Execute(image)
示例14: Resampling
# 需要导入模块: import SimpleITK [as 别名]
# 或者: from SimpleITK import ResampleImageFilter [as 别名]
def Resampling(Image,Label):
Size=Image.GetSize()
Spacing=Image.GetSpacing()
Origin = Image.GetOrigin()
Direction = Image.GetDirection()
ImagePyramid=[]
LabelPyramid=[]
for i in range(3):
NewSpacing = ToSpacing[ResRate[i]]
NewSize=[int(Size[0]*Spacing[0]/NewSpacing[0]),int(Size[1]*Spacing[1]/NewSpacing[1]),int(Size[2]*Spacing[2]/NewSpacing[2])]
Resample = sitk.ResampleImageFilter()
Resample.SetOutputDirection(Direction)
Resample.SetOutputOrigin(Origin)
Resample.SetSize(NewSize)
Resample.SetInterpolator(sitk.sitkLinear)
Resample.SetOutputSpacing(NewSpacing)
NewImage = Resample.Execute(Image)
ImagePyramid.append(NewImage)
Resample = sitk.ResampleImageFilter()
Resample.SetOutputDirection(Direction)
Resample.SetOutputOrigin(Origin)
Resample.SetSize(NewSize)
Resample.SetOutputSpacing(NewSpacing)
Resample.SetInterpolator(sitk.sitkNearestNeighbor)
NewLabel = Resample.Execute(Label)
LabelPyramid.append(NewLabel)
return ImagePyramid,LabelPyramid
#We shift the mean value to enhance the darker side
示例15: produceRandomlyDeformedImage
# 需要导入模块: import SimpleITK [as 别名]
# 或者: from SimpleITK import ResampleImageFilter [as 别名]
def produceRandomlyDeformedImage(image, label, numcontrolpoints, stdDef, seed=1):
'''
This function comes from V-net,deform a image by B-spine interpolation
:param image: images ,numpy array
:param label: labels,numpy array
:param numcontrolpoints: control point,B-spine interpolation parameters,take 2 for default
:param stdDef: Deviation,B-spine interpolation parameters,take 15 for default
:return: Deformed images and GT in numpy array
'''
sitkImage = sitk.GetImageFromArray(image, isVector=False)
sitklabel = sitk.GetImageFromArray(label, isVector=False)
transfromDomainMeshSize = [numcontrolpoints] * sitkImage.GetDimension()
tx = sitk.BSplineTransformInitializer(
sitkImage, transfromDomainMeshSize)
params = tx.GetParameters()
paramsNp = np.asarray(params, dtype=float)
# 设置种子值,确保多通道时两个通道变换程度一样
np.random.seed(seed)
paramsNp = paramsNp + np.random.randn(paramsNp.shape[0]) * stdDef
# remove z deformations! The resolution in z is too bad
paramsNp[0:int(len(params) / 3)] = 0
params = tuple(paramsNp)
tx.SetParameters(params)
resampler = sitk.ResampleImageFilter()
resampler.SetReferenceImage(sitkImage)
resampler.SetInterpolator(sitk.sitkLinear)
resampler.SetDefaultPixelValue(0)
resampler.SetTransform(tx)
resampler.SetDefaultPixelValue(0)
outimgsitk = resampler.Execute(sitkImage)
outlabsitk = resampler.Execute(sitklabel)
outimg = sitk.GetArrayFromImage(outimgsitk)
outimg = outimg.astype(dtype=np.float32)
outlbl = sitk.GetArrayFromImage(outlabsitk)
# outlbl = (outlbl > 0.5).astype(dtype=np.float32)
return outimg, outlbl