Skip to content

Releases: SimpleITK/SimpleITK

Release latest

14 Sep 08:52
df1d844
Compare
Choose a tag to compare
Release latest Pre-release
Pre-release

This is an automatic pre-release packaging of SimpleITK based on the master branch. It contains the latest features and experimental developments.

To upgrade to the latest pre-release Python binary package run:
pip install --upgrade --pre SimpleITK --find-links https://github.com/SimpleITK/SimpleITK/releases/tag/latest

What's Changed

Full Changelog: v2.4.0...latest

Release v2.4.0

14 Aug 20:24
a3e11cb
Compare
Choose a tag to compare

Announcement

Announcing the SimpleITK 2.4.0 Release!

Installing SimpleITK

Complete instructions on getting started with SimpleITK including downloading binaries or building SimpleITK can be found on the SimpleITK Read the Docs web page.

Python Binary Downloads

  • Python binary wheels are available for download. It is important to have the latest version of pip for correct wheel compatibility and installation. To install the latest SimpleITK package from PyPI:
    python -m pip install --upgrade pip
    python -m pip install SimpleITK
    

Please note that the binary distribution now contains wheels built on the Python 3.11 stable API ( see PEP 384 ). These wheels contain "cp311-abi3" in the filename and should work with Python versions including and after 3.11.

Anaconda Binary Downloads

SimpleITK Conda binaries are available for the conda-forge ecosystem. To get started run the following command:

conda create --name sitk python=3.11 simpleitk --channel conda-forge --override-channels

Getting Started

To get started with pre-compiled Java or C# bindings, building the R binding via a devtools installer or building SimpleITK from source code see the Getting Started Guide.

Release Notes

New Features

  • Updated to ITK 5.4.0 release benefiting from all of the significant improvements in the underlying toolkit.
  • Add SimpleITK_PYTHON_USE_USE_LIMITED_API CMake option.
  • Build SimpleITK packages with limited Python API support for Python >=3.11.
  • Add ThresholdAbove, ThresholdBelow and OutsideValue methods to ThresholdImageFilter.
  • Add to Image readers SpacingWarningRelThreshold accessors.
  • Use new PathType for file paths across toolkit.
  • Improve Python support for pathlib.Path across the toolkit with custom conversion for new PathType.
  • Add Image member functions IsSameImageGeometryAs, IsCongruent.
  • Update Superbuild version of PCRE2 to 10.43
  • Update Superbuild version of GTest to 1.14.0
  • Update Superbuild SWIG to 4.2.1

Behavior Changes

  • CenteredTransformInitializer now returns DowncastedTransform in Python.

Bug Fixes

  • Refactor ImageViewer class to fix initialization problems.
  • Fix MD5 hash for CSharp ImageGetSetBuffer example.
  • Use ITK's SizeGreatestPrimeFactor for FFTPadImageFilter , which is 5 for VNL and 13 for FFTW.

Documentation

  • Correct sphinx registration transform order in Registration Overview.
  • Fix undeleted N4 filter in example.
  • DICOM meta-data tags are lower case.
  • Update documentation with Python version support policy.
  • Add simplex delta documentation for Amoeba optimizer.
  • Include a DICOM tag number with upper case letter in example.
  • Fix math Latex notation for T_opt.
  • Add FAQ entry for non-ASCII paths on windows.
  • Added description of LabelShapeStatisticFilter's bounding box.

Compilation and Infrastructure

  • Use GitHub Actions for packing and CI, removing Azure Pipelines.
  • Fix build dependency on option ITK GenericLabelInterpolator module.
  • Apply clang tidy modernize-concat-nested-namespaces, modernize-avoid-bind, modernize-make-unique.
  • Code improvements for modern C++17.
  • Get CommentSpellCheck from PyPI.
  • Format Python files per Black.
  • Use pre-commit for black, yaml, json checks and other linting.
  • In R, remove overloaded AddCommand method.
  • Restrict SWIGWORDSIZE64 definition to required SWIG versions.
  • Use optional components feature when finding ITK.
  • Directly use fold expression in TypeListHasPixelIDValue.
  • Package Java and CSharp on Linux.
  • Use new CMP0156 to address duplicate library warnings.

Release v2.4rc3

