Skip to content

Atlas generation using elastix

Marius Staring edited this page Jun 20, 2017 · 7 revisions

This page describes the use of elastix and transformix to generate an average dataset, called an atlas.

A synthetic population dataset is used to demonstrate the registration approach, which is based on the work by Van Hecke et al. [1] and Seghers et al. [2].

Purpose

  • Given a population of scalar volumes, compute the average dataset or atlas.
    • Subject-based: select one reference that is deformed towards the average.
      Other subjects will be registered to the reference, and subsequently deformed towards the average.
      Perform a voxel-wise average of the results to account for small differences.
    • Population-based: deform each subject towards the average and perform a voxel-wise average of the results to account for small differences.

Note 1: As stated in the elastix manual (Chapter 2.1), a registration from the moving to the fixed image involves a mapping from the fixed to the moving image. This is essential for the understanding of the atlas generation example.

Note 2: Instead of using the mean of the inverse transformations, as described by Van Hecke et al. [1], we compute the inverse of the mean (forward) transformation.

Requirements

A (Windows) PC with the elastix and Python binaries. The Python script relies on some external libraries, mainly NumPy and SimpleITK. The demo will run without SimpleITK, but the final voxel-wise average will not be performed.

Data

The synthetic data consists of six scalar (binary) volumes, each containing a sphere. Each volume contains 643 voxels of size 1 mm3 with an identity basis. The data is contained in the demonstration package.

Spheres atlas example
The white spheres are contained in the population data set. The blue sphere represents the generated average, or atlas, sphere.

Registration settings

  • elastix version: v4.6
  • Python: v2.7
  • SimpleITK: v0.6.1 (optional)

Parameter files:

Demonstration scripts:

Command line call for Python script - subject-based registration:

python atlas-register-subject-spheres-demo.py

Command line call for Python script - population-based registration:

python atlas-register-population-spheres-demo.py

References

  1. W. Van Hecke, J. Sijbers, E. D'Agostino, F. Maes, S. De Backer, E. Vandervliet, P. M. Parizel, and A. Leemans. On the construction of an inter-subject diffusion tensor magnetic resonance atlas of the healthy human brain. NeuroImage, vol. 43, no. 1, pp. 69-80, Oct. 2008.

  2. D. Seghers, E. D'Agostino, F. Maes, D. Vandermeulen, and P. Suetens. Construction of a brain template from MR images using state-of-the-art registration and segmentation techniques. In Proc Intl Conf Med Image Comput Comp Ass Interv, pp 696-703. 2004.