Skip to content

Transformations

John Bogovic edited this page Feb 8, 2019 · 7 revisions

Nomenclature and conventions

Bridging transformations are named with a prefix of the form: TARGET_SOURCE, where TARGET is the name of one template space, and SOURCE is the name of another [1]. This transform:

  • maps point coordinates in TARGET space to SOURCE space.
  • Is used to transform images in SOURCE space to TARGET space.

[1] Following the convention set forth in the NeuroAnatomy Toolbox's bridging registrations.

Relationship to ANTs conventions

Deformable registration with ANTs for TARGET and SOURCE generates output three output files, an "Affine" file, a "Warp" file, and an "InverseWarp" file.

Using transformations

This library provides several scripts for applying spatial transformations to images or points / skeletons.

Images

When possible, use ANTs' WarpImageMultiTransform, antsApplyTransforms, or CMTK's reformatx to apply transformations generated by ANTs and CMTK, respectively.

In other cases, the script renderTransformed may be helpful.

Skeletons

The R package nat has great tools for analyzing skeletons, including transforming them with CMTK-compatible transformations. For other transforms, see below for scripts that convert transforms to CMTK-compatible formats.

Use the script transformSwc to transform skeletons stored as swc files.

Points

When possible, use ANTs' antsApplyTransformsToPoints, or CMTK's streamxform to transform points.

In other cases, the script transformPoints may be helpful in transforming arbitrary points and point-lists.

Bridging transformations

We provide a number of spatial transformations that convert images or points/skeletons from one template space to another.

Supported transformation types

This library supports transformations created by both the ANTs and CMTK image registration packages as well as several custom formats.

ANTs

Affine

We do not support arbitrary affine transforms written by ANTs - a few different conventions / formats are possible. Rather, convert the affines to homogenious matrix and write plain text file using the ANTs utility: ConvertTransformFile.

Displacement fields

We support ANTs displacement fields as gzip-compressed Nifti files.

CMTK

Affine

We do not support arbitrary affine transforms written by CMTK. Rather, convert the affines to homogenious matrix and write plain text file using the CMTK utility: dof2mat

Displacement field

CMTK parametrizes the non-linear part of its spatial transformation with B-Splines, usually stored as a compressed text file. We do not currently support this format directly. However, one can convert from this format to a displacement field using the script: cmtk2DField.

Transform conversion

ANTs to CMTK

The script antsAffine2Cmtk converts the affine component of an ANTs transform to CMTK's format. antsDfield2Cmtk converts a displacement field generated by ANTs to a nrrd file that CMTK understands.

Clone this wiki locally