Skip to content

Releases: InsightSoftwareConsortium/ITK

ITK 5.1 Beta 1: NumPy Interface, Part 1

24 Sep 20:29
v5.1b01
d2e5114
Compare
Choose a tag to compare
Pre-release

ITK 5.1 Beta 1 Release Notes

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:

pip install --upgrade --pre itk

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,

smoothed = itk.median_image_filter(array, radius=2)

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.

import numpy as np
import itk

image = itk.imread('/path/to/image.tif')
array = np.asarray(image)

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

Bradley Lowekamp @blowekamp (32):
      BUG: Use ProcessObject GetInput to obtain base pointer
      BUG: Fix ProcessObject::RemoveOutput for null objects.
      COMP: Address missing fftw include in CurvatureRegistrationFilter
      BUG: Fix ProcessObject::RemoveOutput for null objects.
      BUG: Add casting for vector pixel types
      STYLE: Use CTEST_TEST_TIMEOUT
      ENH: Add testing for CastImageFilter for more type conversions
      BUG: Restore support for Cast between explicitly cast-ed pixel type
      BUG: Use ProcessObject GetInput to obtain base pointer
      ENH: Add testing for CastImageFilter for more type conversions
      BUG: Restore support for Cast between explicitly cast-ed pixel type
      BUG: Add DataObject::New method
      BUG: Install FFTW headers in same location as ITK
      Revert "BUG: InterpolateImageFunction::GetRadius hidden in ITKV4_COMPATIBILITY"
      BUG: Preserve Interpolate GetRadius behavior with ITKv4Compatibility
      Revert "COMP: forgotten class for ITKV4_COMPATIBILITY in 2aae174"
      BUG: HDF5 is clobbering ctest TIMEOUT variables
      COMP: Fix not marked 'override' for ImageSink destructor
      BUG: Use enable_if with SFINAE to dispatch
      ENH: Add Vector constructor from C arrays with cast
      COMP: Work around uninitialized value warnings
      ENH: Update ITKv4 registration example to use resample over warp
      BUG: Specify specific CircleCI docker image with platform
      COMP: Address compilation warning with aggregate initializer
      BUG: Specify specific CircleCI docker image with platform
      ENH: Adding VS2019 v142, VS2017 v140 Azure Pipelines on merge
      DOC: Tweak internal documentation in SliceImageFilter
      BUG: Address bug with small size in output of SliceImageFilter
      ENH: Add more test cases for the SliceImageFilter
      COMP: Address internal compiler error on MSVC 19.0.24234.1 (v140)
      ENH: Add check expected input in HistogramMatchingImageFilter
      COMP: Add missing enum type_name from prior enum declaration style

Csaba Pinter @cpinter (2):
      BUG: Fix loading of DICOM files with no preamble
      ENH: Add test for DICOM without preamble for DCMTK and GDCM

Davis Vigneault @DVigneault (1):
      BUG: Make BuildCellLinks method const

Dženan Zukić @dzenanz (32):
      BUG: number of work units was greater than 1 even for 1 thread
      BUG: fix a crash with ITK_DEFAULT_MAX_THREADS greater than 250
      BUG: resample filter no longer triggers unnecessary exception
      COMP: change export specification to template for un-specialized method
      COMP: forgotten class for ITKV4_COMPATIBILITY in 2aae174
      ENH: use double-conversion's CMake targets
      COMP: fix warning about missing override in CastImageFilter
      DOC: wrong class name for PlatformMultiThreader
      COMP: get rid of MSVC's warning 4661
      ENH: enable GaussianInterpolateImageFunction to work with streaming
      STYLE: reduce space in ivar declarations
      STYLE: ITK indentation style in test
      STYLE: invert the name and internal logic of waiting for threads
      BUG: ThreadPool::DoNotWaitForThreads did not work properly
      STYLE: Add ITK prefix to testing macros in release branch
      DOC: invocation of AddWork uses -> because instance is always a pointer
      ENH: updating remote modules
      ENH: PoolMultiThreader uses one less thread
      ENH: documenting supported compilers
      ENH: updating remote modules
      STYLE: more consistent code formatting in test driver
      BUG: offset was not updated after changing Euler angle order (ZYX)
      Fix broken link in Data.md
      ENH: support RGB image in windowed sinc interpolation
      ENH: support RGB image in windowed sinc interpolation
      ENH: updating remote modules
      ENH: back-porting #1165 to support Visual Studio 2019
      ENH: updating remote modules
      COMP: fixed enum name error when legacy is OFF and ITK_USE_GPU is ON
      ENH: removing deprecated Python functionality: imp
      ENH: removing deprecated Python functionality: sys.version_info 2/3
      ENH: removing deprecated Python functionality: import print_function

Francois Budin @fbudin69500  (4):
      BUG: ImageBase regions and ImageRegion properties are returned as reference
      DOC: Add ITK 5.0 release notes
      BUG: m_NumberOfPointPixels was set equal to m_NumberOfPoints
      ENH: Adds swig include directory to command line

GDCM Upstream (1):
      GDCM 2019-05-22 (cc5358a1)

Genevieve Buckley @GenevieveBuckley (1):
      BUG: All exceptions must be derived from python's BaseException class

Hans J. Johnson @hjmjohnson (64):
      ENH: Update SphinxExamples to lastest master branch
      COMP: Add attribute for large do...
Read more

ITK 5.0.1

25 Jul 17:34
v5.0.1
aaa9989
Compare
Choose a tag to compare

ITK 5.0.1 Release Notes

We are happy to announce the Insight Toolkit (ITK) 5.0.1! 🎉 ITK is an open-source, cross-platform toolkit for N-dimensional scientific image processing, segmentation, and registration.

Python Packages

ITK Python packages can be installed by running:

pip install itk

or to install the conda package, run:

conda install -c conda-forge itk

Software Guide

Library Sources

Testing Data

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

Checksums

ITK 5.0.1 is the first patch release that addresses issues identified in the major 5.0.0 release. For more details on ITK 5, see the ITK 5.0.0 Release Notes.

This release improves support for ITK's use in Dask, the scientific Python distributed computing library, addresses a number of build and runtime corner cases, and makes updates to the Software Guide for ITK 5. For more details, see the Changelog below. Thank you to everyone who contributed to the release.

What's Next

Join us in the creation of advanced, open source scientific image analysis tools. The ITK Examples are currently undergoing a major integration and update effort lead by community member Hans Johnson -- your participation is welcome. Take part in the community discussion at discourse.itk.org. Contribute with pull requests, code reviews, and issue discussions in our GitHub Organization.

