ITK 5.3 Release Candidate 3 Release Notes: Documentation

We are happy to announce the Insight Toolkit (ITK) 5.3 Release Candidate 3 is available for testing! :tada: ITK is an open-source, cross-platform toolkit for N-dimensional scientific image processing, segmentation, and registration.

ITK 5.3 is a feature release that accelerates performance, provides new segmentation and shape analysis algorithms, improves documentation, among many more improvements. For more information about performance improvements, see the 5.3 RC 1 Release Notes. For more information about new segmentation and shape analysis algorithms, see the 5.3 RC 2 Release Notes.

ITK 5.3 RC 3 highlights documentation improvements. The ITK Software Guide has been updated for ITK’s modern C++ improvements. The guide now also includes a helpful primer for debugging native Python extension modules across platforms. The PDF’s remain available for free download (links below), and an updated hardcopy can be purchased from Amazon. ITK’s Sphinx Examples were updated to the latest ITK and Sphinx. Join us for a hackathon to work on the examples on Friday, May 20th. Doxygen API documentation now uses MathJax and SVG, and Doxygen HTML archives are significantly smaller.

ITK 5.3 RC 3 also includes FFT backend registration through the object factory, Python wrapping for more registration methods, metrics, and registration of point sets, and new remote modules to facilitate rendering of meshes and ITK filtering with CUDA. And, there any many more improvements and fixes detailed in the log below.

In addition to the PDF’s below, the ITK Software Guide for ITK 5.3 is available in hard copy form on Amazon. Book 1, Book 2.

Download

Python Packages

Install ITK Python packages with:

pip install --upgrade --pre itk

Guide and Textbook

Library Sources

Testing Data

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

Checksums

Features

Python

  • Python packages now include oneTBB support for improved performance.

  • Following CPython’s deprecation schedule Python 3.6 is no longer supported.

  • Python packages added for Python 3.10

  • Initial Python wrapping is available for the Video modules.

  • TransformToDisplacementField is now available in Python.

  • Pythonic IO functions itk.imread understands pathlib.Path’s

  • New repr for itk.Matrix

  • np.asarray works on itk.Matrix

  • DCMTKImageIO wrapping addressed

  • GradientDifferenceImageToImageMetric wrapped

  • SynImageRegistrationMethod, BSplineSynImageRegistrationMethod wrapped

  • ConjugateGradientLineSearchOptimizerv4 wrapped

  • Wrap ImageRegistrationMethodv4 for itk.Mesh

  • Wrap PointSetToPointSetMetric, PointSetToPointSetRegistrationMethod

  • Wrap ANTSNeighborhoodCorrelationImageToImageMetricv4

C++

  • C++14 is now required.

  • The minimum CMake version required is now 3.16.3.

  • New functions: MakePoint, MakeVector, MakeIndex, MakeSize.

  • Targets in Visual Studio and other IDE’s are now organize hierachically by ITK Group and Module

  • Most of itk::mpl meta-programming functions replaced by C++14 equivalents

  • Performance accelerations for b-spline interpolation, Mattes mutual information metric computation

  • Improved modern C++ adoption, e.g. additional adoption of constexpr, auto

  • itk::ReadMesh, itk::WriteMesh simple reader functions available, similar to itk::ReadImage, itk::WriteImage

  • FFT backends are now registered through the object factory mechanism

New filters

  • itk::TransformGeometryImageFilter: applies a rigid transform to an Image’s metadata.

  • 1D FFT classes

    • Interface classes for forward, inverse transformations

    • Vnl implementations

    • FFTW implementations

  • itk::TriangleMeshCurvatureCalculator - Gaussian curvature calculator for itk::Mesh

Remote module updates

New remote modules:

  • HASI: High-Throughput Applications for Skeletal Imaging

  • ITKGrowCut: segments a 3D image from user-provided foreground and background seeds

  • ITKMeshToPolyData: Convert an ITK Mesh to a simple data structure compatible with vtkPolyData

  • ITKCudaCommon: Framework for processing images with CUDA

Updated modules: AdaptiveDenoising, AnisotropicDiffusionLBR, BSplineGradient, BoneEnhancement, BoneMorphometry, Cuberille, GrowCut, HASI, HigherOrderAccurateGradient, IOFDF, IOScanco, IsotropicWavelets, MinimalPathExtraction, Montage, MorphologicalContourInterpolation, RTK, SimpleITKFilters, SkullStrip, SplitComponents, Strain, TextureFeatures, Thickness3D, TotalVariation, TubeTK, and Ultrasound.

Third party library updates

  • eigen

  • expat

  • fftw

  • gdcm

  • googletest

  • hdf5

  • kwsys

  • kwiml

  • minc

  • metaio

  • niftilib

  • vxl

  • zlib migrated to zlib-ng

Congratulations

Congratulations and thank you to everyone who contributed to this release.

