Changelog History
Page 1
-
v5.1.2
November 26, 2020 -
v5.1.1
August 10, 2020 -
v5.1.0
April 25, 2020 -
v5.1.rc03
March 25, 2020 -
v5.1.rc02
February 20, 2020 -
v5.1.rc01
December 08, 2019 -
v5.1.b01
September 03, 2019 -
v5.0.1 Changes
July 25, 2019π 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
- π MD5SUMS
- π SHA512SUMS
π 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
-
v5.0.0 Changes
May 29, 2019π 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
- π MD5SUMS
- π SHA512SUMS
π 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 replacingtypedef
calls with theusing
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: Add testing for streaming with StatisticsImageFilter ENH: Remove output image, use standard decorator macros ENH: Refactor min/max filter to use ImageSink ENH: Add ImageSink::VerifyInputInformation ENH: Add KWStyle override for ImageStatistics module ENH: Use streaming sink base class for image to histogram filters ENH: Deprecate ImageTransformer class BUG: Update NormalizeImageFilter with double graft mini-pipeline DOC: statistics filter changes for ITKv5 ENH: Add Python wrapping for streaming base classes ENH: Add streaming testing of label statistics filter COMP: Move deprecated VectorCastImageFilter wrapping to deprecated BUG: Fix path for Brain Web data BUG: Correct StreamingProcessObject's progress computation STYLE: prefer variable-less catch re-throw BUG: Set current request number back to -1 after stream execution ENH: Expose streaming methods in MinimumMaximumImageFilter ENH: Add streaming testing for min max filter ENH: replace RGB adaptor with directly using CastImageFilter ENH: Add cast support for per component conversion ENH: Mark the Cast functor to be remove with legacy code DOC: Update documentation for streaming statistics filters. DΕΎenan ZukiΔ @dzenanz (25): ENH: make ITK_MAX_THREADS configurable BUG: fix threading test bugs when ITK_DEFAULT_MAX_THREADS is over 256 COMP: compile GPU classes with legacies disabled COMP: removing extraneous DLL specification from private member COMP: follow-up on recent removal of METAIO_STL macro COMP: add missing dependent module for ITKv3 examples COMP: ResampleImageFilter does not have SetDisplacementField method ENH: reduce default compression level for much faster compression BUG: compression was accidentally disabled in NrrdImageIO COMP: compile in ITK STYLE: move ivar default values to header file ENH: expose setting compression level in ImageFileWriter ENH: expose compression level in MetaImageIO BUG: the clang version check was overly strict on Apple platforms COMP: fix build failures introduced by c76b193 (#886) ENH: cleaning up tests which are almost exact duplicates from MetaIO ENH: updating remote modules COMP: fix warning: 'return' will never be executed COMP: fix export specification of Barrier class COMP: follow up to 814419a (bounding box m_CornersContainer removal) ENH: LevelSetsv4Visualization has moved to remote module ITKVtkGlue ENH: run large image IO tests serially ENH: enabling ResampleImage streaming test and updating baselines ENH: enabling ResampleImage streaming test and updating baselines ENH: exclude Eigen3 from the list of default modules Francois Budin @fbudin69500 (19): ENH: Add `fallback_only` parameter to `imread()` Python function ENH: Add suffix to Azure build running gcov to differentiate them STYLE: Add display name to checkout step in AzurePipelineBatch.yml ENH: Add JUnit test formatter to AzurePipelinesBatch.yml STYLE: Add badge for Azure pipeline Linux code coverage build ENH: Warning when trying to open in Python an image file that doesn't exist BUG: Missing `ci_addons` to convert ctest results to JUnit format BUG: Disable itkObjectFactoryBasePrivateDestructor test with -static link flag ENH: Add Python function to print Python class name corresponding to C++ class ENH: Python ImageFileReader error message improvement ENH: Warning when trying to open in Python an image file that doesn't exist ENH: Follow up commit to fix itkBoundingBox with LEGACY support ENH: Follow up commit to fix itkBoundingBox with LEGACY support BUG: std::list of `LineSpatialObject` needs to be wrapped BUG: ITK could not find Eigen3::Eigen target when using system Eigen BUG: Revert changing call to `Initialize()` with `clear()` BUG: Corner positions were inserted at the end of a list that was initialized BUG: Enforces consistent types BUG: Remote modules Python files (*.so, *.py) were built in the wrong folder GDCM Upstream (1): GDCM 2019-05-16 (e405908e) Hans J. Johnson @hjmjohnson (20): BUG: Usage name did not match file name. STYLE: Minor indentation improvements. ENH: Enable ITKV3_COMPATIBILITY option STYLE: Remove outdated python examples STYLE: Syncronize changes between RegistrationITKv[34] STYLE: Remove RegistrationITKv3 duplicate examples ENH: Remove ITKV3_COMPATIBILITY support from ITKv5.0 STYLE: Move deprecated Examples/RegistrationITKv3 to test BUG: Explicit RegisterRequiredFactories needed as test STYLE: Remove Software Guide tags from ITKv3 testing DOC: Make use of checkboxes consistent with github ENH: Add cmake override for GIT_TAG of remote modules STYLE: Remove custom environmental override for WikiExamples DOC: Fix spelling errors ENH: Identify histogram min/max for UseSampledPointSet BUG: itkConfigure.h defines ITK_DEFAULT_MAX_THREADS COMP: Remove unused static variable warning DOC: Remove documentation references to VectorResampleImageFilter DOC: Remove VectorCastImage documentation references ENH: Changes required for ITKv5 compatibility Jon Haitz Legarreta GorroΓ±o @jhlegarreta (4): STYLE: Remove tab. DOC: Improve remote modules' maintenance scripts documentation ENH: Add a script to apply another script to all remotes DOC: Modify the CoC breach reporting procedure Mathieu Malaterre @malaterre (3): STYLE: Teach git about GDCM oversize file BUG: Do not include COPYING from a non existing directory DOC: Fix old reference to Image Number Matthew McCormick @thewtex (23): COMP: Wrap functions for WindowedSincInterpolateImageFunction COMP: Wrapping windowed sinc function includes COMP: Update for changes to VTK target names DOC: Improve ease of release note command execution DOC: Document generation of MD5SUMS and SHA512SUMS files for releases DOC: Add More Information section to CONTRIBUTING DOC: Add ITK 5.0 RC 2 release notes BUG: PythonFindEmptyClasses test for windowed-sinc functions BUG: Prevent ITKMesh README.md from installation as header BUG: Fix identification of Clang major version COMP: ImageMaskSpatialObjectGTest array initialization COMP: ImageMaskSpatialObjectGTest add braces for initialization ENH: Expand ResampleImageFilter requested region by interpolator domain STYLE: Use typename instead of class in ImageSink STYLE: override methods should not be marked virtual BUG: ImageSink defines UpdateLargestPossibleRegion STYLE: StreamingProcessingObject passing void with no arguments BUG: {MinimumMaximum,StatisticsImageFilter} set PrimaryOutputName BUG: Remove MinimumMaximumImageFilter from module2module test pipeline BUG: InterpolateImageFunction::GetRadius hidden in ITKV4_COMPATIBILITY BUG: Condition Eigen export code on ITK_BINARY_DIR BUG: Fix ITKv3 registration test names for property setting BUG: Remove CTEST_TEST_TIME debug message MetaIO Maintainers (5): MetaIO 2019-05-03 (7e16abe1) MetaIO 2019-05-08 (dd5089a2) MetaIO 2019-05-15 (bffb2ef1) MetaIO 2019-05-16 (5010ab63) MetaIO 2019-05-21 (368213e5) Niels Dekker @N-Dekker (21): ENH: Add std style reverse iterators to FixedArray ENH: Add ImageMaskSpatialObject::ComputeMyBoundingBoxInIndexSpace() STYLE: SpatialObject() = default, const BoundingBox, Transform members ENH: Added tests for ImageMaskSpatialObject::IsInside ENH: Test ImageMaskSpatialObject::IsInside independent of distant pixels BUG: Fix issue #785 removing BoundingBox check from ImageMask IsInside PERF: Overload SpatialObject IsInsideInObjectSpace without name argument BUG: Half a pixel margin ImageMaskSpatialObject::ComputeMyBoundingBox() STYLE: Deprecated FixedArray member functions rBegin() and rEnd() STYLE: Replace std::swap_ranges by C++11 std::swap of m_InternalArray DOC: Use the term "object space" for ObjectSpace based member functions STYLE: Replace unsigned short by unsigned int as FixedArray index type STYLE: Explicitly defaulted default-constructors Vector Accessor classes STYLE: Ensure that ContinuousIndex TCoordRep is a floating point type ENH: Convenience overloads for ImageBase Transform member functions ENH: Add NumberOfCorners and ComputeCorners() to BoundingBox STYLE: Remove (deprecate) BoundingBox::GetCorners() + m_CornersContainer COMP: Fixed GCC4 missing-field-initializers warning on `{}` in GTest DOC: Fixed Doxygen description BoundingBox Get member functions DOC: Fixed Doxygen description BoundingBox Get member functions STYLE: Rename ITK macro EXPECT_VECTOR_NEAR to ITK_EXPECT_VECTOR_NEAR Roman Grothausmann @romangrothausmann (1): ENH: Bump remote module ParabolicMorphology Simon Rit @SimonRit (4): COMP: remove MSVC 14 C4800 (performance) warnings with FFTW COMP: remove unused parameter warning with GCC 4.8.5 COMP: fix wrong GDCM library names for open jpeg ENH: update RTK remote file with release tag v2.0.1 VXL Maintainers (1): VNL 2019-05-08 (99697e67) @maekclena (8): ENH: Update compiler macros (#810) BUG: Remove error prone test case BUG: Fix reverse iterator increment return type ENH: Add iterator increment operator return value test BUG: Minor python wrapping fixes ENH: Remove duplicate code ENH: Use ResampleImageFilter for vectors ENH: Deprecate VectorCastImageFilter (#870)
-
v5.0.rc02 Changes
April 30, 2019π 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
- π InsightToolkit-5.0rc02.tar.gz
- π InsightToolkit-5.0rc02.tar.xz
- π InsightToolkit-5.0rc02.zip
β Testing Data
β Unpack optional testing data in the same directory where the Library Source is unpacked.
Checksums
- π MD5SUMS
- π SHA512SUMS
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.SpatialObject
s 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 allSpatialObject
s 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-levelSpatialObject
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 nowIsInsideInObjectSpace(point)
orIsInsideInWorldSpace(point)
. For more information on theSpatialObject
s 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.
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
anditksys::hash_set
are deprecated in favor ofstd
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 toNone
. - β‘οΈ 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 DOC: Correct documented Canny Segmentation filter example DΕΎenan ZukiΔ @dzenanz (18): ENH: add better support for Unicode by using UTF-8 by default in KWSys BUG: propagate ITK_LIBRARY_PROPERTIES into zlib COMP: fixing MSVC warning C4800 ENH: refactoring NarrowBandImageFilterBase to not use Barrier DOC: fixing code sample COMP: compile fixes for Visual Studio 2017 ENH: ModifiedTimeType uses 64 bits on Windows - it was 32 before ENH: refactor itkThreadPoolTest and rename into itkMultithreadingTest ENH: shuffling tests in ITKCommon to make the split more logical ENH: introduce a parameter to control level of output ENH: concentrating WaitForAll() in Iterate() ENH: ParallelSparseFieldLevelSetImageFilter no longer uses barrier ENH: moving Barrier into Deprecated module ENH: prevent false sharing between threads STYLE: declaration alignment ENH: replace itksys::hash_map and hash_set by std equivalents COMP: missing override for destructors Update ITK5MigrationGuide.md Eigen Upstream (3): Eigen3 2019-01-26 (e2c082bf) Eigen3 2019-03-05 (0805e8fd) Eigen3 2019-03-14 (8a3c2d91) Forrest Li @floryst (4): ENH: Update arrow spatial object ENH: Update EllipseSpatialObject ENH: Update box spatial object ENH: Update polygon SO and delete polygon group SO Francois Budin @fbudin69500 (25): BUG: Implement but hide MetaDataDictionary iterator methods BUG: Explicitly give Python library path to ITK Python targets for MSVC ENH: Wrap itkPCAShapeSignedDistanceFunction ENH: Synchronize factories across modules in Python ENH: Explicitly return `None` when calling ` __call__ `` if filter has no output ENH: Deprecated object call function and improve procedural call function ENH: Adds argument completion with procedural calls ENH: Add docstring to snake case functions BUG: Disable Python tests if `ITK_BUILD_DEFAULT_MODULES` is OFF BUG: Returns a copy of the VNL matrix instead of a reference ENH: Add helper functions to convert NumPy arrays to ITK matrices and back ENH: Add `ttype` keyword in New() function for Python templated classes ENH: `isinstance()` can be called without template parameters of classinfo BUG: Wrap itkImageDuplicator for all image types as it is used by NumPyBridge ENH: itkPCAShapeSignedDistanceFunction supports float images ENH: Add advanced CMake option `ITK_DO_NOT_BUILD_TESTDRIVERS` ENH: Move part of CI configuration into Azure YML files ENH: Move Python tests into wrapping subfolder BUG: Correct CMake variable name and move baseline files to appropriate folder ENH: Only run Python tests on Linux and Windows ENH: Adds wrapping for std::vector<itk::Image<...>::Pointer> and typemaps ENH: New test to verify that` ObjectFactoryBasePrivate` is destroyed correctly ENH: Enable forcing creating snake_case function for non-ProcessObject classes ENH: Add snake case method for non itkProcess derived class itkImageDuplicator BUG: itkObjectFactoryBasePrivateDestructor was not compiling with MSVC GDCM Upstream @malaterre (3): GDCM 2019-02-07 (8e1cfd05) GDCM 2018-10-23 (2e701ed7) GDCM 2019-02-08 (815caa81) HDF5 Maintainers (1): HDF5 2018-10-15 (545c5fb2) Hans J. Johnson (27): STYLE: Remove exact duplicate test code ENH: Improve by adding enhanced complexity to testing ENH: Add test for IsInsideInObjectSpace. DOC: Improve diagnostic message from ExtractImageFilter ENH: TransformIOBaseTemplate Must be explicitly instantiated STYLE: Instance variables should be private STYLE: Move default [con/de]strutor to .h (part 2) STYLE: Class derived from TransformBase need explicit instantiation STYLE: Remove functions that are not used ENH: Use member functions with default values COMP: Refactor to remove const_cast of void * STYLE: Fix spelling s/ranage/range/g in comment. ENH: Improve coverage for itk::FastMarchingImageFilterBase. COMP: Allow compiler option fixed in gcc 4.1.0 PERF: Allow overwriting ABI/Optimization & Warning flags DOC: Minor spelling corrections ENH: Improve test coverage of ImageMoments DOC: Expand GetAxisAlignedBoundingBoxRegion replacement code STYLE: Prefer using Update() for consistency ENH: Avoid deprecated SpatialObject function calls ENH: ProtectedComputeMyBoundingBox return not used ENH: Clean up tests to pass under new API COMP: Consolodate duplicate LogTester code COMP: Support ITK_LEGACY_REMOVE for SpatialObjects ENH: Add legacy interface to SpatialObjects BUG: Match return types for nullptr return values COMP: Remove compilation warning unmatched types Hastings Greer @HastingsGreer (6): BUG: ImageSpatialObject's BoundingBox was nonfunctional if not axis aligned BUG: ImageMaskSpatialObject::IsInside uses image cosines COMP: fix compilation errors COMP: Various compiler errors COMP: fixes to enable compilation with gcc COMP: Update tests Jerome Schmid @schmidje (1): COMP: VtkGlue module-Provide support for VTK new cmake targets Jon Haitz Legarreta GorroΓ±o @jhlegarreta (29): ENH: Add a PrintHelper file to overload boolean and vector printing. ENH: Add a parameter to test to improve `itk::ResampleImageFilter` testing. ENH: Update the ITKIOFDF remote module. ENH: Improve `itk::ResampleImageFilter` class coverage. BUG: Fix `Γ¬tkResmapleImageTest2` test failing on 32-bit systems. DOC: Transition `Examples` folder `README` file to Markdown. DOC: Increase `VNL` ThirdParty module `README` information accuracy. ENH: Conform to GitHub PR and issue template guidelines. DOC: Transition the `Nonunit/Review` `README` to Markdown syntax. ENH: Bump the latest version of the `ITKThickness3D` remote. BUG: Fix GitHub community template syntax errors. STYLE: Transition GitHub community template filenames to lowercase. DOC: Change GitHub community template guidelines to HTML comment markup. ENH: Add new GitHub community issue templates. STYLE: Improve coverage issue template name wording. DOC: Fix PR template not being displayed. DOC: Add emojis to GitHub issue templates. ENH: Update a few remote modules to their latest commit versions. DOC: Improve the CONTRIBUTING guidelines document DOC: Fix typo. DOC: Add checklist to PR template. ENH: Add a script to update the remote module commit hashes ENH: Add a script to update the ITK tag as required in files ENH: Update the Remote module Python package version automatically STYLE: Rename remote module maintenance script DOC: Add Remote module PyPI update notice in Release guide ENH: Bump remote modules. ENH: Bump remote modules to latest commits ENH: Bump remote modules to their latest commits COMP: Fix Software Guide line length too long warnings KWSys Upstream @bradking (2): KWSys 2019-02-14 (e270ce9f) KWSys 2019-03-28 (e92bdbe8) Matthew McCormick @thewtex (51): ENH: Use HDF5 1.10.4 DOC: Updates to the README DOC: Use 'ITK: The Insight Toolkit' for README title ENH: Add legacy multi-frame DICOM MD5 content links COMP: Avoid duplicate wrapping of VectorContainer with unsigned short BUG: MeshIOBase ivars used for number points, cells, pixels STYLE: Keep ProjectObject methods protected in ResampleImageFilter STYLE: Remove unnecessary ResampleImageFilter input/output checks DOC: Updates to the Release documentation for 5.0 RC 1 ENH: Update CI ExternalDataVersion to 5.0rc01 DOC: Add ITK 5 Release Candidate 1 release notes ENH: Add regression test for reading legacy multi-frame DICOM ENH: Update itk_hdf5_mangle.h for HDF5 1.10.4 COMP: Re-apply HDF5 Emscripten clobbered by 1.10.4 update ENH: Add probot-stale GitHub bot configuration ENH: Add test result analysis to Azure Pipelines web interface COMP: Set CMP0083 for PIE flags COMP: HDF5 CMake does not have INTEGER cache type COMP: Do not also pass png_ptr twice to png_set_error_fn ENH: Wrap TriangleMeshToBinaryImageFilter PERF: Use constexpr in complex NumericTraits BUG: VTKPolyDataMeshIO CanReadFile returns false for non-PolyData COMP: Set CMP0083 for PIE flags BUG: Use VERSION_GREATER_EQUAL for PIE check ENH: Bump CMakeLists.txt version to 4.13.2 ENH: Add missing SHA512 content link ENH: Explicitly use Python 3.7 in Azure builds COMP: Prevent duplicate wrapping ouput file specification BUG: Add executable bit to prefer-type-alias-over-typedef.sh COMP: Specify type in LiThresholdCalculator min call ENH: Wrap ExtrapolateImageFunction ENH: Add Python wrapping for SymmetricEigenAnalysisImageFilter BUG: Add missing ITKImageGrid circle.png content links BUG: itkResampleImageTest2Streaming verification ENH: Add IOScanco remote module COMP: Add backwards compatible EnlargeRegionOverBox BUG: Set dashboard_do_coverage in Azure configuration COMP: Add export specification to ITKSpatialObjects BUG: Mark HDF5 CMake variables as advanced BUG: Mark INSTALL_GTEST CMake variable as advanced STYLE: NIFTI CMake variable spacing BUG: Do not use CACHE variables for NIFTI when not required BUG: Mark TESTLIB_VCL_WHERE_ROOT_DIR_H as advanced BUG: Remove BUILD_* GDCM settings from the cache BUG: Remove ALLOW_UNSUPPORTED from the cache STYLE: C-style variable declarations in WindowedSinceInterpolateImageFunction ENH: Add wrapping for WindowedSincInterpolateImageFunction ENH: ITKVtkGlue only requires rendering libraries when needed COMP: GaussianInterpolateImageFunction test narrowing BUG: Allow Python tests in module test/CMakeLists.txt ENH: Add new content links for ITK 5.0 RC 2 MetaIO Maintainers (2): MetaIO 2019-01-15 (6efa2b32) MetaIO 2019-04-24 (9d2012d1) Mihail Isakov @issakomi (4): BUG: WhatModulesITK.py doesn't detect ITKMeshIO STYLE: header included twice, spelling BUG: index overflow in BinaryMask3DMeshSource BUG: changed to signed Niels Dekker @N-Dekker (28): PERF: Remove SystemInformation data from ResourceProbe, fix issue #350 COMP: Fix support itk::VectorContainer<TElementIdentifier, bool> COMP: Fix SymmetricEigenAnalysis support TMatrix = itk::Array2D<T> COMP: Trailing return types (reference, const_reference) VectorContainer STYLE: HoughTransform2DCircles, GaussianDerivativeImageFunc member init. COMP: Win32Header no longer disable MSVC warning C4800, C4290, C4786 COMP: Removed unreachable code, fixing VS2017 warning (level 4) C4702 STYLE: Removed '2' from GaussianDerivativeImageFunction::ImageDimension2 STYLE: Renamed SpatialFunction within GaussianDerivativeImageFunction BUG: Fixes crashes in unit tests when argv[0] == nullptr STYLE: Removed InitializeConstShapedNeighborhoodIterator() STYLE: ImageFileReader uses std::unique_ptr<[]>, try-catch-throw removed STYLE: Renamed array of radii EllipseSpatialObject to RadiiInObjectSpace STYLE: Remove GetPixelTypeName() from both Image and Mesh SpatialObject ENH: GTest for ImageMaskSpatialObject::GetAxisAlignedBoundingBoxRegion() STYLE: Removed unused private EventObject::EventFactoryFunction type COMP: Support ITK_LEGACY_SILENT for ThreadInfoStruct STYLE: Removed five unused nested types from ImageSpatialObject ENH: Add static member function Size<VDimension>::Filled(SizeValueType) STYLE: Removed legacy-only ComputeMyBoundingBox() which was not in ITK4 STYLE: Renamed ProtectedComputeMyBoundingBox() to ComputeMyBoundingBox() STYLE: Remove const from SpatialObject::ComputeMyBoundingBox() BUG: Fix #734 Incorrect results GetAxisAlignedBoundingBoxRegion() for 2D ENH: Extend test ImageMaskSpatialObject::GetAxisAlignedBoundingBoxRegion STYLE: SpatialObject GetModifiableMyBoundingBoxInObjectSpace() non-const PERF: ImageMaskSpatialObject::GetAxisAlignedBoundingBoxRegion() faster ENH: Add explicit constructors Point and FixedArray for C++11 std::array ENH: Add begin() and end() to FixedArray, support range-based for-loops Pablo Hernandez-Cerdan @phcerdan (11): ENH: Add itk-module-init.cmake to Eigen3 COMP: Make ThirdParty Eigen3 COMPILE_DEPENDS COMP: Revert "COMP: Make ThirdParty Eigen3 COMPILE_DEPENDS" BUG: Fix Eigen3 INSTALL_DIR DOC: Update ITK5MigrationGuide BUG: Fix OFFIS_DMCTK_VERSION_NUMBER where wrunlock was introduced BUG: Fix export for ITKDeprecated classes BUG: Do no install any Eigen3 targets if ITK_USE_SYSTEM_EIGEN=ON ENH: Update Remote Module IsotropicWavelets ENH: Add COMPILE_DEFINITIONS to castxml ENH: Add remote module TotalVariation Roman Grothausmann @romangrothausmann (4): ENH: new tests to verify streaming capabilities of itkResampleImageFilter BUG: corrected logic for checking that streaming was not used ENH: compare outputs of itkResampleImageTest2Streaming to determine success: ENH: Stream ResampleImageFilter for linear transforms Simon Rit @SimonRit (2): ENH: add RTK as a remote module ENH: added test to check that Matrix returns a copy of the vnl matrix Stephen R.Aylward @aylward (47): ENH: Refactor of SpatialObject top-level class ENH: Remove itkAffineGeometryFrame file ENH: Update ArrowSpatialObject ENH: Children name match using string.find (i.e., any substring) ENH: Refined SpatialObject base class and organized .h. Refactoring. ENH: Refactor Line and Landmark Spatial Objects ENH: Refactor Mesh and fix bugs found in previous refactorings BUG: Remove itkPlaneSpatialObject because it implemented a boxSO ENH: Refactor itkPolygon[Group]SpatialObject ENH: Refactor Scene to be a Group and refine base SpatialObject ENH: Refactoring the SpatialObject to be more intuitive ENH: SpatialObjects have "MyBoundingBox" and "FamilyBoundingBox" ENH: Resolved SpatialObject member function and variable names ENH: Updated subclasses to match SpatialObjectAPI ENH: SpatialObjectPoint and Properties updated ENH: Removed unwanted TreeNode classes ENH: Removing outdated source files COMP: SpatialObjectProperties now a cxx file that compiles ENH: Refactor SpatialObjectPoints and TubeSpatialObjectPoints ENH: Update PolygonGroup IO to use new spatial object classes ENH: Refactoring for IO ENH: Renamed functions to make coordinate system explicit ENH: Refactoring Meta*Converter classes ENH: Update to tests to fit new SO API BUG: Fixed bugs on windows for tests ENH: Updated wrapping and examples to compile SpatialObjects ENH: Updated itkGetObjectMcro to itkGetModifiableObjectMacro ENH: Updates to fix failing tests ENH: Fix two more tests BUG: Fix bug in ImageMaskSO bounding box ENH: Making tests pass...one bug at a time... BUG: Missing center computation in isInside function for Ellipse ENH: Adding support for Clone member function to perform a deep copy BUG: Last spatial-object-specific tests now pass. BUG: Fix const issues regarding My/Family Bounding Box BUG: Fix warnings and other minor things ENH: Fixing PolygonSpatialObject ENH: Made ContourSO and PolygonSO more consistent in logic BUG: Fix IsInsideObjectSpace function in PolygonSpatialObject BUG: Fix multiple bugs in refactoring of spatial objects DOC: SpatialObject docs in migration guide (#630) DOC: Detail function change in ImageMaskSpatialObject DOC: Specify ITK class alternatives to removed SO member functions BUG: Adds RemovePoint() to PointBasedSpatialObjects (#693) DOC: PointBasedSpatialObject's PointListType migration docs provided (#652) BUG: Adding a consistent Clear() to SpatialObjects (#700) DOC: Update recommendation for computing a Boundoing Region in IndexSpace (#699) Thomas Janvier @T4mmi (1): ENH: Add Thickness3D Remote module. VXL Maintainers (3): VNL 2019-03-04 (1e8a027f) VNL 2019-03-11 (3d183906) VNL 2019-03-22 (d0ff9f72) Vladimir S. FONOV @vfonov (2): MINC 2019-04-23 (44fae20d) ENH: fixed build script Ziv Yaniv @zivy (1): BUG: PNGImageIO segfaults on corrupt png. @maekclena (13): BUG: Initialize array with expected number of elements BUG: Disable TIFF predictor BUG: Python3 compatibility ENH: Cleanup python wrapping tests ENH: Address review comments ENH: Update maintenance script BUG: Replace sed by ex for portability ENH: fix inconsistencies and clearer output ENH: Update remote modules BUG: fix gaussian interpolate test BUG: Ignore comment lines STYLE: Visually indent array BUG: Remove outdated class declaration