Medical Image Registration Library

What is SimpleElastix?

SimpleElastix is an extension of SimpleITK that includes the popular elastix C++ library. Elastix is a modular collection of high-performance medical image registration algorithms, for which SimpleElastix automatically generates bindings for Python, Java, R, Ruby, Octave, Lua, Tcl and C#. This makes state-of-the-art registration really easy to do in your favorite programming environment.

Designed For Humans

A user-friendly API facilitates rapid prototyping and reduces overhead for processing of large data sets.


Silky-smooth integration with your favorite C++, Python, Java, R, Ruby, Lua, Tcl and C# programming tools.


Speed up your image processing pipeline with high-performance multi-threaded C++ registration algorithms.

Open Source

The code is open source, developed on Github and licensed under the permissive Apache 2.0 license.


Preconfigured registration methods serve as robust starting points for tuning SimpleElastix to your application.

Easy To Extend

Plugin your own transforms, metrics and optimizers in elastix and use SimpleElastix to call your C++ code in any of the supported languages.

Fabien Pertuy Institut Clinique de la Souris

SimpleElastix is exactly what I was looking for, combining the power of elastix and the ease of use of SimpleITK. I can integrate it flawlessly into my Python scripts.

Fabien Pertuy, Research Engineer, Institut Clinique de la Souris

Philip Hansen Frederiksberg Hospital

We aim to advance understanding of anatomical changes in the human foot induced by weightbearing. SimpleElastix allowed our team to build a digital 3D model to visualize tarsal bone movements in very little time.

Philip Hansen, MD, PhD, Frederiksberg Hospital


SimpleElastix support many different use cases. Here we highlight just a few.

Example 1: Rapid prototyping in Lua Integrate elastix into your image processing pipeline with a few lines of code.
Example 2: Multi-atlas segmentation Python Integration with SimpleITK's image processing algorithms allows you to use elastix as an algorithmic building block in SimpleITK pipelines. Here, we segment an image using multiple atlases and SimpleITK's LabelVoting filter. The individual segmentations are transformed using deformation fields obtained from registering images with elastix.
Example 3: Big Data processing in Java and C# Native data structures allows you to take advantage langauge-specific features. For example, many images can easily be processed in parallel using Java 8 streams or C# for-each loops.
Example 4: Integration with ITK pipelines in C++ Under the hood, SimpleElastix uses an Elastix ITK-filter and a Transformix ITK-filter developed specifically for this SimpleElastix. These filters can be used directly in ITK pipelines for maximum performance.

For more complete registration examples and installation instructions, see the full documentation.


Source code

SimpleElastix is distributed under the permissive Apache License Version 2.0. You can use SimpleElastix for any purpose, including commercial, but you must give credit where credit is due. For academic publications use the following citation

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

and for commercial as well as non-commercial projects include the license and copyright notice in the root of the SimpleElastix repository as prescribed by the license terms.

Thank you!


Go to my website


We would love to hear from you.


Kasper Marstal
M.Sc. Eng., Medicin & Technology

Get Connected