Of the 59 authors who contributed since v5.2.0, we would like to specially recognize the new contributors:

Michael Kuczynski, Tim Evain, Tomoyuki SADAKANE, Mario Emmenlauer, Andreas Gravgaard Andersen, Ebrahim Ebrahim, josempozo, Wenqi Li, Genevieve Buckley, Oleksandr Zavalistyi, Jose Tascon, Pranjal Sahu, ambrozicc1, Vagrant Cascadian, MrTzschr, Philip Cook, Tihomir Heidelberg, Jason Rudy, Kian Weimer, z0gSh1u, Darren Thompson, Darren, and Jose M Pozo.

What’s Next

We anticipate an additional release candidate following community testing before the 5.3.0 release. The following release candidate will provide an opportunity to test contributions for packaging, distributed computation, and GPU acceleration. Please try out the current release candidate, and discuss your experiences at discourse.itk.org. Contribute with pull requests, code reviews, and issue discussions in our GitHub Organization.

Enjoy ITK!

ITK Changes Since v5.3rc02

Bradley Lowekamp (20):

Enhancements

  • Add valgrind suppression file for Ubuntu 20.04 (af5dc21f77)

  • Remove LBFGS2’s pimpl member (2f60979bbb)

  • CircleCI use large resource class (2cded6cf83)

  • Update SimpleITKFilters remote module (fd67bcc443)

  • Doxygen use svg and mathjax (a3a87b7b06)

  • remove rendering datetime with Doxygen into HTML footer (510392c6ac)

  • Move factory registration code to separate file (ab07c12492)

  • Add factory names as optional argument (52c7d7479f)

  • Use ITK_<factory_name>_FACTORY_REGISTER_MANAGER (099b5621c8)

Platform Fixes

Bug Fixes

  • fix uninitialized memory warning in PeriodicBoundaryCondition test (f643a51f9c)

  • Fix linking by making LBFGS2Optimizerv4 a template (825bb36dc6)

  • warning in TIFFImageIO with component bit depth reduction (1d68414c4e)

  • Enable using only FFT Factory Register Manager (42b6023c1e)

  • internal fix for itk_generate_factory_registration (db89ee5260)

  • Include ITKFactoryRegistration in ITK build (f5e8eed193)

Style Changes

  • Use recursive FFT registration for N to 1 (8350f9c8f9)

Dženan Zukić (31):

Enhancements

  • add itk::Object::Register to the no-step-into list for VS2015+ (60d20a29b3)

  • expose STL constant begin/end iterator types (e3b79dd0ab)

  • add filter progress overflow check (fa8e5c87ac)

  • add a new ContinuousIntegration job: LinuxLegacyRemoved (6853d63728)

  • Update remote modules using a script (f5898b9428)

  • make BresenhamLine test more sensitive to numerical problems (ea72435239)

  • reduce code duplication by reusing code from ImageIOBase (7a0599ccdb)

  • itkMGHImageIO moved to InsightSoftwareConsortium (f84c9ef090)

  • modify rasterizer Test2 to exercise negative indices (cd8a17cb9c)

  • use the new CMake mechanism to specify MSVC’s static or DLL CRT (4b010e724d)

  • Update MINC UpdateFromUpstream.sh to use update-third-party.bash (fc46ec6bce)

  • Better progress reporting for 3 LabelMap filters (e3d4021d2a)

  • Make progress more accurate in case of filter restarts (6f238108a1)

  • Improve progress for GradientMagnitudeRecursiveGaussianImageFilter (6c32f95d77)

  • Avoid repeating progress in pool multi threader (ecd025e181)

  • Simplify LabelMapToLabelImageFilter slightly (11eb20b344)

  • Add a test for reading float vector image as Image<Vector> (df6e287ad1)

Documentation Updates

  • improve description of BresenhamLine (bc0d7a7940)

Platform Fixes

  • Turning off EZMINC option in libMINC (da253550db)

Bug Fixes

  • fix a crash in QuadEdgeMeshFilter tests (759b8ffa17)

  • fix filter progress overflowing due to bad logic in atomic add (840bae7174)

  • Enforce strictly positive image spacing values (17a1266e8f)

  • BresenhamLine was producing more indices than necessary (5edff15fc9)

  • fix handling of negative and non-zero region indices in rasterizer (0756bd3ad6)

  • Filter’s progress would sometimes regress (0eb55f2a91)

  • BinaryGeneratorImageFilter’s progress did not reach 1.0 (5c6497fad7)

  • properly serialize output in SimpleFilterWatcher (a3a8a33b28)

  • Avoid duplicate progress reporting in general case (f09104d503)

  • Do not refuse to read images of vectors with many components (54926893bc)

Style Changes

  • Simplify GradientMagnitudeRecursiveGaussianFilterTest (83d2379ea2)

  • Standardize parameter names to argc and *argv[], replace ac/av (103e0a9329)

