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