Source code for ants.utils.slice_image
__all__ = ['slice_image']
import math
from ..core import ants_image as iio
from .. import utils
[docs]def slice_image(image, axis, idx, collapse_strategy=0):
"""
Slice an image.
Arguments
---------
axis: integer
Which axis.
idx: integer
Which slice number.
collapse_strategy: integer
Collapse strategy for sub-matrix: 0, 1, or 2. 0: collapse to sub-matrix
if positive-definite. Otherwise throw an exception. Default. 1: Collapse
to identity. 2: Collapse to sub-matrix if positive definite. Otherwise
collapse to identity.
Example
-------
>>> import ants
>>> mni = ants.image_read(ants.get_data('mni'))
>>> mni2 = ants.slice_image(mni, axis=1, idx=100)
"""
if image.dimension < 3:
raise ValueError('image must have at least 3 dimensions')
if collapse_strategy != 0 and collapse_strategy != 1 and collapse_strategy != 2:
raise ValueError('collapse_strategy must be 0, 1, or 2.')
inpixeltype = image.pixeltype
ndim = image.dimension
if image.pixeltype != 'float':
image = image.clone('float')
libfn = utils.get_lib_fn('sliceImageF%i' % ndim)
itkimage = libfn(image.pointer, axis, idx, collapse_strategy)
return iio.ANTsImage(pixeltype='float', dimension=ndim-1,
components=image.components, pointer=itkimage).clone(inpixeltype)