Eigen Upstream (1):

Miscellaneous Changes

Genevieve Buckley (1):

Enhancements

  • pickle serialization for itk images (issue 1091) (27242f4aa5)

HDF5 Maintainers (1):

Miscellaneous Changes

Hans Johnson (40):

Enhancements

  • Allow users to have a CMakeUserPresets.json file (e32e05ac31)

  • Use build tree working directories (9e41a45038)

  • Removing circular header includes (836210b23e)

Documentation Updates

  • Add project documentation supported by mordern cmake (0d9fdf455c)

Platform Fixes

  • Use modern macro name for GetModifiableObjectMacro (7fdb6d6ced)

  • Remove processing missing Ruby directories. (0afe97d0e7)

  • Conditional build logic for WRAP_PYTHON (758ad339cb)

  • Working directory must pre-exist (36ffcf9045)

  • Remove implicit conversions (bf2e67a6ad)

  • Allow use of older system vxl (04012696bc)

  • Duplicate symbol name with #define (d75910d150)

  • Include .h instead of .hxx file (8976a581fc)

  • Place public interface in .h file (09926f0f5a)

  • Remove inclusion of .hxx files as headers (aafd1f9631)

  • Modernize searching in list (b524b12093)

  • Simplify H5Tinit.c file generation (568e311d4a)

  • Allow ITK to manage cmake_minimum_required version (452b99c241)

  • Remove redundant cmake_policy setting (d51f29c28d)

  • Hard-code HDF5 options to suppress messages (3780d66798)

  • Macro redefinition on windows (7aa5646a8f)

Bug Fixes

  • Fix constexpr linkage issue (ad86850385)

  • Ensure that the itk-stub dir exists (f732f05f24)

  • Condition building python stubs on python wrapping (4f33aab02e)

  • Syntax bug in ruby wrapping code (9ba7322376)

  • Test configured an invalid image spacing (d80b751c6c)

  • Conditional python 3.8 code optional (c779d09bc6)

  • setting unused variable named ‘0’ from macro (0b8a2ec2a3)

Style Changes

  • Use correct type for boolean expressions (b379d1c1c7)

  • Fix minor spelling error (e31d336943)

  • Address clang-tidy warnings in itkNumericTraitsTest.cxxv (89f1bca360)

  • Remove IsInteger and replace with std::is_integer (b3f80bb295)

  • Remove IsSigned and replace with std::is_signed (da13473cb0)

  • Prefer itk::Math::abs over abs or fabs (d715b098ba)

  • Allow use of clang-tidy as part of cmake compilation (55db25c240)

  • Do not use double underscore defines (191e122087)

  • Remove recursive inclusion of .h files (f84720ee08)

  • Include .hxx files inside .h header guards (70351d1fe4)

  • Use simplified modern cmake directive (6da612134b)

  • Disable MSVC settings for non-MSVC (8cf8bf3632)

  • Allow hdf5 to specify it’s own clang-format (c73b9f0884)

James Butler (1):

Documentation Updates

Jon Haitz Legarreta Gorroño (52):

Enhancements

  • Use latest checkout release in clang-format linter workflow (091a1ab635)

  • Avoid setting a negative spacing to test exception (5f85a5de85)

  • Increase code coverage (58f738a8c4)

  • Add wrapping for itk::GradientDifferenceImageToImageMetric (7e60a39968)

  • Increase itk::ImageBase coverage (217c0d4084)

  • Add RTTI to itk::InvertDisplacementFieldImageFilter (0f2fe8f986)

  • Increase coverage for ImageStatistics module classes (a0c32bbe61)

  • Add boolean macros to miscellaneous boolean ivars (ce00b06dfe)

  • Use itkPrintSelfObjectMacro to print objects that can be null (5d860e62a9)

  • Add boolean macros to itk::SpatialObjectWriter boolean ivars (ac7272c04c)

  • Add boolean macros for itk::JPEGImageIO boolean ivars (d4c6b33f67)

  • Exercise basic object methods for itk::JPEGImageIO (7408df465a)

  • Increase coverage for miscellaneous classes (748ddf7768)

  • Use itkPrintSelfObjectMacro to print objects that can be null (ffe6b2ccc1)

  • Add RTTI to itk::DisplacementFieldToBSplineImageFilter (57ef2ac9f5)

  • Increase coverage for miscellaneous classes (5deb0c39cf)

  • Add getter macro to ivar (48eacfe518)

  • Add missing getter/boolean macro methods (4db7880575)

  • Increase coverage for miscellaneous classes (e2511e7c0f)

Documentation Updates

Platform Fixes

  • Fix abs method not being found (b655b02ce8)

  • Use and move ITK_DISALLOW_COPY_AND_MOVE calls to public section (ac1d0aa1ef)

  • Fix testing macro call and array initialization errors (7e37b19646)

  • Fix spline order return type in getter macro (8683d4254e)

  • Fix variable type and syntax errors (109047a2e9)

  • Fix missing initialization braces warning (98bc61493f)

