ants.core.ants_transform_io

Functions

create_ants_transform([transform_type, ...])

Create and initialize an ANTsTransform

fsl2antstransform(matrix, reference, moving)

Convert an FSL linear transform to an antsrTransform

new_ants_transform([precision, dimension, ...])

Create a new ANTsTransform

read_transform(filename[, precision])

Read a transform from file

transform_from_displacement_field(field)

Convert deformation field (multiChannel image) to ANTsTransform

transform_to_displacement_field(xfrm, ref)

Convert displacement field ANTsTransform to displacement field

write_transform(transform, filename)

Write ANTsTransform to file

create_ants_transform(transform_type='AffineTransform', precision='float', dimension=3, matrix=None, offset=None, center=None, translation=None, parameters=None, fixed_parameters=None, displacement_field=None, supported_types=False)[source]

Create and initialize an ANTsTransform

ANTsR function: createAntsrTransform

Parameters:
  • transform_type (str) – type of transform(s)

  • precision (str) – numerical precision

  • dimension (int) – spatial dimension of transform

  • matrix (numpy.ndarray) – matrix for linear transforms

  • offset (tuple/list) – offset for linear transforms

  • center (tuple/list) – center for linear transforms

  • translation (tuple/list) – translation for linear transforms

  • parameters (ndarray/list) – array of parameters

  • fixed_parameters (ndarray/list) – array of fixed parameters

  • displacement_field (ants.core.ANTsImage) – multichannel ANTsImage for non-linear transform

  • supported_types (bool) – flag that returns array of possible transforms types

Return type:

ANTsTransform or list of ANTsTransform types

Example

>>> import ants
>>> translation = (3,4,5)
>>> tx = ants.create_ants_transform( type='Euler3DTransform', translation=translation )
fsl2antstransform(matrix, reference, moving)[source]

Convert an FSL linear transform to an antsrTransform

ANTsR function: fsl2antsrtransform

Parameters:
  • matrix (ndarray/list) – 4x4 matrix of transform parameters

  • reference (ants.core.ANTsImage) – target image

  • moving (ants.core.ANTsImage) – moving image

Return type:

ANTsTransform

Examples

>>> import ants
>>> import numpy as np
>>> fslmat = np.zeros((4,4))
>>> np.fill_diagonal(fslmat, 1)
>>> img = ants.image_read(ants.get_ants_data('ch2'))
>>> tx = ants.fsl2antstransform(fslmat, img, img)
new_ants_transform(precision='float', dimension=3, transform_type='AffineTransform', parameters=None, fixed_parameters=None)[source]

Create a new ANTsTransform

ANTsR function: None

This is a simplified method for creating an ANTsTransform, mostly used internally. See create_ants_transform for more options.

Example

>>> import ants
>>> tx = ants.new_ants_transform()
read_transform(filename, precision='float')[source]

Read a transform from file

ANTsR function: readAntsrTransform

Parameters:
  • filename (str) – filename of transform

  • precision (str) – numerical precision of transform

Return type:

ANTsTransform

Example

>>> import ants
>>> tx = ants.new_ants_transform(dimension=2)
>>> tx.set_parameters((0.9,0,0,1.1,10,11))
>>> ants.write_transform(tx, '~/desktop/tx.mat')
>>> tx2 = ants.read_transform('~/desktop/tx.mat')
transform_from_displacement_field(field)[source]

Convert deformation field (multiChannel image) to ANTsTransform

ANTsR function: antsrTransformFromDisplacementField

Parameters:

field (ants.core.ANTsImage) – deformation field as multi-channel ANTsImage

Return type:

ants.core.ANTsImage

Example

>>> import ants
>>> fi = ants.image_read(ants.get_ants_data('r16') )
>>> mi = ants.image_read(ants.get_ants_data('r64') )
>>> fi = ants.resample_image(fi,(60,60),1,0)
>>> mi = ants.resample_image(mi,(60,60),1,0) # speed up
>>> mytx = ants.registration(fixed=fi, moving=mi, type_of_transform = ('SyN') )
>>> vec = ants.image_read( mytx['fwdtransforms'][0] )
>>> atx = ants.transform_from_displacement_field( vec )
transform_to_displacement_field(xfrm, ref)[source]

Convert displacement field ANTsTransform to displacement field

ANTsR function: antsrTransformToDisplacementField

Parameters:
  • xfrm (displacement field ANTsTransform) – displacement field ANTsTransform

  • ref (ANTs Image) –

Return type:

ANTsVectorImage

Example

>>> import ants
>>> fi = ants.image_read(ants.get_ants_data('r16') )
>>> mi = ants.image_read(ants.get_ants_data('r64') )
>>> fi = ants.resample_image(fi,(60,60),1,0)
>>> mi = ants.resample_image(mi,(60,60),1,0) # speed up
>>> mytx = ants.registration(fixed=fi, moving=mi, type_of_transform = ('SyN') )
>>> vec = ants.image_read( mytx['fwdtransforms'][0] )
>>> atx = ants.transform_from_displacement_field( vec )
>>> field = ants.transform_to_displacement_field( atx, fi )
write_transform(transform, filename)[source]

Write ANTsTransform to file

ANTsR function: writeAntsrTransform

Parameters:
  • transform (ANTsTransform) – transform to save

  • filename (str) – filename of transform (file extension is “.mat” for affine transforms)

Return type:

N/A

Example

>>> import ants
>>> tx = ants.new_ants_transform(dimension=2)
>>> tx.set_parameters((0.9,0,0,1.1,10,11))
>>> ants.write_transform(tx, '~/desktop/tx.mat')
>>> tx2 = ants.read_transform('~/desktop/tx.mat')