Skip to content

joasiee/elastix

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4,128 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
elastix logo

elastix image registration toolbox

License PyPI Version GitHub Actions Model Zoo Docker

Welcome to elastix: a toolbox for rigid and nonrigid registration of images.

elastix is open source software, based on the well-known Insight Segmentation and Registration Toolkit (ITK). The software consists of a collection of algorithms that are commonly used to perform (medical) image registration: the task of finding a spatial transformation, mapping one image (the fixed image) to another (the moving image), by optimizing relevant image similarity metrics. The modular design of elastix allows the user to quickly configure, test, and compare different registration methods for a specific application. A command-line interface enables automated processing of large numbers of data sets, by means of scripting. Nowadays elastix is accompanied by ITKElastix making it available in Python (on Pypi) and by SimpleElastix, making it available in languages like C++, Python, Java, R, Ruby, C# and Lua. A docker image of the latest elastix build is available as well on dockerhub. Several plugins exist for those who wish to use the functionality of elastix in a graphical user interface, among others a napari and a 3Dslicer plugin.

Authors

The lead developers of elastix are Stefan Klein and Marius Staring. This software was initially developed at the Image Sciences Institute, under supervision of Josien P.W. Pluim. Today, many have contributed to elastix.

If you use this software anywhere we would appreciate if you cite the following articles:

  • 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. download doi
  • 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. download doi

Specific components of elastix are made by many; The relevant citation can be found here.

More information

More information, including an extensive manual and model zoo, can be found on the wiki

Interactive tutorials are available in Jupyter notebooks.

You can also subscribe to the mailing list for questions. Information on contributing to elastix can be found here.

 


 

Master's thesis

This is a fork of elastix in which we explore the application of hybrid evolutionary algorithms to deformable image registration for a Master's thesis at the TU Delft. We implement RV-GOMEA in elastix with support for partial evaluations. Additionally, we implement a hybrid local search operator and add specific constraints for the B-spline transformation model. An analytic version of the bending energy when using B-splines is also integrated.

Building

Requirements

Make sure that these dependencies are installed and can be found by CMake, see this guide for more information.

Then the project can be configured and built as follows:

# Create build directory.
mkdir build && cd build

# Configure the build.
cmake -DCMAKE_BUILD_TYPE:STRING={BUILD_TYPE} ../

# Build the project.
cmake --build . 

We use a superbuild to build all the dependencies not included in the requirements. The superbuild requires a build type (e.g. Debug, Release) to be set during configuration, which can be specified with -DCMAKE_BUILD_TYPE:STRING={BUILD_TYPE}. It is not necessary but advisable to use the Ninja generator for CMake. If installed, it can be specified during the configure step with -G Ninja.

Due to a harcoding of the build directory in CMake/SuperBuild.cmake, the build directory has to be in the root of the project and named "build". If a different build directory is desired, you would have to change the hardcoded path in this file. Subdirectories can be used, e.g., build/Release or build/Debug.

About

Official elastix repository

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C++ 64.7%
  • Jupyter Notebook 30.2%
  • CMake 2.0%
  • C 1.4%
  • Python 1.3%
  • TeX 0.2%
  • Other 0.2%