Source code for ants.segmentation.kelly_kapowski

"""
Kelly Kapowski algorithm with computing cortical thickness
"""

__all__ = ['kelly_kapowski']

from ..core import ants_image as iio
from .. import utils


[docs]def kelly_kapowski(s, g, w, its=45, r=0.025, m=1.5, **kwargs): """ Compute cortical thickness using the DiReCT algorithm. Diffeomorphic registration-based cortical thickness based on probabilistic segmentation of an image. This is an optimization algorithm. Arguments --------- s : ANTsimage segmentation image g : ANTsImage gray matter probability image w : ANTsImage white matter probability image its : integer convergence params - controls iterations r : scalar gradient descent update parameter m : scalar gradient field smoothing parameter kwargs : keyword arguments anything else, see KellyKapowski help in ANTs Returns ------- ANTsImage Example ------- >>> import ants >>> img = ants.image_read( ants.get_ants_data('r16') ,2) >>> img = ants.resample_image(img, (64,64),1,0) >>> mask = ants.get_mask( img ) >>> segs = ants.kmeans_segmentation( img, k=3, kmask = mask) >>> thick = ants.kelly_kapowski(s=segs['segmentation'], g=segs['probabilityimages'][1], w=segs['probabilityimages'][2], its=45, r=0.5, m=1) """ if isinstance(s, iio.ANTsImage): s = s.clone('unsigned int') d = s.dimension outimg = g.clone() kellargs = {'d': d, 's': s, 'g': g, 'w': w, 'c': "[{}]".format(its), 'r': r, 'm': m, 'o': outimg} for k, v in kwargs.items(): kellargs[k] = v processed_kellargs = utils._int_antsProcessArguments(kellargs) libfn = utils.get_lib_fn('KellyKapowski') libfn(processed_kellargs) return outimg