SimpleITK 2.4.0 Release

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.
5 Likes