-
Notifications
You must be signed in to change notification settings - Fork 119
Home
Welcome to the elastix
wiki!
elastix
is a toolbox for rigid and nonrigid registration of (medical) 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 solve (medical) image registration problems. 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 SimpleElastix, making it available in languages like C++, Python, Java, R, Ruby, C# and Lua.
The lead developers of elastix are Stefan Klein and Marius Staring.
The development of elastix
started half to late 2003. At that time it was intended to facilitate the image registration research we did at the Image Sciences Institute, under supervision of Josien Pluim. elastix
was small scale and we did not consider making it available at a wider scale. Those days we used CVS for version control! We soon switched to subversion in September 2004. With the initial versions of elastix
we played around with different software structures, and finally decided for the components-based organization you still find in elastix
today. elastix
was still quite monolithic however, and to improve the compilation burden we decided to put the separate components in separate libraries. This resulted in major version 3.0 in November 2004. At that point we felt comfortable releasing the software, so we created a website with help of Gerard van Hoorn and released elastix
.
In those first few years we stabilized the software, making it much more robust and user-friendly. We started a scheme of regular releases, occasionally refactored small parts of elastix
, and started to pay attention to memory usage and runtime performance. As a result we learned a lot about programming, compilers, and best software development practices. Our research was consistently implemented in elastix
, giving us a nice vehicle for experimentation. Everything was steady, and still mostly focused on our own needs.
Around 2008 / 2009 we became more and more aware elastix
could be useful for a larger community and started to work on outreach. Stimulated by Max and Josien, we created a first version of a manual and generally improved documentation on the website and in the code (using doxygen). We (finally) adopted a real software license, the BSD license, to tidy everything up. We decided to write a paper about elastix
and stimulated by the reviewer comments we created a mailing list and a database with good registration parameter settings for specific applications (around April 2009). Especially the mailing list has proven to be important for growing a community, getting great feedback, and a good place for sharing ideas and user support. November 2010 we opened up the SVN repository for reading. Recently (2017-05-22), we moved elastix
and the complete development structure to GitHub. We believe this step makes the development process more transparent, and makes it easier for everyone to get fixes, changes and features into elastix
.
// when did people starting to contribute to elastix? first small commit, first big real component?
Major changes in the period 2008 - 2017 are that in 2008 (v3.9) we started to use statically linked components instead of dynamic. In 2009 we moved the svn repository from the ISI to a BIGR-hosted server and got the paper accepted. In 2010 (v4.4) we started including GPU accelerations using CUDA, and 4D groupwise registration was added by Coert Metz. Only in 2011 we initiated nightly testing using CDash. 2D/3D registration was contributed in v4.5 by Martijn van der Bom. 2014 (v4.7) brought us multi-threading to the core parts of elastix
, substantially accelerating the registration. Where elastix
used to be a solely commandline driven program, a library interface was contributed by Chris Bouwman and improved by Coert Metz, yielding much better integration possibilities of elastix
with other software. Kasper Marstal created SimpleElastix in 2015, thereby making elastix
natively available in many scripting languages. In v4.8 (2015) we switched to the more modern Apache 2.0 license and started using CLAs. OpenCL was also adopted in favor of CUDA, with a much more mature GPU offloading architecture.
//Since 2014 elastix started to become adopted by companies (Philips, Quantib, Pie
This wiki currently contains some random information that may be useful. We may want to move the website here.
- Home
- Download binary releases
- News
- About
- What does elastix do (see also manual)
- How to use elastix (point to manual and SimpleElastix)
- Pointer to parameter file database
- Authors
- How to cite elastix
- elastix usage
- A list of papers that use or cite
elastix
- black duck for project statistics
- A list of papers that use or cite
- Acknowledgements
- Do you have questions?
- manual
- FAQ
- mailing list
- Legal stuff
- Technical Documentation
- doxygen
- code structure
- software ecosystem (github, how to contribute, cdash nightly dashboard, Travis-CI)
- Random stuff
- Additional tools
- Atlas generation
- MeVisLab interface
- Memory consumption transformix
- Additional tools
Click here to search on Google Scholar (TM) for papers that mention elastix
, or here for Google Scholar (TM) citations.