Source code for ants.registration.create_jacobian_determinant_image
__all__ = ['create_jacobian_determinant_image']
from tempfile import mktemp
from ..core import ants_image as iio
from ..core import ants_image_io as iio2
from .. import utils
[docs]def create_jacobian_determinant_image(domain_image, tx, do_log=False, geom=False):
"""
Compute the jacobian determinant from a transformation file
ANTsR function: `createJacobianDeterminantImage`
Arguments
---------
domain_image : ANTsImage
image that defines transformation domain
tx : string
deformation transformation file name
do_log : boolean
return the log jacobian
geom : bolean
use the geometric jacobian calculation (boolean)
Returns
-------
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,(128,128),1,0)
>>> mi = ants.resample_image(mi,(128,128),1,0)
>>> mytx = ants.registration(fixed=fi , moving=mi, type_of_transform = ('SyN') )
>>> jac = ants.create_jacobian_determinant_image(fi,mytx['fwdtransforms'][0],1)
"""
dim = domain_image.dimension
if isinstance(tx, iio.ANTsImage):
txuse = mktemp(suffix='.nii.gz')
iio2.image_write(tx, txuse)
else:
txuse = tx
#args = [dim, txuse, do_log]
dimage = domain_image.clone('double')
args2 = [dim, txuse, dimage, int(do_log), int(geom)]
processed_args = utils._int_antsProcessArguments(args2)
libfn = utils.get_lib_fn('CreateJacobianDeterminantImage')
libfn(processed_args)
jimage = args2[2].clone('float')
return jimage