Changes of elastix 4.7 compared to elastix 4.6
elastix is now multi-threading!
Several metrics were re-implemented in a multi-threading fashion: Sum of Squared Differences, Normalized Correlation, Mutual Information, the Kappa statistic, and the bending energy penalty term. Speedups of 4-5x where measured on an 8-core machine (2010), and 5-6x on a modern 6-core machine (2013). Running
elastix with only one thread is also substantially faster, by about 40-50%.
We published a paper, detailing it all: Fast Parallel Image Registration on CPU and GPU for Diagnostic Classification of Alzheimer's Disease, see this link.
elastix now has a library interface!
This means you can call
elastix from your own software without the overhead of image reading and writing, but by directly passing image pointers back and forth between
elastix and your own program. Section 7.3 of the manual gives more details. This part was collaborative work by Chris Bouwman, Coert Metz and Reinhard Hameeteman.
elastix 4.7 builds with the latest ITK 4.5.
elastix 4.7 does not compile anymore with earlier versions of ITK.
For compliance with the latest ITK many things were changed such as better use of 64 bit id's, the removal of USE_IMAGE_BEHAVES_AS_ORIENTED, replacement of ITK_TEMPLATE_TXX with ITK_MANUAL_INSTANTIATION, and the removal of the obsolete ITK_EXPORT keyword.
elastix 4.7 builds with the clang compiler!
See also the nightly dashboard.
- Coding style is now enforced by uncrustify. All
.txx files were renamed to
New classes and/or methods:
- Floris Berendsen contributed a new regularizing metric: the
The metric can be selected using:
See this entry in the parameter file database to checkout its usage: http://elastix.bigr.nl/wiki/index.php/Par0022.
(Metric <some metric> "StatisticalShapePenalty")
He published his work here under the title Free-form image registration regularized by a statistical shape model: application to organ segmentation in cervical MR.
- Automatic step size estimation for the ASGD optimizer was substantially accelerated by Yuchuan Qiao.
The acceleration can be selected using:
His work is accepted for publication at the 'SPIE: Medical Imaging 2014' conference, see this link for the paper.
- A bug in the rigidity penalty term was fixed, which caused the rigidity coefficient image not being used properly.
- A workaround has been found for the CUDA nvcc compiler complaining about long command lines on Windows. Workaround was proposed by Cory Quammen on the ITK mailing list.
- Masks are now taken into account when doing initialization of the affine transform.
- The pyramid region size is now never reduced to 0.
- Some valgrind leaks were addressed by Coert Metz.
- Fixed an issue with the MevisDicomTiff extension. Based on a patch supplied by Gert Wollny.