12 Aug 17:26
4dea256
Compare
Choose a tag to compare
Release v2.4rc3 Pre-release
Pre-release

This is SimpleITK 2.4.0 Release Candidate 3.

To upgrade to the latest pre-release Python binary package run:
pip install --upgrade --pre SimpleITK --find-links https://github.com/SimpleITK/SimpleITK/releases/tag/v2.4rc3

What's Changed

Full Changelog: latest...v2.4rc3

Release v2.4rc2

16 Jul 20:44
fd755f2
Compare
Choose a tag to compare
Release v2.4rc2 Pre-release
Pre-release

Announcement

Announcing the SimpleITK 2.4 Release Candidate 2!

This release was made with new infrastructure in Github Actions. Users and developers are encouraged to test the RC before the final release and report issues, bugs, and any compatibility problems.

Installing SimpleITK

Complete instructions on getting started with SimpleITK including downloading binaries or building SimpleITK can be found on the SimpleITK Read the Docs web page.

Python Binary Downloads

  • Python binary wheels are available for download. It is important to have the latest version of pip for correct wheel compatibility and installation. To install the latest SimpleITK package from GitHub releases:
    python -m pip install --upgrade pip
    python -m pip install --pre SimpleITK --find-links https://github.com/SimpleITK/SimpleITK/releases/tag/v2.4rc2
    

Please note that the binary distribution now contains wheels build on the Python 3.11 stable API ( see PEP 384 ). These wheels contain "cp311-abi3" in the filename and should work with Python versions including and after 3.11.

Release Notes

New Features

  • Updated to ITK 5.4.0 release benefiting from all of the significant improvements in the underlying toolkit.
  • Add SimpleITK_PYTHON_USE_USE_LIMITED_API CMake option.
  • Build SimpleITK packages with limited Python API support for Python >=3.11.
  • Add ThresholdAbove, ThresholdBelow and OutsideValue methods to ThresholdImageFilter.
  • Add to Image readers SpacingWarningRelThreshold accessors.
  • Use new PathType for file paths across toolkit.
  • Improve Python support for pathlib.Path across the toolkit with custom conversion for new PathType.
  • Add Image member functions IsSameImageGeometryAs, IsCongruent.
  • Update Superbuild version of PCRE2 to 10.43
  • Update Superbuild version of GTest to 1.14.0
  • Update Superbuild SWIG to 4.2.1

Behavior Changes

  • CenteredTransformInitializer now returns DowncastedTransform in Python.

Bug Fixes

  • Refactor ImageViewer class to fix initialization problems.
  • Fix MD5 hash for CSharp ImageGetSetBuffer example.
  • Use ITK's SizeGreatestPrimeFactor for FFTPadImageFilter , which is 5 for VNL and 13 for FFTW.

Documentation

  • Correct sphinx registration transform order in Registration Overview.
  • Fix undeleted N4 filter in example.
  • DICOM meta-data tags are lower case.
  • Update documentation with Python version support policy.
  • Add simplex delta documentation for Amoeba optimizer.
  • Include a DICOM tag number with upper case letter in example.
  • Fix math Latex notation for T_opt.
  • Add FAQ entry for non-ASCII paths on windows.
  • Added description of LabelShapeStatisticFilter's bounding box.

Compilation and Infrastructure

  • Use GitHub Actions for packing and CI, removing Azure Pipelines.
  • Fix build dependency on option ITK GenericLabelInterpolator module.
  • Apply clang tidy modernize-concat-nested-namespaces, modernize-avoid-bind, modernize-make-unique.
  • Code improvements for modern C++17.
  • Get CommentSpellCheck from PyPI.
  • Format Python files per Black.
  • Use pre-commit for black, yaml, json checks and other linting.
  • In R, remove overloaded AddCommand method.
  • Restrict SWIGWORDSIZE64 definition to required SWIG versions.
  • Use optional components feature when finding ITK.
  • Directly use fold expression in TypeListHasPixelIDValue.
  • Package Java and CSharp on Linux.
  • Use new CMP0156 to address duplicate library warnings.

v2.3.1

02 Nov 13:27
Compare
Choose a tag to compare

Announcement

Announcing the SimpleITK 2.3.1 Release!

