Skip to content

Inverse transforms

John Bogovic edited this page Mar 15, 2019 · 8 revisions

Inverse transforms

This page documents transformations whose inverses can be used in either transforming images or transforming neuronal skeletons.

We recommend avoiding the use of iterative inverses when possible, since these are expensive to compute.

Fast (closed form or specified)

  1. Affine transforms
  2. Diffeomorphic (ANTs-style) transforms

Slow (Iterative)

  1. Thin-plate spline transform
  2. General deformation field transforms

Affine transforms

Affine transformations are closed-form invertible, and so are fast to invert.

Examples:

  • Cmtk-style affine: cmtk_affine.xform?i
  • Ants-style affine: ants_affine.mat?i
  • Imglib2-style affine: imglib2_affine.txt?i

Diffeomorphic (ANTs-style) transforms

ANTs-style transformations specify both the forward and inverse transformation as deformation fields and so are fast to invert, because the inverse is explicitly specified.

ANTs diffeomorphic methods (SyN, BSplineSyN) generate forward and inverse deformation fields. These can be "inverted" by supplying the file containing the inverse deformation, but not using a ?i suffix.

When using an h5 transform file that stores both the forward and inverse fields, the ?i suffix can be used to invert

Thin plate spline transforms

Thin plate spline transforms are specified by text (.csv) files written by BigWarp, and can be inverted using the ?i suffix. In this case, an iterative method using gradient descent ( see details below ).

Deformation field transform

General deformation fields can be inverted using the ?i suffix. These are specified using 3D volumetric file formats (.nii, .nrrd). In this case, an iterative method using gradient descent ( see details below ).

Clone this wiki locally