Skip to content

elastix 5.1.0

Compare
Choose a tag to compare
@N-Dekker N-Dekker released this 12 Jan 15:08
· 764 commits to main since this release

Release notes

By downloading elastix you accept the conditions written here.

elastix 5.1.0 was released in January 2023. All binaries were created using ITK 5.3.0.

download description compiler CMake version
elastix-5.1.0-manual.pdf The manual
elastix-5.1.0-win64.zip Windows 64 bit binaries Visual Studio 2019 MSVC 19.29.30147.0 CMake 3.18.3
elastix-5.1.0-linux.zip Linux binaries (Ubuntu 20.04) GNU 9.4.0 CMake 3.18.3
elastix-5.1.0-mac.zip MacOS 11 binaries AppleClang 13.0.0.13000029 CMake 3.18.3

Some download statistics can be found here.

Enhancements

ITK transform file formats: HDF5 and TFM

A new (optional) parameter, "ITKTransformOutputFileNameExtension", is supported by elastix input parameter maps and files, which allows specifying an ITK file format for transformation output files file: either "h5" for HDF5 or "tfm" for ITK Legacy TFM. Another new optional parameter, "WriteITKCompositeTransform" allows requesting the generation of an ITK CompositeTransform file, when its value is "true".
ITK transform files may also be used as input TransformParameter file to both elastix and transformix by specifying the Transform parameter value "File" and adding the new parameter "TransformFileName", for example:

(Transform "File")
(TransformFileName "ITK-HDF5-Transform.h5")

Supported ITK Transform types: Translation, Affine, Euler (2D and 3D), Similarity (2D and 3D), and BSpline.

Other input parameter support enhancements

The new (optional) parameter "ResultImageName" allows specifying the basename of the file names of transformation result images, addressing issue #672 submitted by Sebastian van der Voort (@Svdvoort)

The "AutomaticScalesEstimation" parameter is now also supported by AffineLogStackTransform and EulerStackTransform, addressing issue #260

Format adjustments to elastix output transform parameter files

The transform output files generated by elastix now use a lossless text string representation for 32-bit and 64-bit floating points values, instead of 10 decimals precision. So for example, the 64-bit floating point representation of one third was written to text as "0.3333333333" by elastix 5.0.1, while is now (elastix 5.1.0) written as "0.3333333333333333". On the other hand, elastix 5.1.0 no longer writes unnecessary trailing zero’s for floating point numbers. For example, it writes a floating point value of one simply as "1", not "1.0000000000". Addresses issue #383

The parameters in the generated transform parameter files are now ordered alphabetically, in order be consistent with the parameter map objects produced by the elastix library. Within a generated transform file, the parameters are no longer grouped. (elastix 5.0.1 did group, for example, image specific, transformation specific, and resampler specific parameters).

Added 32-bit floating point ("float") pixel type to 4-D image support: pull request #418

Added git revision information to command-line output, addressing issue #671 submitted by Sebastian van der Voort (@Svdvoort)

Library specific extensions (ITKElastix/SimpleITK interface)

Added DisableOutput() to itk::ElastixRegistrationMethod and itk::TransformixFilter (especially to ease writing multi-threading applications)

Added GetCombinationTransform(), GetNumberOfTransforms(), GetNthTransform(n), ConvertToItkTransform(transform) to itk::ElastixRegistrationMethod, and added SetCombinationTransform(transform) to itk::TransformixFilter, allowing to retrieve and use transform objects through the library interface.

Added ComputeSpatialJacobianDeterminantImage() and ComputeSpatialJacobianMatrixImage() to itk::TransformixFilter, allowing to retrieve the Jacobian determinant and matrix images directly from the library interface.

Performance

Major performance improvement in the calculation of metrics, which does in some cases make a registration 40% or more faster. Pull request #556 and #558

Avoided unnecessary (unrequested) generation of an output image by itk::ElastixRegistrationMethod::GenerateData(), addressing #370 submitted by @orange676

Under the hood

Upgraded from C++11 to C++14, and modernized the code using language and library features that were introduced by C++14.

Upgraded from ITK 5.1.1 to ITK 5.3.0.

Added 91 GoogleTest unit tests and 18 Python unit tests.

Contributors

This release has commits by (in alphabetic order): Niels Dekker (@N-Dekker), Stefan Klein (@stefanklein), Bradley Lowekamp (@blowekamp), Kasper Marstal (@kaspermarstal), Matt McCormick (@thewtex), Konstantinos Ntatsis (@ntatsisk), Eric at ORS (@EricAtORS), Marius Staring (@mstaring), Viktor van der Valk (@ViktorvdValk), Dženan Zukić (@dzenanz)

Full Changelog A list of all commits for this release: 5.0.1...5.1.0