The release includes fixes to behavior regression, compilation issues, and support for Python 3.12.

Change Log

42ce27d Bump patch version to 2.3.1
da78080 Explicitly install setuptools in environment
ad198eb Add Python 3.12 packaging support
0ca94ef Address missing Generic Label Interpolator
27112d2 Fix undeleted N4 filter in example
0b0a492 Use reusable MockLogger to capture warning messages
72ee8bf Restore and depricate MaskImageFilter support for mask input types

v2.3.0

14 Sep 00:04
277b7b7
Compare
Choose a tag to compare

Announcement

Announcing the SimpleITK 2.3.0 Release!

The release includes new features, behavior changes, documentation updates and bug fixes.

Installing SimpleITK

Complete instructions on getting started with SimpleITK including downloading binaries or building SimpleITK can be found on the SimpleITK Read the Docs web page.

Python Binary Downloads

Python binary wheels are available for download from PyPI. It is important to have the latest version of pip for correct wheel compatibility and installation. To install the latest SimpleITK package:

python -m pip install --upgrade pip
python -m pip install SimpleITK

Anaconda Binary Downloads

The packages are available on conda-forge with dependecies on the ecosystem:

conda install --channel conda-forge simpleitk

Starting with SimpleITK 2.3.0, binary packages will no longer be available in the "simpleitk" anaconda channel. Older versions continue to be available in that channel.

Contributors

Thank you to all contributors to SimpleITK and ITK. The new contributors to SimpleITK include @mbopfNIH @kaspermarstal @umasehs @caolonghao @wbzyl.

Release Notes

New Features

  • Added sitkLabelLinear interpolator for multi-label images. The implementation is the LabelImageGenericInterpolateImageFunction class from GenericLabelInterpolator ITK remote module. ( Contributed by @dyollb )
  • In Python, add support for masked images to __setitem__ as index parameter. The mask is considered a binary mask where assignment occurs. For example img[img<0] = 0 can be used to remove negative numbers.
  • In Python, add MinimumMaximum() -> Tuple[float, float] procedure for MinimumMaximumImageFilter.
  • In Python, add pathlib.Path support to Transform IO methods.
  • Add Clamp boolean option to UnsharpMaskFilter.
  • Add Image::ToVector and Image::ToScalar methods to perform fast in-place conversion between vector pixel types (VectorImage), and high spatial dimension scalar images.
  • Add initial seed values to FastMarchingBaseImageFilter and FastMarchingImageFilter.
  • Add KernelType parameter RankImageFilter to support non box kernel shapes.
  • Wrap MaskedAssignImageFilter.
  • Add AssignConstant to MaskedAssignImageFilter and support for vector input images.
  • Internally replace NPasteImageFilter with PasteImageFilter.
  • Add to N4BiasFieldCorrectionImageFilter measurements of CurrentLevel, ElapsedIterations, and CurrentConvergenceMeasurement for observers.
  • Update FFTNormalizedCorrelationImageFilter to use named inputs.
  • Add missing RequiredFractionOfOverlappingPixels parameter to FFTNormalizedCorrelationImageFilter.
  • Various improvements to SimpleElastix integration and support.

Behavior Changes

  • Change to CMake FindPython module for configuration of the python build environment. CMake configuration variable such as "PYTHON_EXECUTABLE" are now changed to "Python_EXECUTABLE". Additionally, the new CMake module uses "modern" logic for detecting which python executable to use, and the "Python_EXECUTABLE" CMake variable may need to be set to ensure the correct python environment is used.
  • Change MaskImageFilter and MaskNegatedImageFilter to only support sitkUInt8 pixel types for masked input. This unifies the supported mask image types between these two filters and the MaskedAssignedImageFilter to match SimpleITK's common conventions for mask images.
    • For the MaskImageFilter it is recommended to update to casting the mask input parameter to sitkUInt8 pixel type. This is compatible with versions before SimpleITK 2.0.
    • The MaskNegatedImageFilter old behavior erroneously expected both inputs to be of the same type. The new behavior expects the inputs to be of sitkUInt8
  • Removed Python 3.7 packaging.
  • Restore functions for static members like ImageSeriesReader_GetGDCMSeriesIDs (restores 2.2 behavior).
    SWIG 4.1.0 changed behavior to removing flattened static methods for objects. The compatible behavior can be restored by adding -flatstaticmethod argument to SWIG. The SimpleITK_PYTHON_FLATSTATICMETHOD CMake variable has been added to control the usage of this flag. It is currently enabled by default and is planned to default to OFF in future releases.

