Changes of elastix 4.6 compared to elastix 4.5
elastix 4.6 builds with the new ITK 4.2!
elastix 4.6 does not compile anymore with ITK 3.20.
- A bug introduced in ITK 4.0 (BSplineInterpolateImageFunction) was fixed in ITK 4.1, so we do not recommend to compile elastix with ITK 4.0.
- Due to the change to ITK4, the results of
elastix 4.6 are very close, but not in all cases identical to
elastix 4.5; we are not sure where these minor differences come from.
- The testing framework was greatly enhanced.
elastix registrations are now run on both 2D and 3D data, using a variety of components. Its results are checked nightly to be consistent with baseline results, using crc32 checksums of the final transform parameters (rounded to 6 digits), resulting images, and vector distances. This testing framework proved to be very useful during the transition to ITK4. The updated testing framework also revealed numerical differences between machines. To accomodate that, we provide machine-specific baselines for three dashboard tests.
- A minor performance enhancement in the RandomCoordinate sampler of using a linear interpolator whenever a first order B-spline interpolator was selected.
- The FixedImageDimension and MovingImageDimension don't need to be specified in the parameter file anymore. They are now taken from the image file headers directly. If it is still specified in the parameter file, it should match the header.
- ITK4's libtiff is now used for the MevisDicomTiff IO, so there is no need for a system libtiff anymore, which eases compilation. If you compile with MevisDicomTifffIO support, and you want to write result images in dcm/tiff format, set the ResultImageFormat to "tiff". ".dcm" will still result in a normal .dcm file.
- The kappa statistic metric can now be used in two modes: a comparison with a foreground value, and a comparison with nonzero.
New classes and/or methods:
- Vivien Delmon added a new transform:
MultiBSplineTransformWithNormal, useful for sliding objects (e.g. the lung).
This transform can be selected using:
See this entry in the parameter file database to checkout its usage: http://elastix.bigr.nl/wiki/index.php/Par0016.
He published a paper about it at MICCAI 2011: Direction dependent B-splines decomposition for the registration of sliding objects, link.
- An experimental transform inversion program was added to the testing directory of
elxInvertTransform. It takes an
elastix TransformParameter file and outputs one. Currently, only a single 3D transform is supported (no concatenation), and only the Euler (rigid) and affine transform. It would be easy to add more transforms, except for the B-spline.
- A patch was applied to address VS2005 compiler issues. This patch was contributed by Rupert Brooks, and consists mostly of removing "
using namespace itk" from the source code. Note that VS2005 still gives some other problems, so is not yet officially supported.
- Addressed a compiler warning about the compiler flag
-ftempate-depth-50 being propagated to the CUDA compiler.
- Fixed some GPU memory leaks in the CUDA resampler. Reported by Ruwan Tennakoon on the mailing list.
- The amount of samples for the Grid sampler was much smaller than requested when using small masks.
- unsigned char and char parameter file entries were not correctly interpreted.
- unsigned char and char versions of the DefaultPixelValue were not written correctly to the TransformParameters file when it was set to 0. Reported by Floris Berendsen.
- Fixed a segfault in the
- With the new ITK 4 the CUDA components have a problem: the Windows nvcc compiler complains that the command line is too long. This effectively means that
elastix' CUDA functionality is broken on Windows. A bug report has been posted to the ITK bug tracker, but is not yet fixed.
TranslationTransformInitializer did not take into account the direction cosines with the mode GeometricalCenter.
- Vivien Delmon fixed a memory issue for 2D-3D registration related to the gradient of the moving image.