ITK 5.0 Alpha 1: Modern C++

It appears that the current ITK master branch is in some cases > 40 x faster (yes, more than forty times!) than 4.13. :star_struck: At least, that’s what I observed, doing HoughTransform2DCirclesImageFilter::Update(), compiled with MSVC 2015 64-bit Release. The source of my little test is at item 4 of the topic Removal of `virtual` keywords from ConstNeighborhoodIterator - #4 by blowekamp

The specific filter->Update() call in that test takes me more than 10 minutes when using ITK 4.13, and less than 15 seconds when using the ITK master branch!!! As I observed with commit Merge topic 'Remove-virtual-NeighborhoodAccessorFunctor-destructor' · Kitware/ITK@fa68b53 · GitHub.

This performance gain was achieved by a number of independent improvements, including:

  • A rigorous code cleanup of GaussianDerivativeImageFunction, especially
  • Reducing the number of memory allocation during neighborhood operations, for example:
  • Removing virtual function calls during neighborhood iteration:
  • Introduction of a new ShapedImageNeighborhoodRange class

Hope that helps, Niels

2 Likes