Bug Fixes

  • Fix already defined GTest::Main issue with using ITK out of a build tree.
  • Add an internal "Proxy" image to safely support exceptions with certain in place operations in C++ and Python.
  • Fix FastMarchingUpwindGradientImageFilter setting target point before setting stopping criteria.
  • Test support of LandmarkBasedInitialization for Similarity3DTransforms.

Documentation

  • Added to Sphinx generated documentation images and text output such as in Fast Marching Segmentation and Image Registration Method1 examples.
  • Fixed bug in example, working with DICOM tags.
  • Update JSON docs form ITK XML
  • Document specifying pixel type as part of reading.
  • Add information on dependency between GetGDCMSeriesIDs and GetGDCMSeriesFileNames.
  • In DicomTagsExample, included example run of DicomImagePrintTags code in the Sphinx docs.
  • Fix time date ordering in string in DicomSeriesFromArray.R example.

Compilation

  • Require C++17 for building SimpleITK.
  • Update GTest Superbuild version to 1.13.0
  • Update Swig Superbuild version to 4.1.1
  • Various C++17 modernization in testing include more usage of initializer lists, and namespaces.
  • Change PimpleImageBase to return unique_ptr over raw.
  • Address unused return value in image transform point methods and in transform tests.
  • Use unique_ptr for Transform interface.
  • Remove references to legacy SITK_4D_IMAGES definition.
  • Enable ITK_LEGACY_REMOVE by default in SuperBuild.
  • Update ITK enum to remove legacy enums type.
  • Update to CSharp DotNet version 4 by default.
  • Update SimpleITK Superbuild Lua to 5.4.4 and enable usage of Lua 5.4.
  • Remove disutils and setupegg.py from Python packaging fallback.
  • Add pyproject.toml to address wheel dependency warning.
  • Add baseline images for LaplacianSharpening to update for ITK v5.4 changes.
  • Update SuperBuild Lua version to 5.4.6.
  • Many continuous integration improvements.

v2.3rc2

03 Aug 17:15
9fd4df9
Compare
Choose a tag to compare
v2.3rc2 Pre-release
Pre-release

Announcement

Announcing the SimpleITK 2.3 Release Candidate 2!

This is expected to be the final RC before the 2.3.0 release. Users and developers are encouraged to test the RC before the final release and report issues, bugs, and any compatibility problems.

Installing SimpleITK

Complete instructions on getting started with SimpleITK including downloading binaries or building SimpleITK can be found on the SimpleITK Read the Docs web page.

Python Binary Downloads

  • Python binary wheels are available for download. It is important to have the latest version of pip for correct wheel compatibility and installation. To install the latest SimpleITK package from GitHub releases:
    python -m pip install --upgrade pip
    python -m pip install --pre SimpleITK --find-links https://github.com/SimpleITK/SimpleITK/releases/tag/v2.3rc2
    

Release Notes

Behavior Changes

  • Removed Python 3.7 packaging.

  • Restore functions for static members like ImageSeriesReader_GetGDCMSeriesIDs (restores 2.2 behavior).

    SWIG 4.1.0 change behavior to removing flattened static methods for objects. The compatible behavior can be restored by adding -flatstaticmethod argument to SWIG. The SimpleITK_PYTHON_FLATSTATICMETHOD CMake variable has been added to control the usage of this flag. It is currently enabled by default and is planned to default to OFF in future releases.

Compilation

  • Add baseline images for LaplacianSharpening to update for ITK v5.4 changes.
  • Update Superbuild Lua version to 5.4.6
  • Additional CI changes.

v2.3rc1

10 Jul 14:46
2e91a49
Compare
Choose a tag to compare
v2.3rc1 Pre-release
Pre-release

Announcement

Announcing the SimpleITK 2.3 Release Candidate 1!

Users and developers are encouraged to test the RC before the final release and report issues, bugs, and any compatibility problems.

Installing SimpleITK

