Releases: SimpleITK/SimpleITK
Release latest
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
- Use SimpleITK_BUILD_DISTRIBUTE in Mac ARM build scrip by @blowekamp in #2180
- Remove CircleCI from readme by @blowekamp in #2179
- Instruct on creating isolated conda-forge ecosystem by @blowekamp in #2182
- Additional clarification on using conda-forge by @blowekamp in #2183
- STYLE: Fixes to the python examples for pylint by @dave3d in #2178
- Update Superbuild GTest to 1.15.2 by @blowekamp in #2185
- Update docs by @zivy in #2181
- Add mac-arm64 to Build.yml by @jwj019 in #2158
- DOC: Fixes for pylint by @dave3d in #2187
Full Changelog: v2.4.0...latest
Release v2.4.0
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
andOutsideValue
methods toThresholdImageFilter
. - 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 newPathType
. - 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
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
- Update SWIG docs string from SimpleITK Doxygen by @blowekamp in #2170
Full Changelog: latest...v2.4rc3
Release v2.4rc2
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
andOutsideValue
methods toThresholdImageFilter
. - 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 newPathType
. - 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
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
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 theLabelImageGenericInterpolateImageFunction
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 exampleimg[img<0] = 0
can be used to remove negative numbers. - In Python, add
MinimumMaximum() -> Tuple[float, float]
procedure forMinimumMaximumImageFilter
. - In Python, add
pathlib.Path
support to Transform IO methods. - Add
Clamp
boolean option to UnsharpMaskFilter. - Add
Image::ToVector
andImage::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
andFastMarchingImageFilter
. - Add
KernelType
parameterRankImageFilter
to support non box kernel shapes. - Wrap
MaskedAssignImageFilter
. - Add
AssignConstant
toMaskedAssignImageFilter
and support for vector input images. - Internally replace
NPasteImageFilter
withPasteImageFilter
. - Add to
N4BiasFieldCorrectionImageFilter
measurements ofCurrentLevel
,ElapsedIterations
, andCurrentConvergenceMeasurement
for observers. - Update
FFTNormalizedCorrelationImageFilter
to use named inputs. - Add missing
RequiredFractionOfOverlappingPixels
parameter toFFTNormalizedCorrelationImageFilter
. - 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
andMaskNegatedImageFilter
to only supportsitkUInt8
pixel types for masked input. This unifies the supported mask image types between these two filters and theMaskedAssignedImageFilter
to match SimpleITK's common conventions for mask images.- For the
MaskImageFilter
it is recommended to update to casting the mask input parameter tositkUInt8
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 ofsitkUInt8
- For the
- 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
forSimilarity3DTransforms
.
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
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
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 ...
v2.2.1
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
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.