We have a soft commitment to backwards compatibility to address any potential API or architectural issues until the next feature release. Stay tuned for upcoming announcements on ITK's integration with modern web technologies and improved support for Remote Module development on GitHub.

Enjoy ITK!

Changes from 5.0.0 to 5.0.1

Bradley Lowekamp (8):
      BUG: Fix ProcessObject::RemoveOutput for null objects.
      BUG: Use ProcessObject GetInput to obtain base pointer
      ENH: Add testing for CastImageFilter for more type conversions
      BUG: Restore support for Cast between explicitly cast-ed pixel type
      BUG: Install FFTW headers in same location as ITK
      COMP: Fix not marked 'override' for ImageSink destructor
      BUG: Use enable_if with SFINAE to dispatch
      BUG: Specify specific CircleCI docker image with platform

Dženan Zukić (5):
      BUG: resample filter no longer triggers unnecessary exception
      COMP: forgotten class for ITKV4_COMPATIBILITY in 2aae174
      COMP: fix warning about missing override in CastImageFilter
      STYLE: Add ITK prefix to testing macros in release branch
      ENH: documenting supported compilers

Francois Budin (2):
      BUG: ImageBase regions and ImageRegion properties are returned as reference
      DOC: Add ITK 5.0 release notes

GenevieveBuckley (1):
      BUG: All exceptions must be derived from python's BaseException class

Matthew McCormick (16):
      ENH: New content links for ITK 5.0.0
      STYLE: DeformableRegistration2 line length warnings
      COMP: SpatialObjectsHierarchy Software Guide newline
      BUG: Add test/CMakeLists.txt stub to NumPy bridge
      COMP: Provide NumericTraits<complex<T>>::ZeroValue() definition
      BUG: Do not require PyBUF_WRITABLE in GetArrayViewFromImage
      DOC: Update supported Python versions warning
      BUG: Add PEP 366 __package__ support to ITKLazyModule
      BUG: Release the Python Global Interpreter Lock (GIL) during execution
      STYLE: Apply ITK Style Guidelines to itkPyCommand.cxx
      BUG: itk::PyCommand ensures the GIL state
      BUG: Support pickling LazyITKModule with cloudpickle
      BUG: Add Pipeline name to Azure configuration
      DOC: Update Azure Pipelines badge URL's
      BUG: Add wrapping for TransformMeshFilter
      ENH: Bump itkVersion.cmake for 5.0.1

Pablo Hernandez-Cerdan (1):
      BUG: Fix COMPILE_DEFINITIONS of castxml

Stephen Aylward (4):
      ENH: Updated Spatial Object tex to match ITKv5
      BUG: Fixed spelling mistakes and use of plural member functions
      BUG: Fix grammar and naming mistakes in SpatialObject documentation
      DOC: Fixed expected output of examples and documentation

yjcchen0913 (1):
      BUG: Ensure strict weak ordering in HessianToObjectnessMeasure's sort

ITK 5.0.0

29 May 18:54
v5.0.0
3e12e70
Compare
Choose a tag to compare

ITK 5.0.0 Release Notes

We are happy to announce the Insight Toolkit (ITK) 5.0.0! 🎉 ITK is an open-source, cross-platform toolkit for N-dimensional scientific image processing, segmentation, and registration.

ITK 5.0.0 is a major release that features an incredible number of improvements: This includes major enhancement in the development process, major code refactoring, addition of important features, improvement of ITK Python wrapping, and more.

Python Packages

ITK Python packages can be installed by running:

pip install itk

or to install the conda package, run:

conda install -c conda-forge itk

Software Guide

Library Sources

Testing Data

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

Checksums

Montage Poster
Montaging for microscopy imaging files with the new ITKMontage remote module: High-Performance, Open-Source Microscopy Image Montaging. Matthew McCormick , Dženan Zukić , François Budin , Michael Jackson, Dennis Dimiduk , David Rowenhorst , Sean Donegan, and Michael Groeber. WBIR 2018.

ITK on GitHub

An important step has been taken to faciliate participation of the community in the development of ITK: The official repository was moved to GitHub! This move includes ITK's main repository, as well as many other ITK projects such as the ITKExamples, and many ITK remote modules. It is now very easy for anyone to participate in the development of the library. This has already been a success with many new authors getting involved and submitting patches through the GitHub pull-request mechanism. This change also includes moving the issue tracker to the GitHub issue tracker where any problem encountered with ITK should be reported. ITK's GitHub migration was explained in more detail in ITK 5.0 Beta 3: GitHub. Finally, moving ITK to GitHub made it straightforward to use Microsoft Azure Pipeline Continuous Integration platform: Each pull-request is tested on all 3 major platforms (Windows, Linux, MacOS) and Python builds can be requested to ensure that a patch can be integrated.

C++11

Major C++ code refactoring brought dramatic improvements to ITK's API and performance (see ITK 5.0 Alpha 1: Modern C++ for more details). ITK now uses the C++11 standard allowing the developers full access to its new powerful features such as range-based loops, constexpr, lambda expressions, and uniform initialization syntax. Using C++ 11 also removes the necessity of many ITK macros (e.g. ITK_NULLPTR, ITK_DELETED_FUNCTION) which have equivalents in the new standard. This also leads to changes in style to match the C++ 11 best practices. This includes replacing typedef calls with the using keyword to improve source code readability. ITK's C++ code is easier to read, understand, and maintain!

Thread Pool

This new release of ITK also integrates big performance improvements thanks to the refactoring of the multithreading infrastructure with a thread pool available by default, and the possible usage of the Intel Threading Building Blocks (TBB) threading backend (see ITK 5.0 Alpha 2: Performance for benchmarks).

Spatial Objects