Complete instructions on getting started with SimpleITK including downloading binaries or building SimpleITK can be found on the SimpleITK Read the Docs web page.

Python Binary Downloads

  • Python binary wheels are available for download. It is important to have the latest version of pip for correct wheel compatibility and installation. To install the latest SimpleITK package from GitHub releases:
    python -m pip install --upgrade pip
    python -m pip install --pre SimpleITK --find-links https://github.com/SimpleITK/SimpleITK/releases/tag/v2.3rc1
    

Release Notes

New Features

In Python, add support for masked images to __setitem__ as index parameter. The mask is considered a binary mask where assignment occurs. For example img[img<0] = 0 can be used to remove negative numbers.
In Python, add MinimumMaximum() -> Tuple[float, float] procedure for MinimumMaximumImageFilter.
In Python, add pathlib.Path support to Transform IO methods.

Add Clamp boolean option to UnsharpMaskFilter.
Add Image::ToVector and Image::ToScalar methods to perform fast in-place conversion between vector pixel types (VectorImage), and high spatial dimension scalar images.
Add initial seed values to FastMarchingBaseImageFilter and FastMarchingImageFilter.
Add KernelType parameter RankImageFilter to support non box kernel shapes.
Wrap MaskedAssignImageFilter.
Add AssignConstant to MaskedAssignImageFilter and support for vector input images.
Internally replace NPasteImageFilter with PasteImageFilter.
Add to N4BiasFieldCorrectionImageFilter measurements of CurrentLevel, ElapsedIterations, and CurrentConvergenceMeasurement for observers.
Update FFTNormalizedCorrelationImageFilter to use named inputs.
Add missing RequiredFractionOfOverlappingPixels parameter to FFTNormalizedCorrelationImageFilter.
Various improvements to SimpleElastix integration and support.

Behavior Changes

