Skip to content

Releases: SuperElastix/elastix

5.3.0

05 Feb 14:42

Choose a tag to compare

Release notes

By downloading elastix you accept the conditions written here.
If you use this software, please check the README (section Authors) on how to cite our work.

elastix 5.3.0 was released in February 2026. All binaries were created using ITK 5.4.5.

download description compiler CMake version
elastix-5.3.0-manual.pdf The manual
elastix-5.3.0-windows.zip Windows 64 bit binaries Visual Studio 2022 MSVC 194435222 CMake 3.24.2
elastix-5.3.0-ubuntu.zip Linux binaries (Ubuntu 22.04) GNU 11.4.0 CMake 3.24.2
elastix-5.3.0-macos.zip MacOS 14 ARM64 binaries AppleClang LLVM 15.0.0 (clang-1500.3.9.4) CMake 3.24.2

Note: when using the Windows binaries, you may need to install or update the appropriate Visual C++ redistributable on your machine (typically the one for X64). Visual C++ redistributables can be found at https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist

Major improvements of this release

  • Added a new metric component: IMPACT (Image Metric with Pretrained model-Agnostic Comparison for Transmodality registration), by Valentin Boussot (@vboussot) et al. (pull request #1311)
    • Reference: "IMPACT : A Generic Semantic Loss for Multimodal Image Registration", Valentin Boussot, Cédric Hémon, Jean-Claude Nunes, Jason Dowling, Simon Rouzé, Caroline Lafond, Anaïs Barateau, Jean-Louis Dillenseger, arXiv:2503.24121Under review
    • In order to use this metric, download LibTorch and enable CMake option USE_ImpactMetric. More information: https://github.com/vboussot/ImpactLoss
  • Supported the TOML format for registration parameter files and transform parameter files (pull request #1288, #1289)
    • As alternative to the "legacy" elastix specific text file format
  • Supported fixed width notation for the elastix parameter ResultImagePixelType (pull request #1335)
    • Supported parameter values: "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64", "float32", "float64"
  • Supported registering a 3D slice on a 3D volume (pull request #1388)
  • Improved transformix command-line option "-def" for VTK files (pull request #1253)
    • When the input file is a binary VTK file, the output file is now also a binary VTK file (rather than an ASCII file)
    • When the input file is a VTK file of 32-bit floating points, the output file is now also a VTK file of 32-bit floating points (rather than 64-bit floating points)
    • Inspired by pull request #943 by @ChristophKirst
  • Library enhancements:

Merged pull requests:

  • #1204 BUG: Replace Doxygen "Modules" with "Topics"
  • #1206 Append "Flat" to "OriginalFixedImage/fixedImageOriginal" Direction identifiers, replace some this->
  • #1210 STYLE: Remove warning when UseDirectionCosines is unspecified
  • #1211 DOC: Fix documentation about order of matrix elements Rigid3DTransform
  • #1212 Declare AdvancedBSplineDeformableTransform data members as C-style array, remove this->
  • #1213 Remove ValidRegion properties from BSpline Transforms
  • #1214 Simplify offset estimations for AdvancedBSplineDeformableTransform::SetGridRegion
  • #1208 Add notes on the order of matrix elements of Direction and GridDirection parameters
  • #1217 DOC: Add references to Zenodo to README, for software DOIs
  • #1218 Remove GoToBegin() calls after iterator construction, move iterator variable declarations into init-statement of for
  • #1202 COMP: Remove ITK_DISALLOW_COPY_AND_MOVE from UserData struct's by @thewtex
  • #1220 STYLE: Remove commented out ITK_DISALLOW_COPY_AND_MOVE call
  • #1219 STYLE: Use auto more extensively, by clang-tidy modernize-use-auto
  • #1221 STYLE: Use "typename" for template parameters
  • #1223 PERF: itkGPUShrinkImageFilter use faster TransformPhysicalPointToIndex
  • #1222 COMP: Make itkUseMevisDicomTiff.cxx compile with ITK >= 5.1
  • #1225 STYLE: Use modern C++ range-based for loops in Core/Main and Common
  • #1227 COMP: Add missing semicolons to ITK macro calls
  • #1228 COMP: Add missing semicolons to ElastixRegistrationMethod and OpenCL
  • #1229 Improve elastix SplineKernelTransform handling "-ipp"/"-fp" landmark file parameter
  • #1230 Declare check variables const, rename them to "commandLineArgument"
  • #1231 Remove std::ostringstream{} << when logging a literal string or a command-line argument
  • #1232 Remove ReadLandmarks from StatisticalShapePenalty, make it private in CorrespondingPointsEuclideanDistanceMetric
  • #1233 Use GetFixedPoints, GetMovingPoints in CorrespondingPointsEuclideanDistanceMetric and other style improvements
  • #1234 STYLE: Use GetFixedPoints() in StatisticalShapePointPenalty
  • #1235 Add CorrespondingPointsEuclideanDistancePointMetric GoogleTest unit tests
  • #1236 COMP: Upgrade clang-format-lint-action to v0.18.2
  • #1237 PERF: EuclideanDistanceMetric get vector norm without GetVnlVector()
  • #1241 STYLE: Remove TElementIdentifier parameter from VectorDataContainer
  • #1240 ENH: Add ElastixRegistrationMethod::ImageDimension
  • #1243 ENH: EuclideanDistanceMetric check that point sets are specified
  • #1244 STYLE: Declare local point sets in EuclideanDistanceMetric "const"
  • #1242 PERF: Make GPUImageDataManager->m_Image a weak pointer by @Sager611
  • #1226 Use modern C++ range-based for loops in OpenCL/GPU based code
  • #1246 COMP: remove __write_only from all OpenCL*.cl kernels by @dpshamonin
  • #1247 Itk OpenCLImage test fixes by @dpshamonin
  • #1249 COMP: Add missing semicolon to macro call itkOpenCLVector.hxx line 113
  • #1251 STYLE: Remove top level const from GetDefaultParameterMap return type
  • #1252 STYLE: Clean up AdvancedCombinationTransform::GetNthTransform
  • #1254 Add itkElastixRegistrationMethod Similarity transform unit tests
  • #1253 Transform VTK files in accordance with their format and floating point precision
  • #1257 STYLE: Replace Fill(0) on local variables with {} initialization
  • #1259 STYLE: Replace Fill(0U) and Fill(0.0f) on local variables with {}
  • #1262 Replace itkTypeMacroNoParent, itkTypeMacro with itkVirtualGetNameOfClassMacro, itkOverrideGetNameOfClassMacro
  • #1263 Remove unused PointDataIterator and PointSetPixelType typedefs
  • #1265 Clean-up using-declarations and typedef's CorrespondingPointsEuclideanDistancePoint and other metrics
  • #1264 COMP: Upgrade GitHub actions/upload-artifact from v3 to v4.4.3
  • #1239 Add SetFixedPoints and SetMovingPoints to ElastixRegistrationMethod, for point-to-point EuclideanDistanceMetric
  • #1266 Replace T var; var.Fill with auto var = T::Filled, for both Index and Size
  • #1268 Replace Fill calls with auto var = MakeFilled<T>
  • #1269 STYLE: Replace T var; var = x with T var = x
  • #1271 STYLE: Replace T::Pointer with auto when initializing variables by New()
  • #1267 STYLE: Simplify PyramidImageFilter member SetRescaleScheduleToUnity()
  • #1272 Let ComputeJacobianTerms::Compute return the terms, and other style improvements in "Common/itkCompute*.*"
  • #1273 Remove notfinished variables from ComputeJacobianTerms, and other style improvements
  • #1274 COMP: Replace macos-12/macOS-12 with macos-13/macOS-13, in *.yml
  • #1275 Simplify use of NonZeroJacobianIndices in Common/itkCompute*.hxx, let SampleFixedImageForJacobianTerms() return std::vector, etc
  • #1276 Remove sampler typedefs from "Common/itkCompute*.h", let Compute...Distribution use their own template parameters
  • #1277 Use vnl_sparse_matrix::get in ComputeJacobianTerms::Compute()
  • #1279 COMP: Upgrade from ITK 5.4.0 to ITK 5.4.1
  • #1280 Replace "CoordRep" with "Coordinate"
  • #1282 DOC: Add EOSS badge to README
  • #1285 STYLE: Remove this-> when ParameterFileParser accesses its own data
  • #1286 Make ReturnParameterFileAsString static, remove m_ParameterFileParser from Configuration
  • #1287 Print the parameter map to log, when there is no parameter file
  • #1288 Support the TOML file format for input parameter files
  • #1289 ENH: Support OutputTransformParameterFileFormat parameter for TOML
  • #1290 Upgrade clang-format from version 8.0.0 to 19.1.4
  • #1291 ENH: Add pre-commit and pixi configuration by @thewtex
  • #1294 Remove dynamic_cast's from NDImageBase::NewNDImage, modernize NDImageTemplate, etc.
  • #1293 pre commit action by @thewtex
  • #1295 STYLE: Remove this-> when elx::TransformBase accesses its own data
  • #1296 STYL...
Read more

5.2.0

18 Jul 14:10

Choose a tag to compare

Release notes

By downloading elastix you accept the conditions written here.
If you use this software, please check the README (section Authors) on how to cite our work.

elastix 5.2.0 was released in July 2024. All binaries were created using ITK 5.4.0.

download description compiler CMake version
elastix-5.2.0-manual.pdf The manual
elastix-5.2.0-win64.zip Windows 64 bit binaries Visual Studio 2022 MSVC 194033812 CMake 3.24.2
elastix-5.2.0-linux.zip Linux binaries (Ubuntu 22.04) GNU 11.4.0 CMake 3.24.2
elastix-5.2.0-mac.zip MacOS 12 binaries AppleClang LLVM 14.0.0 (clang-1400.0.29.202) CMake 3.24.2

Note: when using the Windows binaries (elastix-5.2.0-win64.zip), you may need to install or update the appropriate Visual C++ redistributable on your machine (typically the one for X64). Visual C++ redistributables can be found at https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist

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 and SetLogLevel member functions to both itk::ElastixRegistrationMethod and itk::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 errors
71a4a9a Added SetTransformParameterFileName(string) and GetTransformParameterFileName() to itk::TransformixFilter
9e64269 Let itk::ElastixRegistrationMethod write the transform maps from its InitialTransformParameterObject to the output directory.
48c6458 Added SetInitialTransformParameterObject(parameterObject) to itk::ElastixRegistrationMethod
115d8e1 Added SetInitialTransform(transform) to itk::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 and itk::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:

  • The internal ComputeImageExtremaFilter has been made up to 6x as fast (pull request #1046), significantly improving the performance of metric components
  • Full Sampler and Grid Sampler have been made ~3x as fast, when the input image and the mask have the same domain (geometry)
    3x as fast
  • Grid Sampler is made multithreaded
  • Grid Sampler is using memory more efficiently (by doing sampleVector.reserve), making the sampling twice as fast (on the use case of sampling without mask)
  • Samplers have multithreading enabled by default. Affects Full, Random, RandomCoordinate, and RandomSamplerSparseMask samplers.
  • Speed up full, grid, sparse mask samplers by using a local sampleVector variable. (May make sampling almost twice as fast.)
  • Internal function calls of the form 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's ThreadPool.

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, and GetCombinationTransform, 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

elastix 5.1.0

12 Jan 15:08

Choose a tag to compare

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

elastix 5.0.1

05 Oct 16:01

Choose a tag to compare

Release notes

By downloading elastix you accept the conditions written here.

elastix 5.0.1 was released in October 2020. All binaries were created using ITK 5.1.1.

download description compiler CMake version
elastix-5.0.1-manual.pdf The manual
elastix-5.0.1-win64.zip Windows 64 bit binaries MSVS 2019 CMake 3.18.3
elastix-5.0.1-linux.tar.bz2 Linux binaries GCC 9.3.0 CMake 3.16.3
elastix-5.0.1-mac.zip MacOS binaries Clang 4.2.1 LLVM 11.0.3 CMake 3.18.1

Some download statistics can be found here.

Enhancements

Contributors

This release has commits by (in alphabetic order): Andras Lasso, Andrey Saenko, Colin Sullender, Kasper Marstal, Marius Staring, Matt McCormick, Niels Dekker, Stefan Klein

elastix 5.0.0

28 Oct 14:45

Choose a tag to compare

Release notes

By downloading elastix you accept the conditions written here.

elastix 5.0.0 was released 21-10-2019. All binaries were created using ITK 5.0.1.

download description compiler CMake version
elastix-5.0.0-manual.pdf The manual
elastix-5.0.0-win64.zip Windows 64 bit binaries MSVS 2017 CMake 3.15.4
elastix-5.0.0-linux.tar.bz2 Linux 64 bit binaries gcc 7.4.0 CMake 3.10.2
elastix-5.0.0-mac.tar.gz Apple Mac 64 bit binaries Clang 4.2.1 LLVM 10.0.1 CMake 3.15.4

Some download statistics can be found here.

Enhancements

  • elastix has migrated to the recent ITK version 5.0.1! ITK5 is a major new release featuring among others a move to GitHub, switching to C++11, thread pools, and a new spatial object implementation. These modifications have quite some impact on elastix, and we decided to adopt them. In order to do so, quite a number of modifications were directly integrated and contributed to the ITK. Long story short, elastix 5.0.0 can now be build with the latest release of ITK (v5.0.1), using the CMake flag ITK_LEGACY_REMOVE ON. elastix does not build anymore with earlier versions of ITK.

  • We have migrated to the new SpatialObject implementation of ITK. This was quite involved, as the masks used in elastix are actually spatial objects, and are used throughout.

  • We have started to use new C++11 language features, such as the use of nullptr, switched to using new Standard C++ Library functions, using the override keyword, and removal of the register keyword and dynamic exception specifications. This also means that we have dropped support for compilers that do not support these new features.

  • We have added the command line option --extended-version that additionally gives version information about the toolchain that we use.

  • We started using GoogleTest for unit testing, complementary to the existing elastix registration tests.

New classes and methods

Bug fixes

  • We fixed an overflow issue in the samplers, that occurred in case of really large images.

  • 'elastix 4.9.0' suffered from a performance regression, which was targeted down to the ITK library. The timer that we used (an itk::ResourceProbe) had some serious overhead introduced in ITK 4.9. We fixed it in the ITK directly.

  • We fixed a bug in the library interface (TransformixFilter): it was not propagating direction information.

Contributors

This release has commits by (in alphabetic order): Floris Berendsen, Niels Dekker, Stefan Klein, Kasper Marstal, Matt McCormick, Csaba Pinter, Denis P. Shamonin, Marius Staring, Harmen Stoppels

elastix 4.9.0

20 Mar 08:36
6e03163

Choose a tag to compare

Release notes

By downloading elastix you accept the conditions written here.

elastix 4.9.0 was released 20-03-2018. All binaries were created using ITK 4.13.0.

download description compiler CMake version
elastix-4.9.0-manual.pdf The manual
elastix-4.9.0-win64.zip Windows 64 bit binaries MSVS 2015 CMake 3.7.1
elastix-4.9.0-linux.tar.bz2 Linux 64 bit binaries gcc 5.4.0 CMake 3.5.1

Some download statistics can be found here.

Enhancements

  • The library interface of elastix has been completely redesigned! It now consists of an ITK filter that can be used in ITK pipelines together with other filters. The new library interface is currently used in SimpleElastix. You can read more about the design in the SimpleElastix paper. Transformix got a corresponding ITK filter. Support for a user-supplied initial transform was added by Bartolomejka.

  • CUDA support was removed from elastix.
    The OpenCL implementation that was included in the previous release is much more mature and supports much more use cases.

  • For the OpenCL accelerations it is now possible to select the GPU in the parameter file.
    This can be done using the option (OpenCLDeviceID "<x>")

  • Multi-threading was added to the displacement distribution code, which is part of the ASGD optimizer.

  • We added an option to compute the exact metric value every few iterations, which is nice for evaluation purposes.

  • The testing framework was made independent of external libraries. Travis CI and AppVeyor were added as Continuous Integration services. Thank you Andrey Fedorov!

New classes and/or methods

Bugs

  • There was a remnant of the old elxTimer classes still in the library interface code. This was removed.

  • There were some fixes in the xout logging library, related to memory leaks when instantiating multiple elastix libraries.

  • A memory leak due to a smart pointer cycle was fixed by Coert Metz.

  • Certain B-spline kernels used for interpolation had a small implementation mistake.

  • Steve Robbins performed a long list of cleanups, addressing Valgrind errors, testing and dashboard setup, library definition, and installation. Thank you Steve!