Coregistration options#

This section provides information about the arguments that can be passed to mdreg.fit to control the coregistration process. These arguments are provided as a dictionary referred to as fit_coreg in the mdreg.fit function.

skimage#

If the fit_coreg dictionary is not provided in the call to mdreg.fit, then mdreg uses the skimage package for coregistration as default - specifically the function skimage.registration.optical_flow_tvl1 with default parameters.

This behaviour can be modified by providing additional items to the fit_coreg dictionary. All keyword arguments accepted by the function mdreg.skimage.coreg_series can be provided.

For instance, the following call to mdreg.fit will show a progress bar during coregistration and applies the registration with the attachment parameter set to a value of 30 instead of the default 15:

coreg, _, _, _ = mdreg.fit(
    array,
    fit_coreg = {
      'progress_bar': True,
      'attachment': 30,
    },
)

elastix#

Elastix is an alternative coregistration engine to perform the coregistration components in mdreg. For consistent usage across different coregistration engines, mdreg contains pythonic wrappers for the core functions in elastix, but the functionality is not otherwise modified.

To run coregistration with elastix, the package needs to be specified along with any keyword arguments accepted by mdreg.elastix.coreg_series. For instance the following call will run elastix with a grid spacing of 50mm between the control points:

coreg, _, _, _ = mdreg.fit(
    array,
    fit_coreg = {
      'package': 'elastix',
      'spacing': [1.25, 1.25, 3.0],
      'FinalGridSpacingInPhysicalUnits': 50.0,
    },
)

We refer to the original elastix pages for more detail on elastix. Please note elastix authors request that the following papers are cited if you use the elastix software anywhere:

  • S. Klein, M. Staring, K. Murphy, M.A. Viergever, J.P.W. Pluim, “elastix: a toolbox for intensity based medical image registration, “ IEEE Transactions on Medical Imaging, vol. 29, no. 1, pp. 196 - 205, January 2010.

  • D.P. Shamonin, E.E. Bron, B.P.F. Lelieveldt, M. Smits, S. Klein and M. Staring, “Fast Parallel Image Registration on CPU and GPU for Diagnostic Classification of Alzheimer’s Disease”, Frontiers in Neuroinformatics, vol. 7, no. 50, pp. 1-15, January 2014.

mdreg uses the interface itk-elastix which is based on SimpleElastix, created by Kasper Marstal:

  • Kasper Marstal, Floris Berendsen, Marius Staring and Stefan Klein, “SimpleElastix: A user-friendly, multi-lingual library for medical image registration”, International Workshop on Biomedical Image Registration (WBIR), Las Vegas, Nevada, USA, 2016.

antspyx#

The final registration package wrapped in mdreg is ANTs through the python package antspyx. As for elastix, in order to use ANTs for coregistration it suffices to provide the package name and any keyword arguments accepted by mdreg.ants.coreg_series:

coreg, _, _, _ = mdreg.fit(
    array,
    fit_coreg={
        'package': 'ants',
        'type_of_transform': 'SyNOnly',
    },
)

This will call the function ants.registration to coregister the dynamics.