Bug Fixes

  • Remove declared but undefined method (98e030b20d)

  • Disallow zero-valued determinant directions (c4960ee19c)

  • Fix class names in itkTypeMacro (ed0f6d3cf2)

  • Fix superclass name in itkTypeMacro (2d63eb0aa0)

  • Do not print non-self member variables in PrintSelf (44e3199900)

  • Fix superclass name in itkTypeMacro (9175d4ca68)

  • Use the superclass name in itkTypeMacro (8e1220c538)

  • Fix superclass name in itkTypeMacro (007970e369)

  • Guarantee array contains enough elements for access in loop (90f7396296)

  • Initialize itk::ExhaustiveOptimizer ivars (bd55ef3f7d)

  • Initialize itk::Array variable values in test (06d5ed1d10)

Style Changes

  • Make ImageLabel and ImageNoise modules test style consistent (922ff82a1c)

  • Use the itkNameOfTestExecutableMacro macro in tests (7997ef3eaa)

  • Use argc and argv to name test argument variables (03a3af21ef)

  • Use local include syntax to include ITK files (05d48c66cd)

  • Use exit return codes consistently in tests (a98f7a898e)

  • Use auto for variables initialized by New() in Examples (2f291f8dc5)

  • Use the itkNameOfTestExecutableMacro macro in tests (706ff726cc)

  • Improve the JPEG module tests’ style (bc3ac22332)

  • Use strongly typed enum class ostream overload in PrintSelf (69b4178dc7)

  • Use the itkNameOfTestExecutableMacro macro in tests (82520a8db9)

  • Use the superclass name in itkTypeMacro (6a1575d68c)

  • Prefer returning int instead of bool in test method (8fa5a8041e)

Jose M Pozo (3):

Enhancements

  • Add test for inverse Jacobian of AffineTransform. (7c7233f0b3)

Bug Fixes

  • ComputeInverseJacobianWithRespectToPosition didn’t do inversion (9111b93afa)

Style Changes

  • auto declarator when initializing with New() (dd7d0d6cf0)

KWSys Upstream (1):

Miscellaneous Changes

Kian Weimer (5):

Enhancements

  • Generate stub-files to support type hints (faa3ab0a7e)

Platform Fixes

Bug Fixes

Lee Newberg (3):

Performance Improvements

  • Use binary search for threshold in ThresholdLabelerImageFilter (340f6f4064)

Platform Fixes

  • Fix unsigned<0 warning for itkSetClampMacro. (b11a9981b9)

Style Changes

  • Removing extraneous colons from ‘::itk’ and ‘::std’. (24e7b452b4)

Lucas Gandel (1):

Enhancements

Mario Emmenlauer (1):

Enhancements

  • Added template parameter for texture mask type (9273616e19)

Matt McCormick (13):

Enhancements

  • Wrap SynImageRegistrationMethod, BSplineSynImageRegistrationMethod (3e27a46124)

  • Add itk::ReadMesh (eb98045d6d)

  • Add itk::WriteMesh (bd2a2e484d)

  • Add checks to itkMeshFileReaderWriterTest (b00d11bf00)

  • Use literate identifiers in Dask serialization. (c99232aa06)

  • Add MeshToPolyData remote module (8ecef7b8a0)

  • Content link updates for ITK 5.3rc03 (590dd29f00)

Platform Fixes

Bug Fixes

  • Create CellData when requested in Mesh::GetCellData (3474342014)

  • Provide consistent shape on Fortran-order np.ndarray views (a4419d8259)

Style Changes

  • Use keyword style for HeaderTest target_link_libraries (1a599f4d2f)

  • Move type declaration into itkMeshCellDataTest function (fa2a3a2f3b)

  • Remove old FFT 1D implementation includes (6eaa4623e1)

Mihail Isakov (14):

Enhancements

  • JPEG IO: check integer overflow (de5f8e8513)

  • add a test for verifying a JPEG image is corrupted and throws (4f770cb6bd)

Bug Fixes

  • fixed undefined behaviour with corrupted JPEG file (d43311d3e9)

  • GDCM IO: reset internal variables (d9f4b77b65)

  • PNG IO fails on corrupt file (31ce397623)

  • JPEG IO: only allow 8 bits (f28dcb1087)

  • JPEG IO: disallow UINT input images (b4a6a21b14)

  • JPEG IO: ensure same dimensions in Read and ReadImageInfo (e45f3edef8)

  • JPEG IO: set correct max dimensions (07214e8ad5)

  • JPEG IO: handle all possible number of components (139fa77ce4)

  • JPEG IO: delete pointer on setjmp, other (a9c38a0fa2)

  • JPEG IO: handle CMYK correctly (ca4babd252)

