ITK 5.1 Beta 1: NumPy Interface, Part 1, available for download

We are happy to announce that the Insight Toolkit (ITK) 5.1 Beta 1, is available for testing! ITK is an open-source, cross-platform toolkit for N-dimensional scientific image processing, segmentation, and registration.

ITK 5.1 Beta 1 is a pre-release to enable testing of major improvements to ITK’s NumPy interface.

Python Packages

ITK Python packages can be installed by running:

The --pre flag will install the beta pre-release.

Library Sources

Testing Data

Unpack optional testing data in the same directory where the Library Source is unpacked.

Checksums

Pass NumPy Array’s to ITK Image Filters

The Pythonic, functional-like interface to all ITK image-to-image-filters now directly supports operation on NumPy array’s, i.e. numpy.ndarray. If a ndarray is passed as an input, a ndarray is returned as an output.

For example,

Previously, explicit conversion to / from an itk.Image was required with itk.array_from_image and itk.image_from_array.

We can now also convert an itk.Image to a numpy.ndarray with the standard np.asarray call.

Python 3 Only

ITK 5.1 will be the first Python 3-only release. Consistent with most scientific Python packages and CPython’s 2020 drop in support, Python 2 support and binaries will no longer be available.

clang-format enforced C++ coding style

ITK has adopted a .clang-format coding style configuration file so a consistent coding style can automatically be applied to C++ code with the clang-format binary. A consistent coding style is critical for readability and collaborative development.

clang-format has been applied to the entire codebase. The Whitesmiths style of brace indentation, previously part of the ITK Coding Style Guidelines, is not supported by clang-format, so it has been replaced by a brace style consistent with VTK’s current style.

A Git commit hook will automatically apply clang-format to changed C++ code. We are refining the related documentation and improving automated application of the style.

Point Set Registration Parallelism

ITK provides a powerful registration framework for point-set registration, offering information-theoretic similarity metrics, labeled point-set metrics, and spatial transformation models that range from affine to b-spline to dense displacement fields. ITK 5.1 features enhanced parallelism in point-set metric computation, leveraging the native thread-pool and Threading Building Blocks (TBB) enhancements in ITK 5.

ITK 5 Improvements

Many more improvements and refinements were added since the ITK 5.0.0 release, which are detailed in the change log below. For example, a number of improvements were made to the itk::SpatialObject’s.

Congratulations

Congratulations and thank you to everyone who contributed to this release. Of the 25 authors, we would like to specially recognize the new contributors: James Butler, Neslisah Torosdagli, Rinat Mukhometzianov, Genevieve Buckley, and yjcchen091.

What’s Next

Additional improvements ITK’s NumPy interface are planned for the next pre-release. Try out the current release, and take part in the community discussion at discourse.itk.org. Contribute with pull requests, code reviews, and issue discussions in our GitHub Organization.

Enjoy ITK!

Changes from 5.0.0 to 5.1 Beta 1

2 Responses to ITK 5.1 Beta 1: NumPy Interface, Part 1, available for download

  1. Taylor Braun-Jones says:

    Shouldn’t the title be “ITK 5.1 Beta 1” (not “ITK 5.0 Beta 1”)?

Questions or comments are always welcome!

X