Change MaskImageFilter and MaskNegatedImageFilter to only support sitkUInt8` pixel types for masked input. Previously, the ...

Read more

v2.2.1

07 Dec 14:25
Compare
Choose a tag to compare

Release Notes

SimpleITK 2.2.1 has been released!

The patch release includes bug fixes, and updates.

Installing SimpleITK

Complete instructions on getting started with SimpleITK including downloading binaries or building SimpleITK can be found on the SimpleITK Read the Docs web page.

Python Binary Downloads

Python binary wheels are available for download from PyPI. It is important to have the latest version of pip for correct wheel compatibility and installation. To install the latest SimpleITK package:

python -m pip install --upgrade pip
python -m pip install SimpleITK

Anaconda Binary Downloads

SimpleITK packages are available for the conda Python package manager as a monolithic package:

conda install -c simpleitk simpleitk

The packages are also on conda-forge with dependecies on the ecosystem:

conda install --channel conda-forge simpleitk

Release Notes

New Features

Update ITK to 5.3.0 tagged release.
Add Python 3.11 binary packages.
Update LabelOverlapMeasures with ITK 5.3 changes: existing computation for FalsePositiveError was renamed to
FalseDiscoveryRate, and the computation for FPE corrected.

Bug Fixes

Fix segmentation fault with exception in inplace operators, caused by invalid images after C++ move.
Fix viewer test to use system python executable.
Fix duplicate GTest CMake configuration from ITK
Support CMake DOWNLOAD_EXTRACT_TIMESTAMP option for correct SWIG and PCRE file timestamps.
Fix numpy character dtype conversion warning.
Fix error with itk::LabelOverlapMeasuresImageFilter::SetInput.

Compilation and CI

Update Github actions to fix warning.
Fix CircleCI Python 3.8 builds.

v2.2.0

30 Aug 13:01
4310bf5
Compare
Choose a tag to compare

Announcement

SimpleITK 2.2.0 has been released!

The release includes new features, API changes, documentation updates and bug fixes.

A highlight of this release is the addition of SimpleElastix as a compile time option in SimpleITK.

Installing SimpleITK

Complete instructions on getting started with SimpleITK including downloading binaries or building SimpleITK can be found on the SimpleITK Read the Docs web page.

Python Binary Downloads

Python binary wheels are available for download from PyPI. It is important to have the latest version of pip for correct wheel compatibility and installation. To install the latest SimpleITK package:

python -m pip install --upgrade pip
python -m pip install SimpleITK

Linux aarch64 Support

Included in this release are "manylinux2014_aarch64" wheels to provide support for the ARMv8-A (aarch64) on Linux.

Anaconda Binary Downloads

SimpleITK packages are available for the conda Python package manager as a monolithic package:

conda install -c simpleitk simpleitk

Release Notes

Compatibility Changes

  • The string value of sitkBSpline changed to "sitkBSpline3".
  • Update to CMake 3.16.3 requirements.
  • SimpleITK libraries now require C++14
  • Require SimpleITK_INT64_PIXELIDS for 64-bit builds.
  • The Python ReadTransform method now returns a downcasted transform.
  • Replace internal typelist meta-programming with typelist2::typelist utilizing variadic templates.

New Features

  • Add SimpleITK_USE_ELASTIX as a compile time option to incorporate SimpleElastix classes: ElastixImageFilter, TransformixImageFilter into the SimpleITK binary. By default, this option is disabled and the classes are not available in the SimpleITK binary distributions. To make these classes available you will need to build SimpleITK from its source code with the option turned on.
  • Add wrapping of TransformGeometryImageFilter.
  • Add EvaluateAtPhysicalPoint and EvaluateAtContinuousIndex methods to Image class.
  • Improve Python GetImageFromArray performance.
  • Add different orders for the BSpline interpolator.
  • Downcast returned Transform objects to concrete class in Python.
  • Add VectorDistanceMap results to Danielsson distance filters.
  • Support max dimension in "projection" filters.
  • Improved Python packaging type information (PEP 561).
  • Improved types for manual Python procedural methods: Resample, GetArrayFromImage, GetImageFromArray, GetArrayViewFromImage, ReadImage, WriteImage, SmoothingRecursiveGaussian, DiscreteGaussian.
  • Add missing GridImageSource::WhichDimensions method.
  • Update ITK to 5.3rc04.

Bug Fixes

  • Fix unknown enum for smoothing DisplacementFieldTransforms.
  • Change expected number of iterations for LBFGS2 test due to ITK changes.
  • Additional baseline test image for AArch64/ARM64 systems.
  • Fix test failure when system has more than 127 processors.
  • Remove failing test with 32-bit pixel and JPEG file.
  • On Apple OSX use .dylib extension for C# native library.
  • Fix setup.py to not loading SimpleITK native library.
  • Fix Python resample procedure handling of unexpected keyword argument.
  • Fix undefined test behavior expected in BasicFilters.Cast test.
  • Fix GenericException assignment by using shared_ptr internally.
  • Correct SinRegularizedHeviside option for ScalarChanAndVeseDenseLevelSetImageFilter.

Documentation

  • Add CSharp DicomSeriesReader example.
  • Add section about the missing SimpleITK DLL in CSharp.
  • Improve Doxygen documentation rendering with updated packages and improved efficiency of updates.
  • Add C++ and C# versions of N4 bias example.
  • Add favicon to Sphinx docs.
  • Update ImageGetSetBuffer.cs example.
  • Doc page for the path length issue for Windows.
  • Add documentation on registration reproducibility.
  • Added FAQ entry: Why does my image appear to be empty / all black / blank when visualized?
  • Update N4BiasFieldCorrection example to save full corrected image.
  • Reformat Python example for flake8.
  • Improve ImageSeriesReader documentation for determining pixel type.

Compilation and CI

  • Update superbuild version PCRE to 8.45.
  • Update superbuild googletest version to 1.11.
  • Add dockerfile to build manylinux2014 on AZP for packaging.
  • Fix unused type alias warning.
  • Make CreateInterpolator methods with hidden linkage.
  • Remove Nightly Doxygen on CircleCI.
  • Merge Lint and Spell workflows.
  • Address clang lambda capture warning.
  • AZP Packaging use macos-10.15.
  • Remove old manylinux1 builds.
  • Dockerfile to build on linux-aarch64.
  • Update CircleCI configuration.
  • Various CI maintenance update including updating OS images used and tool versions.
  • Add CSharp building and packaging in AZP for Mac OSX.
  • Update MacOSX version.
  • Build with SimpleITK_USE_ELASTIX on Github Actions.