Itk

Latest version: v5.3.0

Safety actively analyzes 628924 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 7

5.2rc02

5.2rc01

5.1.2

------------------------------

Bradley Lowekamp (4):

Platform Fixes

- Updating ITKSimpleITKFilters remote module ([e3ba060fe5](https://github.com/InsightSoftwareConsortium/ITK/commit/e3ba060fe5))

Bug Fixes

- Address divide by zero error in SignedMaurerDistance ([4fb2831d62](https://github.com/InsightSoftwareConsortium/ITK/commit/4fb2831d62))
- Support MRC2014 mode 0 as signed 8-bit integer ([f7d72576bf](https://github.com/InsightSoftwareConsortium/ITK/commit/f7d72576bf))

Style Changes

- Improve function types used in SignedMaurerDistanceMap ([b706cf64c7](https://github.com/InsightSoftwareConsortium/ITK/commit/b706cf64c7))


Hans Johnson (1):

Bug Fixes

- itkhdf5 installed paths were incorrect with recent hdf5 versions ([fd4a438042](https://github.com/InsightSoftwareConsortium/ITK/commit/fd4a438042))


Lee Newberg (1):

Bug Fixes

- MinPriorityQueueElementWrapper constructor needs default constructor ([b027780259](https://github.com/InsightSoftwareConsortium/ITK/commit/b027780259))


Matt McCormick (3):

Enhancements

- Update ITK CMake version for 5.1.2 ([39d9b1712f](https://github.com/InsightSoftwareConsortium/ITK/commit/39d9b1712f))
- Add int.tiff.md5 content link for 5.1.2 release ([a0125aa894](https://github.com/InsightSoftwareConsortium/ITK/commit/a0125aa894))

Bug Fixes

- Add TIFFImageIO support for unsigned int and int pixel types ([241953dd23](https://github.com/InsightSoftwareConsortium/ITK/commit/241953dd23))


Niels Dekker (1):

Bug Fixes

- Fix MatrixOffsetTransformBase SetFixedParameters if too few params ([33e9e6bdba](https://github.com/InsightSoftwareConsortium/ITK/commit/33e9e6bdba))

5.1.1

------------------------------


Antoine Robert (1):

Enhancements

- Use Numpy bridge with array of dimension 1 ([caae21695f](https://github.com/InsightSoftwareConsortium/ITK/commit/caae21695f))


Bradley Lowekamp (14):

Enhancements

- Update GDCM to latest on the release-2.8 branch ([90e6da1ff6](https://github.com/InsightSoftwareConsortium/ITK/commit/90e6da1ff6))

Platform Fixes

- Add missing const qualifier ([8c4d3da09d](https://github.com/InsightSoftwareConsortium/ITK/commit/8c4d3da09d))
- Address missing brace initializer warning ([14a8919dfd](https://github.com/InsightSoftwareConsortium/ITK/commit/14a8919dfd))

Bug Fixes

- Disable dynamic threading in noise filter. ([af780e8a03](https://github.com/InsightSoftwareConsortium/ITK/commit/af780e8a03))
- Add StatisticsImageFilter ([43a8972077](https://github.com/InsightSoftwareConsortium/ITK/commit/43a8972077))
- Fix segfault with empty CompositeTransforms ([0300b63ddf](https://github.com/InsightSoftwareConsortium/ITK/commit/0300b63ddf))
- Fix additional segmentation faults with empty Composite ([7212dc719f](https://github.com/InsightSoftwareConsortium/ITK/commit/7212dc719f))
- Address memory leak in CastSpatialOpbjectTest ([a243e9d9af](https://github.com/InsightSoftwareConsortium/ITK/commit/a243e9d9af))
- Patch missing const qualifier to GDCM dircos_comp comparison ([90ad651db4](https://github.com/InsightSoftwareConsortium/ITK/commit/90ad651db4))
- Address bug with small size in output of SliceImageFilter ([7aac4a6748](https://github.com/InsightSoftwareConsortium/ITK/commit/7aac4a6748))
- Update CI scripts from current ITK master ([3213404416](https://github.com/InsightSoftwareConsortium/ITK/commit/3213404416))
- update CircleCI configuration with selections from master ([08dc0116fe](https://github.com/InsightSoftwareConsortium/ITK/commit/08dc0116fe))
- Don't use InsertElement which modifies MTime ([63d148715e](https://github.com/InsightSoftwareConsortium/ITK/commit/63d148715e))
- Address buffer overflow with deprecated GDCM1 interface ([5df152b4c3](https://github.com/InsightSoftwareConsortium/ITK/commit/5df152b4c3))


Bryn Lloyd (1):

Platform Fixes

- Fix warning in PointSetToPointSetMetricv4 (1820) ([567764e1ae](https://github.com/InsightSoftwareConsortium/ITK/commit/567764e1ae))


Davis Vigneault (1):

Bug Fixes

- Fix Segfault in Delaunay Filter ([e72fd012a4](https://github.com/InsightSoftwareConsortium/ITK/commit/e72fd012a4))


Dženan Zukić (9):

Enhancements

- use double-conversion's CMake targets ([3ee6f1e5c9](https://github.com/InsightSoftwareConsortium/ITK/commit/3ee6f1e5c9))
- back-porting 1165 to support Visual Studio 2019 ([432dd1b9dc](https://github.com/InsightSoftwareConsortium/ITK/commit/432dd1b9dc))

Documentation Updates

- restore LICENSE accidentally overwritten by a merge commit ([ed2a25db2c](https://github.com/InsightSoftwareConsortium/ITK/commit/ed2a25db2c))

Platform Fixes

- a fix for non-system double-conversion build ([a47c974f64](https://github.com/InsightSoftwareConsortium/ITK/commit/a47c974f64))
- update download location for pre-built ICU for Visual Studio ([f360092423](https://github.com/InsightSoftwareConsortium/ITK/commit/f360092423))

Style Changes

- make column limit more stringent in the examples ([0b970d803d](https://github.com/InsightSoftwareConsortium/ITK/commit/0b970d803d))
- apply clang-format ([d9e73e9a8b](https://github.com/InsightSoftwareConsortium/ITK/commit/d9e73e9a8b))
- rename libPNG's license to match the original one ([5012917fb4](https://github.com/InsightSoftwareConsortium/ITK/commit/5012917fb4))
- remove duplicate item in a list ([a8ba7686a5](https://github.com/InsightSoftwareConsortium/ITK/commit/a8ba7686a5))


GDCM Upstream (1):

Miscellaneous Changes

- 0353bb40ed ([0353bb40ed](https://github.com/InsightSoftwareConsortium/ITK/commit/0353bb40ed))


Hans Johnson (1):

Bug Fixes

- Double scaling introduced in refactoring ([355c6cbda3](https://github.com/InsightSoftwareConsortium/ITK/commit/355c6cbda3))


Jerome Schmid (1):

Platform Fixes

- VtkGlue module-Provide support for VTK new cmake targets ([c2cfd2b6d1](https://github.com/InsightSoftwareConsortium/ITK/commit/c2cfd2b6d1))


Jonathan Daniel (2):

Enhancements

- Added .vs to .gitignore ([e4f20e2580](https://github.com/InsightSoftwareConsortium/ITK/commit/e4f20e2580))

Bug Fixes

- Accept TemplateTypeError with fallback_only ([612a769660](https://github.com/InsightSoftwareConsortium/ITK/commit/612a769660))


Marco Nolden (1):

Platform Fixes

- added vcl compiler detection for GCC 10.x ([e53d1d94f0](https://github.com/InsightSoftwareConsortium/ITK/commit/e53d1d94f0))


Matt McCormick (20):

Enhancements

- Bump CMakeLists.txt version to 4.13.3 ([f7ac08b4c9](https://github.com/InsightSoftwareConsortium/ITK/commit/f7ac08b4c9))
- Add testing data content links for ITK 5.1.1 ([866ee013a1](https://github.com/InsightSoftwareConsortium/ITK/commit/866ee013a1))
- Update ITK CMake version for 5.1.1 ([3ecf6c87d1](https://github.com/InsightSoftwareConsortium/ITK/commit/3ecf6c87d1))

Platform Fixes

- Duplicate ImageToImageFilter wrapping of ULL ([e747b0a946](https://github.com/InsightSoftwareConsortium/ITK/commit/e747b0a946))
- Avoid duplicate itk.PointSetD3 wrapping ([bea2a7906e](https://github.com/InsightSoftwareConsortium/ITK/commit/bea2a7906e))
- Do not reference FE_DIVBYZERO FE_INVALID with Emscripten ([b05b007a63](https://github.com/InsightSoftwareConsortium/ITK/commit/b05b007a63))
- Add VXL support for GCC 9 ([9825d546c4](https://github.com/InsightSoftwareConsortium/ITK/commit/9825d546c4))
- Add lxml to macOS CI environment ([1919eaa95b](https://github.com/InsightSoftwareConsortium/ITK/commit/1919eaa95b))

Bug Fixes

- Specify itk package in SWIG Python modules ([98fc085a9d](https://github.com/InsightSoftwareConsortium/ITK/commit/98fc085a9d))
- Simplify itk.BlockMatchingImageFilter feature points PointSet mangling ([2e2b3332cd](https://github.com/InsightSoftwareConsortium/ITK/commit/2e2b3332cd))
- Import C module from Python submodule ([a6a5140f4d](https://github.com/InsightSoftwareConsortium/ITK/commit/a6a5140f4d))
- ITKModuleExternal CMAKE_LIBRARY_OUTPUT_DIRECTORY when wrapping ([eb97b5aa4a](https://github.com/InsightSoftwareConsortium/ITK/commit/eb97b5aa4a))
- Wrap ExtractImageFilter for UL ([972a89c228](https://github.com/InsightSoftwareConsortium/ITK/commit/972a89c228))
- Support casting unsigned long pixel types in Python ([530e61eedf](https://github.com/InsightSoftwareConsortium/ITK/commit/530e61eedf))
- Remove netnlib triangle classes ([7f95961fa7](https://github.com/InsightSoftwareConsortium/ITK/commit/7f95961fa7))
- Remove License incompatible netlib files from vxl updates ([d1066224e3](https://github.com/InsightSoftwareConsortium/ITK/commit/d1066224e3))
- Empty image support in image_from_xarray ([3da4926531](https://github.com/InsightSoftwareConsortium/ITK/commit/3da4926531))
- Add missing enumerate with multi-ndarray-output itk filters ([c7595ff794](https://github.com/InsightSoftwareConsortium/ITK/commit/c7595ff794))
- Do not wrap unsigned char for connected component output ([f3e328657f](https://github.com/InsightSoftwareConsortium/ITK/commit/f3e328657f))

Style Changes

- ITK_WRAP_PYTHON_PROCCESS to ITK_WRAP_PYTHON_PROCESS ([166be4d32b](https://github.com/InsightSoftwareConsortium/ITK/commit/166be4d32b))


Niels Dekker (1):

Bug Fixes

- Fix issue 1950, ImageMaskSpatialObject access outside image buffer ([ceb157d634](https://github.com/InsightSoftwareConsortium/ITK/commit/ceb157d634))


Stephen R. Aylward (1):

Bug Fixes

- CUFFTW paths were not being set and unnecessary FFTW files used ([449c571897](https://github.com/InsightSoftwareConsortium/ITK/commit/449c571897))


Zhiyuan Liu (2):

Documentation Updates

- improve helpers of itk.Filters. ([7818607b62](https://github.com/InsightSoftwareConsortium/ITK/commit/7818607b62))

Bug Fixes

- Register Dask serialization functions for NDArrayITKBase ([27fe268d9d](https://github.com/InsightSoftwareConsortium/ITK/commit/27fe268d9d))

5.1

**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**

- [InsightToolkit-5.1b01.tar.gz](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.1b01/InsightToolkit-5.1b01.tar.gz)
- [InsightToolkit-5.1b01.zip](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.1b01/InsightToolkit-5.1b01.zip)

**Testing Data**

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

- [InsightData-5.1b01.tar.gz](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.1b01/InsightData-5.1b01.tar.gz)
- [InsightData-5.1b01.zip](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.1b01/InsightData-5.1b01.zip)

**Checksums**

- [MD5SUMS](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.1b01/MD5SUMS)
- [SHA512SUMS](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.1b01/SHA512SUMS)

Pass NumPy Array's to ITK Image Filters
---------------------------------------

The [Pythonic, functional-like interface](https://discourse.itk.org/t/itk-5-0-beta-1-pythonic-interface/1271) to all ITK image-to-image-filters now directly supports operation on [NumPy array's](https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.html), 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](https://pythonclock.org), Python 2 support and binaries will no longer be available.

clang-format enforced C++ coding style
--------------------------------------

ITK has adopted a [*.clang-format*](https://github.com/InsightSoftwareConsortium/ITK/blob/master/.clang-format) coding style configuration file so a consistent coding style can automatically be applied to C++ code with the [`clang-format`](http://releases.llvm.org/download.html) 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](https://itk.org/ItkSoftwareGuide.pdf), 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)](https://discourse.itk.org/t/itk-5-0-alpha-2-performance/959) 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](https://github.com/InsightSoftwareConsortium/ITK/milestone/11). Try out the current release, and take part in the community discussion at [discourse.itk.org](https://discourse.itk.org). Contribute with pull requests, code reviews, and issue discussions in our [GitHub Organization](https://github.com/InsightSoftwareConsortium).

**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 doxygen config file.
DOC: Remove ITK_FUTURE_LEGACY_REMOVE from documentation
ENH: Disable remote module processing when creating doxygen.
STYLE: Prevent double initialization
DOC: Purge outdated media wiki WikiExamples
BUG: Missed propagation of library dependancies
ENH: Deprecate Neuralnetwork module
Revert "Merge pull request 1039 from samuelgerber/MultithreadPointSetToPointSetMetricv4"
STYLE: Remove deprecated support for ITK_WRAP_PYTHON_LEGACY
DOC: Only warn when Module_NeuralNetworks is selected
ENH: Use consistent project name with module name
COMP: Fix clang-format nesting of empty macros
DOC: Deprecate https://itk.org/Wiki/ITK/Examples content.
DOC: Provide doxygen links for sphinx
DOC: Improve the documentation clarity for NormalizeImage.
DOC: Moved wiki examples to sphinx examples part2
ENH: itkObjectToObjectOptimizerBase Must be explicitly instantiated
COMP: Terminate conditional doxygen sections
DOC: Set class name for StreamingProcessObject doxygen
ENH: Update the DoxygenLayout.xml file
ENH: Update template files for Doxygen.
BUG: Patch submission scripts conflict with doxygen
COMP: Resolve 1000's of alias warnings in 1.8.15
DOC: Moved wiki pages to sphinx examples
BUG: Flawed logic for itkExceptionObject.h guards
STYLE: Use override statements for C++11
STYLE: Prefer c++11 'using' to 'typedef'
COMP: Another work around uninitialized value warnings
ENH: Prefer c++11 'using' to 'typedef' for structs
COMP: Update AnalyzeObjectMapIO remote for ITKv5.0
COMP: Suppress warning about file that is too large
STYLE: Use = default for trivial constructors
STYLE: For loops can have a space before ;
STYLE: Suppress longstanding kwstyle violations
STYLE: Use templated function over macro
ENH: Add LONGLONG & ULONGLONG types
STYLE: Remove unused protected ivar m_MyProduct
COMP: Isolate RAWIO non-templated code in cxx file
PERF: Byteswap only when request != system byte order
STYLE: Suppress longstanding kwstyle violations
STYLE: Define the .clang-format config file
ENH: Add script to assist with running clang-format on topic-branches
ENH: Update C++/C attributes for itk style conformance.
ENH: Add copy of git-clang-format from llvm binaries
ENH: Add cmake configuration for clang-format
ENH: Setup clang-format hooks for pre-commit-style
DOC: Add missing line separator for ingroup ITKCommon
DOC: Fix spelling typo VeriyInput -> VerifyInput
ENH: Refactor to allow ReferenceHistogram instead of ReferenceImage
COMP: Remove One Definition Rule conflict
COMP: Fix missing type specialization for `unsigned long long int`
STYLE: Convert 'enum' to 'enum class' objects with print enum function
ENH: Workaround MSVC preprocessor name conflict
STYLE: Prefer enum class definitions internally
STYLE: Prefer consistent capitalization of Colormap
ENH: Ignore wrapping warnings for `enum class`
BUG: Missing ImageAdapter function signatures
COMP: Change KWStyle to allow reformat to pass.
STYLE: No-space inside <> () []
STYLE: Change the packing of parameters.
STYLE: Use shorter column length for Software Guide.
STYLE: End of history preceeding clang-format-8.0 style
STYLE: Fix spelling error foramt -> format

ITK Maintainer (1):
STYLE: Enforce ITK style defined by .clang-format

James Butler jamesobutler (1):
COMP: Add cmake_minimum_required to ITKNumericsFEM

Jean-Christophe Fillion-Robin jcfr (1):
ENH: Support building ITKNumericsFEM as external module

Jon Haitz Legarreta Gorroño jhlegarreta (4):
STYLE: Fix indentation in bash script
ENH: Add script to update ITK testing macros names
BUG: Fix remotes maintenance scripts
BUG: Fix wrong variable names

Matthew McCormick thewtex (61):
ENH: Bump the ITK CMake version to 5.1.0
ENH: New content links for ITK 5.0.0
STYLE: DeformableRegistration2 line length warnings
COMP: SpatialObjectsHierarchy Software Guide newline
ENH: Bump CI ExternalDataVersion to 5.0.0

5.1.0

We are happy to announce the [Insight Toolkit (ITK)](https://itk.org) 5.1.0 release! :tada: ITK is an open-source, cross-platform toolkit for N-dimensional scientific image processing, segmentation, and registration.

ITK 5.1.0 is a feature release that improves and extends the major ITK 5.0 release. ITK 5.1.0 includes a [NumPy](https://numpy.org) and [Xarray](https://xarray.pydata.org) filter interface, clang-format enforced coding style, enhanced modern C++ range support, strongly-typed enum's, and much more.

A number of issues were addressed based on feedback from Release Candidate 3. Filters avoid extra copies when operating on NumPy arrays, and `itk.Image` is now a NumPy array-like. Remote module CI testing infrastructure has been migrated to GitHub Actions for C++ tests, Python package builds, and automated Python package deployment.


Downloads
---------

**Python Packages**

Install [ITK Python packages](https://itkpythonpackage.readthedocs.io/en/latest/Quick_start_guide.html) with:


pip install --upgrade itk


or:


conda install -c conda-forge itk


**Guide and Textbook**

- [InsightSoftwareGuide-Book1-5.1.0.pdf](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.1.0/InsightSoftwareGuide-Book1-5.1.0.pdf)
- [InsightSoftwareGuide-Book2-5.1.0.pdf](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.1.0/InsightSoftwareGuide-Book2-5.1.0.pdf)

**Library Sources**

- [InsightToolkit-5.1.0.tar.gz](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.1.0/InsightToolkit-5.1.0.tar.gz)
- [InsightToolkit-5.1.0.zip](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.1.0/InsightToolkit-5.1.0.zip)

**Testing Data**

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

- [InsightData-5.1.0.tar.gz](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.1.0/InsightData-5.1.0.tar.gz)
- [InsightData-5.1.0.zip](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.1.0/InsightData-5.1.0.zip)

**Checksums**

- [MD5SUMS](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.1.0/MD5SUMS)
- [SHA512SUMS](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.1.0/SHA512SUMS)



Features
--------

![ITKParabolicMorphology](https://imgur.com/MowNzqL.png)


Parabolic morphological filtering with the [ITKParabolicMorphology](https://github.com/InsightSoftwareConsortium/ITKParabolicMorphology) remote module. To install the new Python package: `pip install itk-parabolicmorphology`. Jupyter notebooks are provided as [examples](https://github.com/InsightSoftwareConsortium/ITKParabolicMorphology/tree/master/examples). For more information, see the [Insight Journal article](http://www.insight-journal.org/browse/publication/228), *Beare R. Morphology with parabolic structuring elements. The Insight Journal. January-June. 2008. http://www.insight-journal.org/browse/publication/228*.

GitHub Actions for ITK Remote Module Testing, Packaging, PyPI Deployment

A [GitHub Action configuration](https://gist.github.com/thewtex/aab3f401b27dfd262e508cf1019853f0) is available for ITK Remote Module continuous integration (CI) testing and Python packaging on Linux, macOS, and Windows. Continuous deployment (CD) is configured to upload packages to the [Python Package Index (PyPI)](https://pypi.org) when the repository is tagged. More information can be found in the [ITK Python Package ReadTheDocs](https://itkpythonpackage.readthedocs.io/en/master/Build_ITK_Module_Python_packages.html#github-automated-ci-package-builds) documentation.

Pass NumPy Array's or Xarray DataArray's to ITK Image Filters


The [Pythonic, functional-like interface](https://discourse.itk.org/t/itk-5-0-beta-1-pythonic-interface/1271) to all ITK image-to-image-filters now directly supports operation on [NumPy ndarray's](https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.html), 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)


An `itk.Image` is now more NumPy array-like: `shape`, `ndim`, and `dtype` attributes are available; these correspond to the values when converted to a NumPy `ndarray`. Basic NumPy functions can be called directly on an `itk.Image`, i.e.,


min = np.min(image)
max = np.max(image)
mean = np.mean(image)


Similar, experimental support (subject to change) is also available for [Xarray DataArray's](https://xarray.pydata.org/en/stable/generated/xarray.DataArray.html). If an `xarray.DataArray` is passed as an input, an `xarray.DataArray` is returned as an output. Moreover, the operation preserves spatial and dimensional metadata. For example,


import xarray as xr
import itk

image = itk.imread('/path/to/image.tif')
da = itk.xarray_from_image(image)
smoothed = itk.median_image_filter(da, radius=3)
print(smoothed)


results in:


<xarray.DataArray (y: 288, x: 894)>
array([[255. , 255. , 255. , ..., 255. , 255. , 255. ],
[ 11.9995, 11.9995, 11.9995, ..., 11.9995, 11.9995, 11.9995],
[ 11.9995, 11.9995, 11.9995, ..., 11.9995, 11.9995, 11.9995],
...,
[ 11.9995, 11.9995, 11.9995, ..., 11.9995, 11.9995, 11.9995],
[ 11.9995, 11.9995, 11.9995, ..., 11.9995, 11.9995, 11.9995],
[ 11.9995, 11.9995, 11.9995, ..., 11.9995, 11.9995, 11.9995]],
dtype=float32)
Coordinates:
* x (x) float64 0.0 1.0 2.0 3.0 4.0 ... 889.0 890.0 891.0 892.0 893.0
* y (y) float64 0.0 1.0 2.0 3.0 4.0 ... 283.0 284.0 285.0 286.0 287.0
Attributes:
direction: [[1. 0.]\n [0. 1.]]



A round trip is possible with `itk.image_from_xarray`.

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](https://pythonclock.org), Python 2 support and binaries are no longer available.

Python Package 64-bit Float Support

In addition to the many other pixel types supported, the `itk` binary Python packages now include support for the `double` pixel type, i.e. 64-bit IEEE floating-point pixels. This improves compatibility with [scikit-image](https://scikit-image.org/), which uses this pixel type as a default.

clang-format Enforced C++ Coding Style

ITK has adopted a [*.clang-format*](https://github.com/InsightSoftwareConsortium/ITK/blob/master/.clang-format) coding style configuration file so a consistent coding style can automatically be applied to C++ code with the [`clang-format`](http://releases.llvm.org/download.html) 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](https://itk.org/ItkSoftwareGuide.pdf), 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.

Enhanced Modern C++ Range Support

In addition to the [`ImageBufferRange`](https://itk.org/Doxygen/html/classitk_1_1Experimental_1_1ImageBufferRange.html), [`ShapedImageNeighborhoodRange`](https://itk.org/Doxygen/html/classitk_1_1Experimental_1_1ShapedImageNeighborhoodRange.html), and [`IndexRange`](https://itk.org/Doxygen/html/classitk_1_1Experimental_1_1IndexRange.html) classes introduced in ITK 5.0, ITK 5.1 adds an [`ImageRegionRange`](https://itk.org/Doxygen/html/classitk_1_1Experimental_1_1ImageRegionRange.html). These range classes conform to the Standard C++ Iterator requirements so they can be used in range-based for loop's and passed to Standard C++ algorithms. Range-based for loops provide an elegant syntax for iteration. Moreover, they are often more performant than other iteration classes available.

For example, to add 42 to every pixel:


ImageBufferRange<ImageType> range{ *image };

for (auto&& pixel : range)
{
pixel = pixel + 42;
}


In ITK 5.1, adoption of the range classes was extended across the toolkit, which demonstrates their use and improves toolkit performance.

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)](https://discourse.itk.org/t/itk-5-0-alpha-2-performance/959) enhancements in ITK 5.

SpatialObject's and Strongly-Typed enum's

Improvements and refinements were made to the ITK 5 `itk::SpatialObject` refactoring, and modern C++ interface. In particular, ITK 5.1 transitions enumerations to [strongly-typed enumerations](https://www.modernescpp.com/index.php/strongly-typed-enums), which is flagged by modern compilers due to improved scoping and implicit conversions to `int`. Enum names now follow a consistent `<Description>Enum` naming conversion, which results in a Python interface:


<Description>Enum_<EnumValue1>
<Description>Enum_<EnumValue2>
[...]


A guide for updating to the new enum's can be found in the [Strongly Typed Enumerations](https://github.com/InsightSoftwareConsortium/ITK/blob/master/Documentation/ITK5MigrationGuide.md#strongly-typed-enumerations) section of the ITK 5 Migration Guide.

DICOM Support

ITK's broadly adopted medical image support is hardened thanks to 20 years of testing and support from major open source DICOM library maintainers. In this release, many members of the community collaborated to further enhance ITK's DICOM support for corner cases related to modality, pixel types, and vendor variations.

Remote Module Updates

New remote module: [TubeTK](https://github.com/InsightSoftwareConsortium/ITKTubeTK): An open-source toolkit, led by Kitware, Inc., for the segmentation, registration, and analysis of tubes and surfaces in images.

A new [remote module grading system](https://discourse.itk.org/t/remote-module-grading-ranking-system-needed/2750) was added to help convey the quality compliance level for the 45 remote modules.

Many remote modules were updated: *AnalyzeObjectMapIO, AnisotropicDiffusionLBR, BSplineGradient, BioCell, BoneEnhancement, BoneMorphometry, Cuberille, FixedPointInverseDisplacementField, GenericLabelInterpolator, HigherOrderAccurateGradient, IOMeshSTL, IOOpenSlide, IOScanco, IOTransformDCMTK, IsotropicWavelets, LabelErodeDilate, LesionSizingToolkit, MinimalPathExtraction, Montage, MorphologicalContourInterpolation, ParabolicMorphology, PhaseSymmetry, RLEImage, RTK, SCIFIO, SimpleITKFilters, SkullStrip, SplitComponents, Strain, SubdivisionQuadEdgeMeshFilter, TextureFeatures, Thickness3D, TotalVariation,* and *TwoProjectionRegistration*.

Zenodo Citation

ITK has a [Zenodo Citation](https://zenodo.org/badge/latestdoi/800928):

[![DOI](https://zenodo.org/badge/800928.svg)](https://zenodo.org/badge/latestdoi/800928)

This citation can be used to cite a specific version of the software. If you have contributed 10 or more patches to ITK, please add your [ORCID iD](https://orcid.org/) to our [.zenodo.json](https://github.com/InsightSoftwareConsortium/ITK/blob/master/.zenodo.json) file for authorship association.

NumFOCUS Copyright Transfer

ITK's copyright and the copyright of software held by the [Insight Software Consortium](https://www.insightsoftwareconsortium.org/) have been transferred to [NumFOCUS](https://numfocus.org/). [CMake](https://cmake.org)'s copyright has been transferred to [Kitware](https://kitware.com).

And More

Many more improvements have been made. For details, see the changelogs for the release candidates and changelog below.

Congratulations

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

Of *73 authors* since v5.0.0, we would like to specially recognize the new contributors:

Mathew J. Seng, Zahil Shanis, yjcchen0913, PA Rodesch, Aurélien Coussat, yinkaola, Bryce Besler, Pierre Chatelier, Rinat Mukhometzianov, Ramraj Chandradevan, Hina Shah, Gordian Kabelitz, Genevieve Buckley, Aaron Bray, nslay, Antoine Robert, James Butler, Matthew Rocklin, Gina Helfrich, and Neslisah Torosdagli, Brad T. Moore, Niklas Johansson, Flavien Bridault, Pradeep Garigipati, haaput, tabish, and Antoine Robert, Ben Wilson, Adam Rankin, PA Rodesch, Tabish Syed, vlibertiaux, Michael Jackson, Conrad Poelman, and muschellij2.


**Enjoy ITK!**

Page 3 of 7

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.