ITK 4.11 Release Candidate is Available for Testing

January 10, 2017
Perturbing Mesh Vertices with Additive Gaussian Noise

On behalf of the Insight Toolkit community, we are proud to announce that ITK 4.11 release candidate 1 has been tagged and is available for testing! Please take this opportunity to test the new features in the release candidate.

Perturbing Mesh Vertices with Additive Gaussian Noise
Insight Journal article included as a Remote Module, DVMeshNoise: Perturbing Mesh Vertices with Additive Gaussian Noise.

A few selected highlights for this release:

  • Remote Modules were added to: perturb mesh vertices with additive gaussian noise, accurately benchmark computational performance, perform principal components analysis of scalar, vector, and mesh vertex data, create a run-length encoded memory compression scheme for itk::Image, run N-D morphological contour interpolation, interpolate multi-label images, iterate over multiple images simultaneously, and compute inverse displacement fields.
  • NumPy bridge support is now enabled by default with NumPy array views of multi-component images and VNL vectors and matrices.
  • Internal HDF5 was updated to the latest upstream version along with a number of other third-party libraries.

This release introduces a new template class export specification macro, ITK_TEMPLATE_EXPORT. The macro should be used with templated classes to address failing dynamic_cast’s and exception catching across binaries on Mac OSX.

Bugs were addressed and improvements were made to how the pseudo-random number generator is used. Tests that rely on the random number generator should explicitly set the global seed at start:

itk::Statistics::MersenneTwisterRandomVariateGenerator::GetInstance()->SetSeed( 121212 );

To improve randomness, new instances of the generator start from a different seed; some minor differences in the output of algorithms that uses the generator, like mutual information metrics, should be expected.

Please test the release candidate and share your experiences on the mailing list, issue tracker, and Gerrit Code Review.

Congratulations to the 31 contributors to this release. We would especially like to recognize the new contributors: Hastings Greer, Gilles Filippini, Thien Nguyen, Caspar Goch, Mayeul Chassagnard, Somesh Kashyap, Simon Rit, Pierre Barbier de Reuille, and Maeliss Jallais.

The 4.11.0 final release is scheduled for January 23rd.

New Features

Wrapping Improvements

  •  Python GetArrayFromImage() and GetImageFromArray() from ITKBridgeNumPy are directly accessible from the Python itk namespace.
  •  The itk package loads much faster: individual modules are loaded only when required.
  •  Conversion of ITK images from and to NumPy array using Bridge NumPy supports RGB, RGBA, and Vector images.
  •  VNL vectors and VNL matrices can be converted from and to NumPy objects with respectively the new couple of functions GetArrayFromVnlVector()/GetVnlVectorFromArray() and GetArrayFromVnlMatrix()/GetVnlMatrixFromArray()
  •  The global timestamp is used across all ITK Python modules when built statically
  •  Wrap additional classes such as KernelFunctionBase
  •  itk_python_add_test CMake function added for Python script testing in ITK modules

New Remote Modules

Core Improvements

  •  New ITK_TEMPLATE_EXPORT for templated classes resolves cross-binary dynamic_cast on Mac OSX
  •  New MersenneTwisterRandomVariateGenerator instances are initialized with different seed
  •  Use compiler feature detection in CMake for C++11 features, etc
  •  New CMake macro itk_module_add_library for creating libraries in ITK module
  •  Improved support for ccache and distcc with CMAKE_<LANG>_COMPILER_LAUNCHER (CMake >=3.4 required
  •  Support for .sha512 ExternalData content link
  •  GitHub Pages and data.kitware.com ExternalData repositories added
  •  GPGPU system support for C++11
  •  Support of new compilers: Visual Studio 15 and XCode 8.2.1 (clang-800.0.42.1)

Filtering Improvements

  •  HessianToObjectnessMeasure moved out of the ITKReview module
  •  New UnsharpMaskImageFilter for image edge enhancement

IO Improvements

  • TransformFactory class has been moved to a separate module
  •  Spline order added to BSplineTransform identifier
  •  Improved NIFTI orientation support

Documentation Improvements

  •  Updates to the Software Guide, Doxygen, Wiki and Sphinx Examples

Third Party Library Updates

  •  pygccxml updated to v1.8.0
  •  VNL updated to latest upstream (2016.07.06)
  •  SWIG updated to v3.0.11
  •  KWSys updated to latest upstream (2016.11.21)
  •  HDF5 updated to v1.8.17
  •  SCIFIO updated to latest upstream (2016.12.01)
  •  DCMTK updated to 3.6.1_20121012
  •  CastXML to latest upstream (2016.01.28)

Improved Code Coverage

2 comments to ITK 4.11 Release Candidate is Available for Testing

Leave a Reply