Additionally, a major upgrade of the ITK Spatial Object framework, which provides a representation of objects and the mechanism to specify their spatial relationship relative to other objects in a scene, was integrated in this new version of ITK. The new code improves consistency in the programming interface and simplifies implementation and usage (more details in ITK 5.0 Release Candidate 2: Spatial Object’s.

New Features

Other new features in this ITK release include new algorithms, better mesh support (see ITK 5.0 Release Candidate 1: Meshes), new global variable model using one singleton, and better streaming capabilities.

Third Party Libraries

Eigen, a C++ library for linear algebra, was integrated in ITK and gradual transition from VXL to Eigen for Linear algebra is planned. Many third party libraries were updated: VNL, DCMTK, GDCM, HDF5, KWSys, MetaIO, Zlib, GIFTI, nifti, pygccxml.

Remote Modules

Remote modules, which allow easy integration of new image processing algorithm in ITK, were updated and new Python packages compatible with this new release of ITK were created. Four new remote modules were also added to ITK: PhaseSymmetry, IOOpenSlide, Montage, and BSplineGradient (description of the modules in ITK 5.0 Beta 3: GitHub).

Python

Traditionally, ITK in Python had to be used through an object-oriented interface. In this new release, we have added a functional interface which is more Pythonic and should be more familiar to Python programmers. Examples on how to use this new procedural interface are available in ITK 5.0 Beta 1: Pythonic Interface.

Congratulations

Congratulations and thank you to everyone who contributed to this release. Of the 49 authors, we would like to specially recognize the new contributors, Isaiah Norton, maekclena, Rashad Kanavath, Bai Shi, Hui Xie, Martino Pilia, Ally Warner, pierre33, Chao Wu, Gregory C. Sharp, Bryce A Besler, Kwame Kutten, Mihail Isakov, Jerome Schmid, Roman Grothausmann, Alexis Girault, Gabriel A. Devenyi, Marian Klymov, Thomas Janvier, and Forrest Li.

Migration to ITKv5

The ITK 5 Migration Guide is available to help transition a code base from ITK 4 to ITK 5. Please discuss your experiences on Discourse.

What's Next

Join us in the creation of advanced, open source scientific image analysis tools. Get started with the ITK examples. Take part in the community discussion at discourse.itk.org. Contribute with pull requests, code reviews, and issue discussions in our GitHub Organization.

We have a soft commitment to backwards compatibility to address any potential API or architectual issues until the next feature release. Stay tuned for upcoming announcements on ITK's integration with modern web technologies and improved support for Remote Module development on GitHub.

Enjoy ITK!

Changes from 5.0 RC 2 to 5.0.0

Alexis Girault @agirault (4):
      ENH: Compare images converted from and to VTK in ITKVtkGlue tests
      ENH: Pass directions in VTKImage import/export classes
      ENH: Throw exception when necessary while importing a vtk image
      BUG: Ignore calls to the direction APIs in VTK if lower than 8.90

Bradley Lowekamp @blowekamp (46):
      COMP: Address const char[] conversation warning
      BUG: Fix leaking PNGIO resources during exception
      BUG: Remove redundent fclose on PNG file pointer
      ENH: Add Valgrind suppression file for Ubuntu 18.04 LTS
      BUG: Update FEM test for new spatial objects
      COMP: Correct continuous index type
      BUG: Address valgrid defects related to the PointSpatialObject
      BUG: Fix ownership of environment variable value
      BUG: Fix leak in SpatialObject InternalClone method
      ENH: Update a couple example to use the resample instead of warp
      BUG: Set all component of 3D points
      BUG: Add named output support to StreamingImageFilter
      ENH: Deprecate VectorResampleImageFilter
      ENH: Consolidating setting compression level interface to ImageIOBase
      ENH: Implement InternalSetCompressor method in ImageIOs
      DOC: Add compression documentation to ImageIOs
      ENH: Use the empty string "" for the default compressor
      ENH: Add compression level support to NRRD IO
      ENH: Improve TIFF ImageIO compression testing
      ENH: Add base class for generic streaming processes
      ENH: Add ImageSink base filter class
      ENH: Use streaming base class for LabelStatisticsImageFilter
      ENH: Use named input in LabelStatisticsImageFilter
      ENH: Add streaming support to StatisticsImageFilter
      ENH:...
Read more

ITK 5.0 Release Candidate 2: Spatial Object's

30 Apr 20:56
v5.0rc02
90bdbdf
Compare
Choose a tag to compare

We are happy to announce the Insight Toolkit (ITK) Release Candidate 2! 🎉 This will be the final release candidate before the 5.0.0 release, and the community is encouraged to adopt 5.0 RC 2 in ITK-based applications.

Python Packages

ITK Python packages can be installed by running:

python -m pip install --upgrade pip
python -m pip install --upgrade --pre itk

Library Sources

Testing Data

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

Checksums

ITKTotalVariationDenoising

Image denoising with the new ITKTotalVariation remote module. Left: Transmission electron microscopy image of pectin. Right: Denoised image.

This release features a major upgrade to the ITK Spatial Object framework, led by Stephen Aylward, with contributions from Hastings Greer, Forrest Lee, Niels Dekker, Dženan Zukić, and Hans Johnson. In ITK, a itk::SpatialObject provides a representation of objects and the mechanism to specify their spatial relationship relative to other objects in a scene. Objects can be images but also abstract, parametric entities, such as a ellipse, box, or arrow, or point-based, such as a tube, contour, or surface. Objects can be organized into spatial hierarchies.SpatialObjects are key for model-based registration, integration of segmentation results in multiple formats, conversions to and from images, and capturing spatial relationships between structures.

In ITK 5, the SpatialObject framework was refactored to improve consistency in the the programming interface and simplify implementation and usage. As a result, incorrect or unexpected behaviors are avoided. Complexity and dependency were reduced by removing a dependency on the VNL tree data structures. Additionally, IndexSpace was removed from the API of all SpatialObjects to prevent ambiguity while providing a consistent and intuitive interface. Only two reference spaces are consistently and explicitly available in the API: ObjectSpace and WorldSpace. ObjectSpace is the space local to each object, where the object's parameters are defined. WorldSpace is the coordinate system defined by the top-level SpatialObject in a hierachy, which is defined by parent-child object relationships. Only two transforms are now consistently and explicitly available in the API: ObjectToParent transform and ObjectToWorld transform. The ObjectToParent transform moves an object within its parent's ObjectSpace. The ObjectToWorld transform is derived from component ObjectToParent transforms and is provided for convenience and to reduce redundant computations. The API is now more explicit regarding the space that an operation applies to. For instance, IsInside(point) is now IsInsideInObjectSpace(point) or IsInsideInWorldSpace(point). For more information on the SpatialObjects changes, see the ITK 5 Migration Guide.

The Python package synchronization infrastructure for static global variables was refactored to support more variables and permit future additions to the singleton. This will prevent the need to rebuild remote module binary Python packages following future releases of ITK 5. However, current remote module Python packages that use ITK 5 should be rebuilt and republished for ITK 5.0 RC 2.

For an overview of ITK 5's transition to modern C++, performance-related changes, the new, Pythonic API, the project's migration to GitHub, and Mesh improvements, see the ITK 5 Alpha 1: Modern C++, ITK 5 Alpha 2: Performance, ITK 5 Beta 1: Pythonic Interface, ITK 5 Beta 3: GitHub and ITK 5 Release Candidate 1: Meshes release announcements.

RTK

Tomographic phantom reconstruction with the new Reconstruction Toolkit (RTK) remote module.

New Remote Modules

  • ITKIOScanco: read and write Scanco microCT .isq files.
  • ITKTotalVariation: total variation image denoising.
  • ITKRTK: the Reconstruction Toolkit provides high performance implementations of advanced tomographic image reconstruction algorithms.
  • ITKThickness3D: compute the skeleton and thickness transform from 3D images.

Performance Improvements

  • Add MetaDataDictionary move support.
  • MetaDataDictionary uses copy-on-write.
  • itk::Barrier is now deprecated: replace with the new multi-threading functions.
  • Range-based for loops supported in itk::FixedArray.
  • Major performance improvements to TimeProbe, ResourceProbe constructor (issue #350).

Documentation

  • Repository README files were migrated to Markdown.

Infrastructure

  • Continuous code coverage builds from Azure Pipelines.
  • Better support for unicode in KWSys.
  • itksys::hash_map and itksys::hash_set are deprecated in favor of std equivalents.
  • New GitHub pull request templates and issue templates.
  • New scripts added to update ITK remote modules.

Core

  • itk::SpatialObject framework refactored (see release notes introduction).
  • Initial streaming support added to itk::ResampleImageFilter for linear transforms.

Third Party

  • Eigen 3 updated to the latest version.
  • Better support for building against a system Eigen.
  • GDCM updated to the latest version.
  • HDF5 updated to 1.10.4.
  • ITKVtkGlue support for VTK with VTK_RENDERING_BACKEND set to None.
  • KWSys updated to the latest version.
  • MetaIO updated to the latest version.
  • VXL updated to the latest version.
  • MINC updated to the latest version.

Python

  • Static variable synchronization method refactored; ITK 5 remote module Python packages need to be rebuilt against 5.0 RC 2.
  • Add wrapping for itk.PCAShapeSignedDistanceFunction.
  • Docstrings added to snake case functions.
  • Python tests should now be defined in /wrapping/test/CMakeLists.txt to exclude their definition when wrapping is not enabled.
  • Conversion between ITK matrices and NumPy arrays is now supported.
  • Additional wrapping types for itk.ImageDuplicator.
  • Additional types supported for NumPy <-> ITK Image conversion.
  • Additional wrapping and typemaps for std::vector<itk::Image<...>::Pointer>.
  • Add wrapping for itk.TriangleMeshToBinaryImageFilter.
  • Add wrapping for itk.ExtrapolateImageFunction.
  • Add wrapping for itk.WindowedSincInterpolateImageFunction.

To install the 5.0 Release Candidate 2 Python packages, run

python -m pip install --upgrade pip
python -m pip install --upgrade --pre itk

What's Next

There are many more improvements not mentioned above. For more details, please see the change log below. Congratulations and thank you to everyone who contributed to this release.

The ITK 5 Migration Guide is available to help transition a code base from ITK 4 to ITK 5. Please discuss your experiences on Discourse.

The ITK 5.0.0 final release is scheduled for May.

Enjoy ITK!

Changes from 5.0 RC 1 to 5.0 RC 2

Bradley Lowekamp @blowekamp (14):
      ENH: Add move support to the MetaDataDictionary object
      PERF: Implement copy on write for MetaDataDictionary
      ENH: adding MetaDataDictionary GTests
      BUG: Do not modify MetaDataDictionary with operator[] const
      ENH: Improve ExposeMetaData efficiency
      COMP: Address CMake policy warnings in ThirdParty libraries
      ENH: Update AzurePipelines configuration from master
      ENH: Explicitly set the XCode version used in Azure
      COMP: Use CMP0048 new for wrapping
      COMP: Set CMP0048 to new in ITK (Remote) Modules
      COMP: Address OSX Clang "direct access" linkage warnings
      ENH: Add Azure Pipelines script for coverage
      BUG: Fix Li threshold calculator for negative image values
    ...
Read more

ITK 4.13.2

22 Mar 14:21
v4.13.2
1724fc0
Compare
Choose a tag to compare

On behalf of the Insight Toolkit (ITK) Community, we are happy to announce the release of ITK 4.13.2!

ITK is an open-source, cross-platform library for multidimensional image analysis.

Release files can be downloaded from

http://itk.org/ITK/resources/software.html

To install or upgrade Python packages with pip:

python -m pip install --upgrade pip
python -m pip install --upgrade itk

This is a patch release that fixes critical issues, regressions, documentation, and compiler support. This release includes a number of fixes for GDCM for improved DICOM support. The build system is updated for compatibility with newer CMake. Continuous integration testing is also improved following our migration to GitHub.

The next feature pre-release for ITK 5, ITK 5 Release Candidate 2, is anticipated in a few weeks.

Enjoy ITK!

ITK changes from v4.13.1 to v4.13.2:

Bai Shi (1):
      COMP: To fix compilation error of "cannot dynamic_cast 'x'

Bradley Lowekamp @blowekamp (10):
      BUG: Support ITK transform files with corrected group names
      BUG: Update SCIOFIO to ITKv4.13 branch
      BUG: Handle boundary case with max metric
      BUG: Remove static member function variable
      BUG: Synchronize BSpline MeshDomain parameters from fixed params
      COMP: Address CMake policy warnings in ThirdParty libraries
      ENH: Update AzurePipelines configuration from master
      ENH: Explicitly set the XCode version used in Azure
      COMP: Use CMP0048 new for wrapping
      COMP: Set CMP0048 to new in ITK (Remote) Modules

Dženan Zukić @dzenanz (2):
      STYLE: fixing 'No new line at the end of file'
      ENH: ITKv5_CONST macro for VerifyPreconditions() and VerifyInputInformation()

Francois Budin @fbudin69500  (1):
      BUG: Disable Python tests if `ITK_BUILD_DEFAULT_MODULES` is OFF

GDCM Upstream @malaterre (3):
      GDCM 2019-02-07 (8e1cfd05)
      GDCM 2018-10-23 (2e701ed7)
      GDCM 2019-02-08 (815caa81)

Isaiah Norton @ihnorton  (2):
      BUG: prevent segfault when transform reader fails to load .mat
      BUG: don't quote argument to URL_HASH for FFTW

Matthew McCormick @thewtex (9):
      BUG: Use manylinux to build CastXML linux executable
      COMP: Address empty _FILE_OFFSET_BITS in tif_config.h with MinGW64
      BUG: Remove duplicate ITK version number
      ENH: Add Azure Pipelines configuration
      ENH: Add regression test for reading legacy multi-frame DICOM
      COMP: Set CMP0083 for PIE flags
      ENH: Bump CMakeLists.txt version to 4.13.2
      ENH: Add missing SHA512 content link
      ENH: Explicitly use Python 3.7 in Azure builds

Niels Dekker @N-Dekker (2):
      COMP: Fixed GDCM OpenJPEG name mangling
      PERF: Remove SystemInformation data from ResourceProbe, fix issue #350

ITK 5.0 Release Candidate 1: Meshes

05 Feb 22:06
v5.0rc01
eb54c22
Compare
Choose a tag to compare
Pre-release

We are happy to announce the Insight Toolkit (ITK) Release Candidate 1! 🎉 As the first release candidate, the major advancements for ITK 5 have matured, and the community is encouraged to adopt the release candidate in ITK-based applications.

This release improves Mesh support in Python though simplification and extension of Mesh and PointSet wrapping. In general, this release makes improvements to the modernization of the toolkit staged in ITK 5.
The C++ range classes continue to advance, including the experimental itk::ImageBufferRange, itk::IndexRange, and itk::ShapedImageNeighborhoodRange. Our migration to GitHub was overwhelmingly successful, but it continues to improve. Pull requests now receive a helpful CDash build analysis GitHub Check.

GitHub CDash Build Analysis Check

For an overview of ITK 5's transition to modern C++, performance-related changes, the new, Pythonic API, and the project's migration to GitHub, see the ITK 5 Alpha 1: Modern C++, ITK 5 Alpha 2: Performance, ITK 5 Beta 1: Pythonic Interface, and ITK 5 Beta 3: GitHub release announcements.

Performance Improvements

  • N4BiasFieldCorrectionImageFilter accelerated through itk::ImageBufferRange and other optimizations.
  • Various modern C++ improvements related to default constructors, move operations, etc.

Documentation

Infrastructure

  • Mesh IO classes, e.g. Gifti, OBJ, OFF, FreeSurfer, BYU, STL, are now split into separate modules for better modularity.
  • A CDash build analysis summary and link is provided as a GitHub Check.
  • Added new C++11 member functions from std::vector to itk::VectorContainer.

Third Party

  • DCMTK 3.6.4 is now supported.
  • CanRead is now faster for inspection of potential DICOM files, both with the GDCM and DCMTK DICOM backends.
  • Eigen updated to 3.3.7.
  • Improved support for integration of a system Eigen.
  • Improved compatibility with system HDF5.

Python

  • Wrapping for Mesh and PointSet classes was simplified and extended.
  • BinaryMaskToNarrowBandPointSetFilter is now available in Python.
  • Better itk.Image NumPy buffer management for advanced pipeline grafting.

To install the 5.0 Release Candidate 1 Python packages, run

python -m pip install --upgrade pip
python -m pip install --upgrade --pre itk

What's Next

There are many more bug fixes and improvements not mentioned above. For more details, please see the change log below. Congratulations and thank you to everyone who contributed to this release.

The ITK 5 Migration Guide is available to help transition a code base from ITK 4 to ITK 5. Please discuss your experiences on Discourse.

We are approaching the 5.0.0 final release! The next release will be the second ITK 5 release candidate; it is scheduled for March.

Enjoy ITK!

Changes from v5.0b03 to v5.0rc01
-----------------------------------------------

Bradley Lowekamp (2) @blowekamp:
      BUG: Use compatible ITKv4 computation
      BUG: Fix Ostu test to work with ITKv4 default options

Dženan Zukić (9) @dzenanz:
      ENH: updating ITKMontage module
      DOC: trying to fix the doxygen warning
      ENH: Updating Visual Studio debug visualizer definitions
      DOC: removing long outdated comment
      ENH: updating Montage module
      STYLE: minor fixes to release notes
      COMP: a fix for system double-conversion build
      ENH: updating Montage: fix double-conversion include directory
      ENH: update ITKMontage: Fix crash when setting tiles from memory

Eigen Upstream (1):
      Eigen3 2019-01-14 (16812519)

Francois Budin (1) @fbudin69500:
      BUG: Missing ITK_WRAP_rgba_* variables in WrapITKConfig.cmake.in

Hans Johnson (7) @hjmjohnson:
      STYLE: rm initializer list extra lines
      ENH: DCMTK 3.6.4 api changes accomodated
      ENH: Move default [con/de]strutor to .h
      COMP: Protected static function must be public
      PERF: GDCM & DCMTK CanRead fails very slowly for non-DICOM files.
      PERF: readability container size empty
      STYLE: Prefer = default to explicit constructor(){}

Jon Haitz Legarreta Gorroño (1) @jhlegarreta:
      DOC: Adjust the CoC Committee to the 01/09/2019 meeting decision.

Matthew McCormick (31) @thewtex:
      ENH: Update Azure Pipelines CI testing cache to 5.0b03
      DOC: Releasing ITK updates for 5.0b03
      BUG: Exercise BinaryMaskToNarrowBandPointSetFilterTest
      BUG: BinaryMaskToNarrowBandPointSetFilter GenerateData protected
      BUG: Remove unused FixedDensityFunction in JensenHavrdaChatvatTsallis
      BUG: Do not build/use PoolMultiThreader without WinThreads or PThreads
      BUG: ShapeDetectionLevelSetFilter outputs
      BUG: ShapeDetectionLevelSetFilter outputFileName
      COMP: Remove itk::ThreadPool::GetGlobalDefaultNumberOfThreadsByPlatform
      DOC: Add 5.0 Beta 3 release notes
      DOC: Fix link to UpdatingThirdParty.md in CONTRIBUTING.md
      ENH: Add wrapping for BinaryMaskToNarrowBandPointSetFilter
      COMP: Mark DCMTKImageIO::CanWriteFile argument as unused
      COMP: Fix Software Guide line length too long warnings
      COMP: Fix Software Guide line length too long warnings
      ENH: Use CompensatedSummation in point set metrics to improve robustness
      COMP: ShapedImageNeighborhoodRangeGTest array initialization
      ENH: Move Gifti Mesh IO into a separate module
      ENH: Consistency in wrapped mesh types
      PERF: Parallelize ManifoldParzenWidnowsPointSetFunction::SetInputPointSet
      ENH: Move OBJ Mesh IO into a separate module
      ENH: Migrate OFF IO into ITKIOMeshOFF
      ENH: Update IOSTL to 2019-01-16 master
      COMP: Do not use readNoPreambleDICOM with Emscripten
      BUG: Fix Azure Pipelines commit checkout
      BUG: Fix Azure Pipelines master checkout on Windows
      BUG: Default MeshIOBase PointDimension is 3
      ENH: Update IOMeshSTL remote module and update name
      ENH: Improve loading to help pyinstaller can analyze module dependencies
      COMP: Wrapping of VectorContainer and DefaultStaticMeshTraits
      ENH: Add legacy multi-frame DICOM MD5 content links

Niels Dekker (19) @N-Dekker:
      DOC: issue #273: SyNImageRegistrationMethod default member initializers
      STYLE: Small improvements ImageBase constructor, SetRequestedRegion, '\'
      COMP: Fix "unreachable code" MakeOutput RegistrationMethods
      PERF: N4BiasFieldCorrectionImageFilter implementation using ImageRange
      STYLE: Renamed ImageRange to ImageBufferRange
      PERF: Remove SystemInformation data from ResourceProbe, fix issue #350
      STYLE: Remove dynamic_cast from CastToSTLContainer(), add noexcept
      PERF: N4BiasFieldCorrectionImageFilter adds points + weights ~20% faster
      PERF: Fast assign point data, weights BSplineScatteredData filter
      COMP: ImageBufferRange iterator same as const_iterator, for const image
      PERF: BSplineDecompositionImageFilter now calls ImageAlgorithm::Copy
      ENH: Add default-constructor and empty() to ShapedImageNeighborhoodRange
      ENH: Made ShapedImageNeighborhoodRange assignable and tested copy + move
      STYLE: C++ "Rule of Zero" for iterator classes of Range types
      PERF: Add fast noexcept move semantics to Neighborhood and its Allocator
      BUG: ResourceProbe::Reset() should set m_MaximumValue to lowest value
      BUG: Fixed MoveAssignedRangeHasSameIterators GTest of two range types
      STYLE: Move test utils default-constructed ranges to RangeGTestUtilities
      ENH: Add default-constructor and empty() to IndexRange

Pablo Hernandez-Cerdan (14) @phcerdan:
      DOC: Fix doxygen in SymmetricEigenAnalysis
      ENH: Python, wrap complex in NumericTraits
      ENH: Update IsotropicWavelets module
      BUG: Fix failure of ITK_EIGEN macro expansion
      ENH: Add test checking noexcept moves in FixedArray
      STYLE: Change EXPECT_EQ to EXPECT_TRUE|FALSE in CommonTypeTraitGTest
      ENH: Add python wrapping for std::pair and other int containers
      ENH: Add internal/external eigen3 libraries
      ENH: Update IsotropicWavelets
      ENH: Add new c++11 member functions of std::vector to itk::VectorContainer
      ENH: Simplify specialization of NumericTraits<std::complex<TComponent>>
      BUG: itkMatrix: Use NumericTraits::Zero instead of literal 0
      DOC: SoftwareGuide: improve TransformIndexToPhysicalPoint notation
      COMP: Fix multi-line comment warning generated by latex notation

Roman Grothausmann (1) @romangrothausmann:
      BUG: avoid overwriting output in 2nd run used for comparison in test:

Simon Rit (1) @SimonRit:
      BUG: python itk.Image returned by GetImageFromArray now manages its own buffer

@ihnorton (1):
     ...
Read more

ITK 5.0 Beta 3: GitHub

04 Jan 01:27
v5.0b03
9c0cdee
Compare
Choose a tag to compare
Pre-release

We are happy to announce the Insight Toolkit (ITK) version 5 Beta 3 release! 🎉 This release celebrates the community's migration to GitHub. :octocat: As a true open source project, community participation is a high priority. 🤝 Our migration to GitHub facilitates collaboration with the broader scientific open source community. 🔬

itkongithub

This release also includes major improvements in the areas of performance and third party libraries. A new, experimental ImageRange class enables iteration over an image's pixels in a modern, performant way. Fundamental ITK data structures were improved to enabled compiler optimizations for Plain Old Data objects. VXL was modernized to C++11, and Eigen is now available in the toolkit; ITK's gradual transition from VXL to Eigen for linear algebra has begun.

In addition, four new remote modules are available, FFT's can be computed on the GPU via cuFFTW, and ITK Python's itk.imread now supports image series. More information can be found in the feature summary below.

For an overview of ITK 5's transition to modern C++, performance-related changes, and the new, Pythonic API, see the ITK 5 Alpha 1: Modern C++, ITK 5 Alpha 2: Performance, and ITK 5 Beta 1: Pythonic Interface release announcements.

GitHub Migration

GitHub now hosts the official ITK, ITKExamples, and ITKSoftwareGuide Git repositories:

The InsightSoftwareConsortium GitHub Organization is currently home to 88 other ITK-related repositories. Many of these repositories are externally developed ITK modules. If you would like create a new repository or transfer a repository to the InsightSoftwareConsortium GitHub organization, let us know on ITK's Discourse discussion forum.

Documentation on how to contribute has been updated and improved. Contribution documentation is available in the ITK Software Guide and as Markdown files in the source code repository, browsable in GitHub's web interface. Our CONTRIBUTING.md file is a starting point for contributors. We also have a Git cheatsheet for quick reference.

Our Code of Conduct describes our motivation to build impactful, open source image analysis software through a welcoming and productive community. The Code of Conduct also describes our values: to be open, welcoming, inclusive, civil and considerate, respectful, collaborative, careful in the words that we choose, responsible, and inquisitive. We expect community members to lead by example, but we also define a set of unacceptable behaviors and mechanisms to enforce conduct violations.

To guide submission of pull requests and issues, we created templates used when issues and pull requests are opened. Release notes from previous releases were migrated from the Wiki; release notes can be browsed in repository Markdown files.

Plans for upcoming releases can now be found in the project GitHub Milestones. Release artifacts will now be published on ITK's GitHub Releases as opposed to Sourceforge. Release artifact archives are now also available in the ITK data.kitware.com Girder Collection.

The ./Utilities/SetupForDevelopment.sh script now guides repository configuration for GitHub contributions. Git client-side hooks help submit a well-formatted commit message. Git aliases, review-push and pr, are provided to submit pull requests for review and download submitted pull requests for local testing.

A new cross platform script, ITK/Utilities/UploadBinaryData.sh, is available to upload binary testing data. This script, invoked directly or through the data-upload alias, performs an authenticated upload to data.kitware.com and generates an ExternalData content link to avoid inflation of the source code repository's size. This script can be used to upload testing data for ITK or an externally developed module.

A static archive of our previous code review system, the http://review.source.kitware.com/ Gerrit Code Review instance, was created to preserve the code review discussions for nearly 24,000 changes on ITK and other Kitware supported projects.

Continuous integration testing ensures the continued quality and productive development of the toolkit. CircleCI and Azure Pipelines CI testing run over 2,800 regression tests on Linux, macOS, and Windows for both C++ and Python builds. Pull requests content is checked by ghostflow-director to prevent integration of large files, etc.

We now track issues in the repository's GitHub Issue Tracker. The legacy JIRA issue tracker is now read-only, and it will remain available for reference.

Performance Improvements

  • A new, experimental ImageRange class provides range-based iteration over the pixels of an itk::Image.
  • The Rule of Five was applied to basic data structures like itk::FixedArray, itk::Point, itk::Vector so they satify std::is_trivial and std::is_standard_layout. This is now also tested. This enables compiler optimizations and moves.
  • ResampleImageFilter::CastPixelWithBoundsChecking is now faster.
  • Data copies in itk::BSplineTransform were reduced.
  • The number of evaluations in line search optimizer were reduced by half.

Third Party Updates

  • The Eigen linear algebra third party library is now available as an ITK module, and it is enabled by default.
  • VXL was updated to require C++11 and use modern C++ syntax
  • GDCM, Zlib and GIFTI were updated to the latest upstream.

Remote Modules

image

The result of phase symmetry filtration of a cardiac ultrasound B-mode volume. From Hatt C. "Multi-scale Steerable Phase-Symmetry Filters for ITK."
The Insight Journal. July-December. 2011. http://hdl.handle.net/10380/3330

New Remote Modules added:

Read more

v5.0b02

19 Dec 17:11
v5.0b02
3c6a296
Compare
Choose a tag to compare
v5.0b02 Pre-release
Pre-release

This release was superseded by ITK 5.0 Beta 3 due to Visual Studio build errors.

ITK 5.0 Beta 1

11 Sep 16:22
v5.0b01
Compare
Choose a tag to compare
ITK 5.0 Beta 1 Pre-release
Pre-release

We are happy to announce the first beta release for ITK 5. This release features an additional, more Pythonic interface to filters. This interface is more familiar in Python and facilitates rapid prototyping. ITK 5.0 Beta 1 also includes many performance-related improvements, such as a pure C++11 thread pool by default, an HDF5 update to 1.10, new frequency domain iterators, new neighborhood range classes, and a new multi-dimensional, multi-component superpixel class.

For an overview of ITK 5 performance-related changes and the transition to modern C++, see the ITK 5 Alpha 1: Modern C++ and ITK 5 Alpha 2: Performance release announcements.

Python Interface

The traditional, object-oriented interface to ITK's Python classes allows the composition of filters in a pipeline. After setting up a chain of filters, Update() is called at the end of the pipeline. This facilitates streaming of very large images that may exceed the system's memory capacity. For example,

import itk

input_image = itk.imread('input.nrrd')
ImageType = type(input_image)
radius = 2

median_filter = itk.MedianImageFilter[ImageType, ImageType].New()
median_filter.SetInput(input_image)
median_filter.SetRadius(radius)
median_filter.Update()
output_image = median_filter.GetOutput()

itk.imwrite(output_image, 'output.nrrd')

While powerful, this interface is verbose.

A procedural interface is now available with PEP8-compliant snake case naming of all filters that inherit from itk.ProcessObject. For example,

import itk

input_image = itk.imread('input.nrrd')
radius = 2

output_image = itk.median_image_filter(input_image, radius=radius)

itk.imwrite(output_image, 'output.nrrd')

In this case, the type of the filter is implicitly determined by the input image type. Immediately, the filter is executed, and the result is directly returned. Object parameters defined by Set* methods can be specified in the filter call with keyword arguments. The Pythonic, snake case form of these parameters can also be used.

PEP8 function naming has also been applied to the NumPy bridge.

array = itk.GetArrayFromImage(image)
array = itk.array_from_image(image)

Similar functions names are available when creating NumPy array views, itk.Image's from NumPy arrays, and converting VNL vector and matrices to NumPy arrays.

To test the 5.0 Beta 1 Python packages, run

python -m pip install --upgrade pip
python -m pip install --upgrade --pre itk

Performance Improvements

Based on experiences since initial changes introduced in ITK 5 Alpha 2, many notable performance improvements have been made.

  • The default thread pool is now fully backed by C++11 threading primitives.
  • A new itk::MultiThreaderBase::ParallelizeArray function is available to quickly and easily dispatch C++11 lamda's or std::function's on linearly indexed containers, similar to itk::MultiThreaderBase::ParallelizeImageRegion for operating on N-dimensional image regions.
  • A new itk::MultiThreaderBase::ParallelizeImageRegionRestrictDirection function is available to prevent splitting an image region over a given direction.
  • SetNumberOfThreads has been renamed to SetNumberOfWorkUnits to more accurately reflect configuration of work unit granularity, especially in the context of the Threading Building Blocks (TBB) backend.
  • Progress reporting with multiple parallel operations is enabled with a new itk::ProgressTransformer class.
  • A large corpus of code has been transitioned ITK 5, and the process is now relatively straight forward and well documented. Please see the ITK 5 Migration Guide for more information.

Style changes

Classes in the C++11 standard library are now preferred over ITK's implementations. This includes atomic integers, mutex locks and related classes, and hash maps. For more information, please see the migration guide.

New Classes

visiblesuperpixel
Visible Human superpixel segmentation. A 2D slice of 3D superpixel. For more information, see the Insight Journal article, Scalable Simple Linear Iterative Clustering (SSLIC) Using a Generic and Parallel Approach, Lowekamp, B et al, http://hdl.handle.net/1926/3596.

What's Next

There are many more bug fixes and critical improvements not mentioned above. For more details, please see the change log below. Congratulations to everyone who contributed to this release.

Please discuss your experiences on Discourse. The community has been quite active in testing and improving these changes for the next major release of ITK. Another beta release is planned for the October-November time period.

Changes from v5.0a02 to v5.0b01
-----------------------------------------------

Bradley Lowekamp (47):
      BUG: Prevent concurrent read/write in output image
      BUG: Handle case where output image is zero sized
      BUG: Add missing dependencies in Module testing
      ENH: Remove  SPECIFIC_IMAGEIO_MODULE_TEST feature
      BUG: Fix name typo for ITK_GLOBAL_DEFAULT_THREADER
      BUG: Fix incorrect library variable for MeshIO test drivers
      ENH: Create TestKernel library
      COMP: Fix overflow in floating-point conversion warning
      ENH: Add SLIC segmentation to new Superpixel module
      COMP: Fix C++11 compatibility with assert in constexpr
      COMP: Use std::min over vnl_math_min
      BUG: Fix index type and and number of indexes
      BUG: Add alternate baseline itkSLICImageFilterTest1 test
      ENH: Update test output to include test name
      BUG: improve numeric consistency in linear algorithm
      COMP: Add missing overrride to virtual destructor
      ENH: TileImageFilter learns to use VectorImages
      COMP: Remove unused testing function and headers
      BUG: Finish updating to ScanlineIterator in nonlinear method
      ENH: Update SLIC filter to use new ITK threading model
      ENH: TileImageFilter learns to use VectorImages
      ENH: Update SimpleITKFilters remote modules
      COMP: remove duplicate declaration of TempImageType
      DOC: Add link to published Insight Journal paper
      ENH: Update CenteredTransformInitializer print self method
      PERF: Remove internal streaming in DiscreteGaussianImageFilter
      ENH: Update MinimumMaximumImageFilter to use dynamic threading
      ENH: Update StatisticsImageFiler to use DynamicThreadedGenerateData
      ENH: Add compensated summation to the StatisticsImageFitler
      BUG: Use pip to install cmake
      BUG: Use pip to install cmake for release
      PERF: Use the recursive Gaussian filter in registration method
      BUG: Add additional baseline for debug
      COMP: Length GTest discovery timeout
      BUG: Correct image used for debug SimpleImageRegistrationTest
      BUG: Add cxx suffix to specified source GTest code
      ENH: Consistently use default OutputWindow for messages
      BUG: Explicitly set sampled pointset in virtual domain
      ENH: Use std::enable_if and std::is_same in  filters
      PERF: Memory alloc reduction in ComputeJacobianWithRespect
      PERF: Improve MatrixOffset Jacobian computation performance
      COMP: Address signed to unsigned comparison warning
      STYLE: Cleanup development comments
      PERF: perform matrix multiplication in-place for composite Jacobian
      ENH: Provide explicitly instantiated vnl_svd_fixed
      PERF: Change type of Jacobian w.r. position to vnl_matrix_fixed
      PERF: Change the purpose of the cache jacobian argument

Brian Avants (1):
      PERF: Only throw exception if zero valid points

Chao Wu (2):
      ENH: Enable writing scl_slope and scl_inter in NIfTI header
      BUG: Missing SetCPUBufferPointer in GPUImage<...>::SetPixelContainer(...)

Dženan Zukić (45):
      STYLE: a more direct link (after PR has been...
Read more

ITK 4.13.1

09 Aug 14:57
v4.13.1
Compare
Choose a tag to compare

On behalf of the Insight Segmentation and Registration Toolkit (ITK) Community, we are happy to announce the release of ITK 4.13.1!

ITK is an open-source, cross-platform library for multidimensional image analysis.

Release files can be downloaded from http://itk.org/ITK/resources/software.html

To install or upgrade Python packages with pip:

python -m pip install --upgrade pip
python -m pip install --upgrade --upgrade-strategy eager itk

To install packages with conda:

conda install -c conda-forge itk

This is a patch release that fixes critical issues, regressions, documentation, and compiler support. This release includes the addition of symbol name mangling for HDF5 and fixes to the name mangling for libtiff. A number of fixes were added to the NumPy bridge along with miscellaneous improvements. For more details, see the log below.

This release is also the first time packages are available for Python 3.7.

The next feature pre-release for ITK 5, ITK 5 Beta 1, is anticipated within the next few weeks.

Enjoy ITK!

ITK changes from v4.13.0 to v4.13.1:

Bradley Lowekamp (10):
      COMP: Use anonymous namespace for internal linkage
      COMP: Update SimpleITKFilters for dependency issues
      BUG: Add missing extensions to ImageIO
      BUG: Add specification of OutputImage Type for TobogganImageFilter
      BUG: Prevent concurrent read/write in output image
      BUG: Handle case where output image is zero sized
      COMP: Fix overflow in floating-point conversion warning
      ENH: TileImageFilter learns to use VectorImages
      ENH: Update SimpleITKFilters remote modules
      BUG: Use pip to install cmake for release

Francois Budin (2):
      BUG: Initializes CMAKE_DEBUG_POSTFIX to be empty
      BUG: Improvements to ITK NumPyBridge

Jean-Christophe Fillion-Robin (1):
      BUG: Prevent gdcm "missing implementation" error on macOS

Jon Haitz Legarreta Gorroño (1):
      ENH: Add Python wrap file to itk::MultiResolutionPDEDeforableRegistration.

Martino Pilia (1):
      BUG: fix itkFormatWarning in Python wrapping

Matthew McCormick (13):
      ENH: Add wrapping for BSplineTransformInitializer
      COMP: Do not use absolute path to TestBigEndian.cmake in GDCM
      COMP: Enable pthreads shim with Emscripten
      BUG: Allow module examples to be enabled when built externally
      ENH: Ensure external module examples get added to current build tree
      COMP: Work around RegionGrow2DTest compiler error on ppc64le
      BUG: Wrap long long instead of long
      COMP: Detect Linux in itkMemoryUsageObserver.h on Alpine Linux
      COMP: Wrap MultiResolutionPDEDeformableRegistration for Pyramid filter types
      BUG: Migrate midas3.kitware.com to data.kitware.com
      BUG: Correct Windows and macOS CastXML hashes
      COMP: Set CMake project command VERSION
      COMP: Bump CastXML for Visual Studio 2017 support

Niels Dekker (1):
      COMP: Worked around endless VS2015 Release compilation on Math::Floor

Pablo Hernandez-Cerdan (2):
      COMP: Fix VNL to compile with gcc8.
      STYLE: Mark CMAKE_DEBUG_POSTFIX as advanced.

Sean McBride (5):
      STYLE: arranged/alphabetized things to make subsequent changes reviewable
      COMP: Fixed some missing name mangling of libTIFF symbols
      BUG: fixed crash on macOS under guardmalloc from RunOSCheck()
      COMP: Mangle HDF5 symbol names
      COMP: fix warning about implicit double to bool conversion