Style Changes

  • updated error message, improved size check (bb759349a2)

  • OpenJPEG: removed outdated comment (9da82ba301)

NIFTI Upstream (1):

Miscellaneous Changes

Niels Dekker (23):

Enhancements

  • Make Parameters empty, do not warn in Transform default-constructor (20249ece00)

  • Test BuildInformation GetValue, GetDescription for an l-value key (d6778a3d22)

Performance Improvements

  • Use the faster TransformPhysicalPointToIndex overload in filter (eb6ac88c82)

  • Use the faster TransformPhysicalPointToContinuousIndex overload (6a8569ef11)

Platform Fixes

  • No longer disable MSVC warning C4503 on “decorated name length” (1bba12cf10)

  • Fix unreachable code (af32a779c4)

  • No longer delete (= delete) PreFillDirection() function template (a328737726)

  • Fix BuildInformation GetValue, GetDescription key parameter type (7324ffe083)

Bug Fixes

  • Add missing single argument ImageAdaptor Transform member functions (2d06a6a583)

Style Changes

  • Do not do return; directly after throwing an exception (ad64a79f65)

  • Use the faster TransformPhysicalPointToIndex overload in tests (c1f266aa75)

  • Remove TimeStamp default-constructor, assignment (Rule of Zero) (83f6cab3c4)

  • Remove dead code (#else…#endif) BSplineInterpolateImageFunction (0c87e1f9fc)

  • Move BSplineInterpolateImageFunction member functions into class (d832119218)

  • Use unique_ptr for threaded BSplineInterpolateImageFunction data (3923f261c3)

  • Use unique_ptr for ImageToImageMetric data members (3c6f2984df)

  • Use Transform default-constructor instead of Transform(0) (1d119967ce)

  • Remove remaining void from empty function parameter lists (93d3f3b3c0)

  • Declare local ImageRegion variables const (ac3156140b)

  • Clean-up default-constructed local inputRegion variables (55eb65b3c6)

  • Declare local zero-filled Index variables constexpr (c46354736b)

  • Code clean-up initializing local ImageRegion variables (f9cef65782)

  • ConstNeighborhoodIterator in-class default member initializers (0eac1bdb6b)

Pablo Hernandez-Cerdan (3):

Enhancements

Platform Fixes

  • Disable Eigen3 warning Wused-but-marked-unused (9d9b4165c3)

Miscellaneous Changes

  • Revert “ENH: Updated script for Eigen third party update” (f3d7c99d77)

Pranjal Sahu (23):

Enhancements

  • Adding python wrapping for ConjugateGradientLineSearchOptimizerv4 (028c37c6fe)

  • Adding Gaussian Curvature Calculator in ITK Mesh with tests (5f180c6e41)

  • Removing relative header imports from multiple cxx files (ebc115e41e)

  • Adding Python Wrapping for itkImageRegistrationMethodv4 with Mesh (fab7112d91)

  • Triangle Cell Casting and Raw Pointer for Wrapping (f57fe85b06)

  • Adding Tests for Non-Triangle Mesh (18005c81eb)

  • Wrapping only for 3D (05ae9a5061)

  • Wrap PointSet To PointSet Metric and RegistrationMethod (b23d73ef96)

  • Python Wrapping for Array PixelType in Mesh (abb1d19328)

  • Adding Test for Array PixelType in Mesh Wrapping (d85bb67249)

  • Adding Python wrapping for CellInterface VectorContainer (b3fb53f979)

  • Adding Python Wrapping for SyNImageRegistrationMethod (653ab122ea)

  • Adding Mesh in SwigInputGenerator notWrapped list (63239c68f2)

  • Adding test for itkConnectedRegionsMeshFilter (4bf1434852)

  • Renaming ExtractMeshConectedRegionsTest (232c9c7f26)

  • Adding Module dependency for Python test (aec78197f5)

Platform Fixes

  • Read Only access to GaussCurvatureData (42160f8434)

  • Delete cell before SetCell to avoid memory leak (0cf2c13709)

  • Use itk.ULL for windows (7e59d1bf73)

Bug Fixes

  • Correct Name Mangling for BSplineSmoothing DisplacementFieldTransform (2b56a143e9)

  • Fix for incorrect number of connected regions (6746880dea)

  • Fix for incorrect cell extraction when SpecifiedRegions (91c27ff30f)

  • Fix for incorrect number of cells in output mesh (94df2c14d4)

Sean McBride (21):

Enhancements

Platform Fixes

  • fixed more clang -Wreserved-identifier warnings (2cc4bdb5e3)

  • seems all use of kwiml is no longer actually needed, removed it. (85072c0afc)

  • had to remove these… (0d6aa661c2)

  • removed obsolete option for Objective-C++ flags (ae74e4122a)

  • Added mangling for 3 HDF5 functions that were missed (4804adc4c1)

  • add C++11 override to various HDF5 methods that indeed override (1be1b170e6)

  • fixed -Wset-but-unused warning building in Release (db431226cb)

Bug Fixes

  • Changed a lazy one-time initialization to use call_once. (c3d108322d)

  • fixed various incorrect mutex use, found by TSan (19330580e0)

  • fix several threading bugs in itkThreadPool found by TSan (d63a4f8387)

  • fixed thread safety errors found by Thread Sanitizer (b66133ab53)

  • fixed missing mutex acquisition noted by Thread Sanitizer (d5a91d150d)

  • fixed concurrant writes to an ivar found by Thread Sanitizer (ed6d2d1329)

  • fixed issue #3032: fixed mutation from several threads simultaneously (379f5e0137)

Simon Rit (2):

Enhancements

Platform Fixes

Stephen R. Aylward (3):

Enhancements

  • Adding test for Index member var of SpatialObjectToImageFilter (f09f575480)

Platform Fixes

  • Eliminate unnecessary complexity of logic for setting Index. (4fb006b0fe)

Bug Fixes

  • SpatialObjectToImageFilter didn’t use reference image’s index (7c2cd637cc)

Steve Robbins (1):

Bug Fixes

  • Do not unconditionally assume SSE2 when building on i386. (1a3c66ee05)

Tihomir Heidelberg (1):

Enhancements

  • Add UTF-8 support for ImageSeriesReader when reading series of images (3fb1dec607)

Tim Evain (1):

Platform Fixes

  • Add cmake clause when DCMTK_USE_ICU is OFF overwriting DCMTK config (209f2056b8)

Tom Birdsong (25):

Enhancements

  • Update Windows MKL path and prioritize user path if supplied (a78269b2ba)

  • Select Forward1DFFTImageFilter backend with object factory (67762eefa6)

  • Hide FFT factory registration manager implementation detail (6452747dbe)

  • Add ANTSNeighborhoodCorrelation metric wrapping (5b25bfada6)

  • Standardize complextocomplex fft with two-arg template (ec145cfb13)

  • Add object factory registration for FFT classes (bb3c27e877)

  • Manually register FFT factories in testing (a7d1fdfda9)

  • Remove TestDriver duplicate macro for Nonunit tests (896cd89ae8)

  • Query class name rather than subclass in test macro (441fbd083d)

  • Add default FFT object factories to TestKernel initialization (10f8abbc8d)

  • Register default FFT factories for 4D images (87ebb47912)

  • Update FrequencyIterators GTest for factory registration setup (0e642456c1)

  • Add Python FFT object factory tests (955ec5c0c2)

  • Add macro to selectively catch factory instantiation failures (32599f1b8e)

  • Add test to verify itkFactoryOnlyNewMacro functionality (6c841b05ef)

Documentation Updates

  • Remove lingering Ultrasound dependency (4b95bcfc2c)

Platform Fixes

  • Add ITKImageIntensity as a test dependency for ITKFFT (d856379505)

Bug Fixes

  • Fix ANTS metric type macro (26f8d0ba9e)

  • Fix 1D FFT doxygen groups (536bb1b9cf)

  • Remove duplicate required input in BlockMatchingImageFilter (845e661e87)

  • Make FFT factories available across Python modules (35df104b3e)

  • Condition FFT wrappings on complex types (0cea2d0831)

  • Synchronize the object factory across Python modules (51eae89a74)

  • Remove name check in GCC-compiled tests and uncomment FFT checks (934d2c2bdf)

Miscellaneous Changes

  • Revert “BUG: Make FFT factories available across Python modules” (263c603e6a)

VXL Maintainers (3):

Miscellaneous Changes

Vagrant Cascadian (1):

Enhancements

  • Use UTC timestamp in CONFIGURE_DATE. (89b8fd3ce9)

Vladimir S. FONOV (1):

Miscellaneous Changes

Wenqi Li (2):

Enhancements

  • GetMatrixFromArray to accept ArrayLike sequences (a89145bccd)

  • Ignore Distributed import errors (5f1af152ba)

josempozo (5):

Enhancements

  • Added non-trivial (time-varying) test (36850a19f8)

  • TimeBounds’ normalization made optional (7ae8a4ec19)

  • Modified time-varying test switching off time normalization (b668ce6192)

Bug Fixes

  • Runge-Kutta wrong TimeBounds implementation (1d705b4879)

Style Changes

z0gSh1u (1):

Documentation Updates

  • Add comment for SetNumberOfWorkUnits to correct documentation. (28763032ee)

ITK Sphinx Examples Changes Since v5.3rc02

Andinet enquobahrie (1):

Enhancements

  • Turn off Git protocol by default. (8132a8d2)

Dženan Zukić (5):

Enhancements

  • require C++14 for examples (079d8826)

  • use new version of super linter (a9e11bd1)

  • use CMake version 3.16.3 as new required minimum (345b1d0d)

Platform Fixes

  • fix compile errors by aggressive code cleanup (4927d96e)

Style Changes

  • fix lint errors by applying clang-format (1bb21249)

Hans Johnson (9):

Platform Fixes

  • Remove inclusion of .hxx files as headers (01ed5763)

  • Modules need updated version of ITK (e78bb01e)

  • ENABLE_QUICKVIEW code updates (9ac0bafe)

  • Remove unnecessary shadow definition (f1651b31)

  • Resolve deprecation warning for SphinxExamples (6b9e0fea)

Style Changes

  • Prefer itk::Math::abs for consistency. (28820f48)

  • address unused variable warnings. (89a73005)

  • Remove outdated pre ITKv4 code (5b3015a7)

  • Remove python style warnings (e4742994)

Jon Haitz Legarreta Gorroño (11):

Enhancements

  • Add const smart pointer type alias (4aba13d6)

Platform Fixes

  • Use and move ITK_DISALLOW_COPY_AND_MOVE calls to public section (fc34c701)

  • Mark class destructors with override (b9974602)

Bug Fixes

  • Include the appropriate implementation file (bc2ccaf2)

  • Fix the class name in the ImageSource source files (7c159ea3)

  • Inherit ImageSource from ProcessObject (be9d4e69)

  • Make the include guards match the filenames (aaa8c25a)

Style Changes

  • Do not use double underscore defines (b260806a)

  • Move default construtor to .h (4d22d731)

  • Prefer = default to explicitly trivial implementations (0ef6f6bd)

  • Use typename instead of class in template definitions (84afaf0c)

Kian J Weimer (1):

Bug Fixes

  • Switched incorrect ‘image_to_vtk_image’ function calls to ‘vtk_image_from_image’. (7acdc497)

Matt McCormick (6):

Enhancements

  • Update Sphinx to 4.4.0 (7c77f795)

  • Build documentation in CI with the Superbuild (74f34732)

  • Migrate from gitstats to sphinx-contributors (66cbdd66)

  • Update ITK to 5.3 RC 3 (231ac876)

Platform Fixes

  • Sphinx warning node class ‘meta’ is already registered (550f3b92)

  • Address unused SPHINX_HTMLHELP_OUTPUT in superbuild (4255ef27)

Tom Birdsong (19):

Enhancements

  • Remove redundant ITK build step in docs CI (74878f04)

  • Deploy docs to Fleek (3325d7b6)

  • Adjust site dir for Fleek container reference (a6e600a7)

  • Bump ITK version (50d60aa6)

Bug Fixes

  • Initialize image buffer in Inverse FFT example (ff614cbb)

  • Fixes for HTML documentation (0f025e3a)

  • Fix ITKDoxygenXML by copying instead of renaming directory (2d080691)

  • Use https protocol for Superbuild CI (f1103ff8)

  • Ignore breathe duplicate C++ warnings in docs CI (19d77271)

  • Fix site unpack path (7c084818)

  • Remove comma (8b0b3526)

  • Update paths for Fleek source (9d8a0780)

  • Fix github actions variable ref (a1f279d4)

  • Revert deploy to Netlify (2d8514bb)

  • Disable broken RegisterTwoPointSets tests (9183236c)

Miscellaneous Changes

ITK Software Guide Changes Since v5.3rc02

Dženan Zukić (2):

Enhancements

  • Update minimum CMake version (f5304f0)

  • Make HTTP protocol the default in SuperBuild.cmake (4f827f1)

Jon Haitz Legarreta Gorroño (12):

Documentation Updates

  • Print backslash mark (002ea47)

  • Fix Doxygen special command markup and provide example (aa77a56)

  • Fix Doxygen link (7db4436)

  • Remove uses of itk::ImageTraits (67a88b4)

  • Make test ending messages consistent (42d950b)

  • Override destructor and prefer = default for trivial bodies (60e70f5)

  • Match the current function deletion practice in ITK (ce05540)

  • Prefer using pre-increment over post-increment (747ffae)

  • Update the ITK code style to current automatically enforced (7b34899)

  • Document brace and brace list initialization preference (f6f73fe)

  • Update itk::N4BiasFieldCorrectionImageFilter::Sharpen definition (55ea845)

  • Remove recursive inclusion of .h files (eb1b24c)

Julien Jomier (3):

Enhancements

  • Update new kitware logo (733dabb)

Style Changes

  • Updated the contributors (1d0a653)

  • Reverted back some contributions for clarity (e21d83e)

Lee Newberg (4):

Documentation Updates

  • clang-format of code samples and other minted changes (dd10e33)

Style Changes

  • Format Python code with black (b041051)

  • Format c++ code with clang-format (061225e)

  • Use Python f” formatting (cc3bbfc)

Matt McCormick (2):

Enhancements

  • Bump ITK to v5.3rc03 (d833447)

  • Update ISBN for new publication (7f6bf89)

Niels Dekker (2):

Enhancements

  • Add “Trailing Return Types” section (c64b23b)

Style Changes

  • Do not use void in empty function parameter list (c4d9284)

Tom Birdsong (2):

Documentation Updates

  • Add section on debugging Python wrappings (891fff6)

Bug Fixes

  • Use https protocol for superbuild CI (6cc25d0)

Remote Module Changes Since v5.3rc02

BoneEnhancement:

Matt McCormick (1):

Enhancements

  • Bump itk to 5.2.1.post1 (aec0745)

MGHIO:

MeshToPolyData:

Montage:

Dženan Zukić (1):

Platform Fixes

  • avoiding deprecated itkGetStaticConstMacro (c5f9214)

Jon Haitz Legarreta Gorroño (1):

Platform Fixes

  • Fix initializer list lifetime warning (2fd431a)

PerformanceBenchmarking:

Dženan Zukić (4):

Enhancements

  • use C++14 and CMake 3.16.3 for compatibility with ITK 5.3 (b8c92d0)

  • use a recent commit of ITK to avoid build errors and warnings (6a27b32)

Platform Fixes

  • use std::is_arithmetic instead of mpl::IsNumber (768801e)

  • add missing #include (9914ae9)

Jon Haitz Legarreta Gorroño (4):

Enhancements

  • Bump ITK to latest commit in master (f960087)

Documentation Updates

  • Remove deprecated shell script reference from README (adac509)

  • Add Python to requirements list in README (5940c80)

Style Changes

  • Use double backticks for inline literals in README (0b75ca7)

RTK:

Andreas Gravgaard Andersen (1):

Bug Fixes

  • Fix varian reader memory bugs (16e97605)

MrTzschr (1):

Bug Fixes

  • Fixed CudaFDKConeBeamReconstructionFilter not using GPU default projection subset size (7ba9a51c)

Simon Rit (23):

Enhancements

  • Update CI for ITK 5.2.1 (5f0e9560)

  • Update CI builds systems from Ubuntu 18.04 to 20.04 (cf925530)

  • add simulations of Forbild cones (8b0197db)

  • wrap geometry readers for all constructors (5978cef3)

  • add Varian OBI Python application (569ec779)

  • install python application for Varian OBI geometry (b9ff8dcf)

  • add python application for Ora geometry (60171528)

  • wrap rtk::GlobalResourceProbe for timing Python (bbf5461e)

Documentation Updates

Platform Fixes

  • Replace itkGetStaticConstMacro(name) with Self::name (62b8c0a2)

  • provide nvcc location to CMake package CUDAToolkit (2a05f389)

  • add Linux x64 self-hosted CI for CUDA (d3b52188)

  • use 5.2 as the default Cuda architecture (baffa738)

Bug Fixes

  • Update Python Git tag to v5.2.1.post1 (2111bdf3)

  • fix orientation of Forbild ellipsoids (4c2621cf)

  • let ITK initialize C++ standard and build type (a21ff588)

  • fix computation of rotation matrix for axis in Forbild (0191861f)

  • correctly handle the union of three objects (eba1d8fc)

  • deal with (half-)lines when intersecting quadric with a rays (009ef926)

  • fix ray quadric intersection for tangent rays (25567c62)

Style Changes

  • remove backward compatibility with ITK v5.1 (a025c810)

  • Replace itkStaticConstMacro with static constexpr (b54a188c)

Miscellaneous Changes

SimpleITKFilters:

Bradley Lowekamp (2):

Miscellaneous Changes

  • Update to ITK 5.3rc2 (c1ab584)

  • Change testing data to sha512 uploaded to data.kitware (ad91905)

Strain:

Tom Birdsong (5):

Enhancements

  • Update ITK CI version to 5.2.1 (4597dd5)

  • Add float type to StrainImageFilter wrappings (ac8b58a)

  • Wrap TransformToStrainFilter (e0b751d)

  • Update Python package version (17a7a05)

  • Add script and notebook strain examples (701a5ef)

Ultrasound:

Matt McCormick (2):

Enhancements

  • Bump version to 0.5.0 (645b861)

  • Build Python packages against ITK 5.2.1 (6d56255)

Tom Birdsong (7):

Enhancements

  • Wrap itkSpeckleReducingAnisotropicDiffusionImageFilter for Python (dfd8047)

  • Add example to demonstrate NRRD ultrasound sequence -> VideoStream (9ed1961)

  • Bump ITK cxx CI git tag (172bd04)

  • Add common data paths to .gitignore (1abec41)

  • Wrap normalized cross correlation class hierarchy (d6ae9d6)

Bug Fixes

  • Use Python 3.9 for nbmake (385abb2)

  • Fix linux python CI runner cleanup step (39b95e1)