New release: elastix version 5.2.0! #1201
N-Dekker
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Dear all,
I'm very pleased to announce that we have just released elastix 5.2.0! Please find the details below!
With kind regards, Niels Dekker
Release notes
By downloading
elastix
you accept the conditions written here.elastix 5.2.0
was released in July 2024. All binaries were created usingITK 5.4.0
.Some download statistics can be found here.
Enhancements
850d469 Renamed "SubtractMean" parameter to "UseZeroAverageDisplacementConstraint", for metrics used for groupwise registration. ("SubtractMean" still supported for backward compatibility.)
8111c67 Added support for the "ComputeZYX" parameter to EulerStackTransform (for a 4D stack of 3D images).
76fa510 Added "UseMultiThreadingForSamplers" parameter for sampling (default "true").
a7ae46e Allowed the file name specified by the "InitialTransformParameterFileName" parameter in a transform parameter file to be relative to that transform parameter file.
05d2b40 Support "ShowProgressPercentage" parameter (
false
by default).c90f1c4 Added "-loglevel" command-line option to elastix and transformix exe (possible values: "off", "error", "warning", or "info")
Library specific enhancements
58e0a7b Both ElastixRegistrationMethod and TransformixFilter now convert their input images to the internal pixel type, specified by elastix/transformix parameters, "FixedInternalImagePixelType" and "MovingInternalImagePixelType" (which are "float" by default).
23ef432 Avoided irrelevant log messages saying "-fMask unspecified" or "-mMask unspecified".
9d76b86 Added support for
ELASTIX_BUILD_EXECUTABLE
, allowing to switch off building the elastix and transformix executables, while still building the libraries.c4ef707 Added
GetLogLevel
andSetLogLevel
member functions to bothitk::ElastixRegistrationMethod
anditk::TransformixFilter
, allowing the user to reduce the amount of logging from elastix and transformix, both to the log file and the console (standard output). Equivalent to the aforementioned new "-loglevel" command-line option.5c450b6
elastix::ParameterObject::WriteParameterFile
now writes floating point numbers without rounding errors71a4a9a Added
SetTransformParameterFileName(string)
andGetTransformParameterFileName()
toitk::TransformixFilter
9e64269 Let
itk::ElastixRegistrationMethod
write the transform maps from its InitialTransformParameterObject to the output directory.48c6458 Added
SetInitialTransformParameterObject(parameterObject)
toitk::ElastixRegistrationMethod
115d8e1 Added
SetInitialTransform(transform)
toitk::ElastixRegistrationMethod
2393728, 9d9ec49 Added support for external ITK transforms as input to both elastix and transformix. An external ITK transform may be provided by the user, created by using ITK, outside of elastix. Such a transform may serve as input to elastix by
ElastixRegistrationMethod::SetExternalInitialTransform
anditk::TransformixFilter::SetExternalTransform
.Performance
Overall, an entire run of elastix was observed to be around 5 percent faster than with the previous elastix release (5.1.0), for common registration scenario's. ITK's ThreadPool is used extensively. Some details:
ComputeImageExtremaFilter
has been made up to 6x as fast (pull request ComputeImageExtremaFilter: RemoveUseMask
property and let it only compute min and max #1046), significantly improving the performance of metric components3x as fast
sampleVector.reserve
), making the sampling twice as fast (on the use case of sampling without mask)mask->IsInsideInWorldSpace(point)
have become twice as fast, improving both metrics and samplers.The CMake option
ELASTIX_USE_OPENMP
was dropped, as elastix multi-threading is now fully based on standard C++ threads, and making use of ITK'sThreadPool
.Bug Fixes
e3cafc5 Fixed support of specifying the number of threads in the thread pool ("-threads" N command-line argument).
d1e52fc Fixed a small memory leak in ParabolicErodeDilateImageFilter, affecting the use of "ErodeMask".
60d3712 Fixed support SumOfPairwiseCorrelationCoefficients metric for use cases without stack transform.
76ede5d Added missing ComputeZYX property to FixedParameters of Euler Transform for 3D, to ensure that ComputeZYX is properly stored and retrieved.
33c3873, 34bdc3b Fixed overrides of PowellOptimizer, FRPROptimizer. Relevant when using the "ConjugateGradientFRPR" optimizer.
bc1ddf0 Let ParabolicErodeDilateImageFilter::SplitRequestedRegion override ITK's ImageSource, affecting the use of "ErodeMask".
f5b9024 ImageFullSampler do mask updates single-threaded, to avoid race conditions.
a53d49d ComputeImageExtremaFilter SameGeometry function include Index, Spacing, and Direction, fixing issue #1023.
a57470b
ParameterObject::WriteParameterFiles
now writes all maps, fixing issue #904.c96f026 Fixed ElastixRegistrationMethod member functions
GetNumberOfTransforms
,GetNthTransform
, andGetCombinationTransform
, issue #965.d33a0d5 Fixed reference count in ConvertItkTransformBaseToSingleItkTransform, affecting the lifetime of objects returned by
ElastixRegistrationMethod::ConvertToItkTransform
.dc4ba50 ElastixRegistrationMethod no longer puts "NoInitialTransform" in the user specified parameter map, as it may still have an initial transform.
99902e5 Library now writes images to the output directory whenever this directory is specified. Before this commit, the library would not do so, even when the WriteResultImage parameter would be "true".
691c358 Added the maps from the InitialTransformParameterObject of an ElastixRegistrationMethod to the output TransformParameterObject.
73a0d3a When there are two or more "TransformConfigurations", the sequence of transforms is entirely specified by those configurations, and not by transform parameter files.
55a42c0 Set NumberOfResolutions = 3 by default, in MovingImagePyramid, just like in FixedImagePyramid, fixing issue #858.
4b0cbaa Fixed OpenCL InterpolatorCopier for BSplineInterpolatorFloat.
Under the hood
Upgraded from C++14 to C++17, and modernized the code using language and library features that were introduced by C++17.
Upgraded from ITK 5.3.0 to ITK 5.4.0.
Added 54 GoogleTest unit tests (total: 153 GoogleTest unit tests).
Contributors
This release has commits by: Niels Dekker, Konstantinos Ntatsis, Marius Staring, and Matt McCormick. Stefan Klein was also very much involved with this release.
Full Changelog A list of all commits for this release: 5.1.0...5.2.0
This discussion was created from the release 5.2.0.
Beta Was this translation helpful? Give feedback.
All reactions