elastix 5.1.0
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