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
- Update Doxygen docker script for new Python configuration by @blowekamp in #1989
- Update superbuild version of PCRE2 to 10.42 by @blowekamp in #1996
- Update Superbuild version of GTest to 1.14.0 by @blowekamp in #1995
- Apply clang tidy modernize-concat-nested-namespaces by @blowekamp in #1998
- Tidy modernize avoid bind by @blowekamp in #1994
- Remove end namespace comments by @blowekamp in #2000
- Apply clang tidy modernize-make-unique by @blowekamp in #1999
- Update Elastix with clang-tidy by @blowekamp in #2003
- Restore and depricate MaskImageFilter support for mask input types by @blowekamp in #1993
- Add Nightly Action for coverage by @blowekamp in #2002
- Tweaks to nightly coverage GHA by @blowekamp in #2009
- Use matrix for Nightly GHA by @blowekamp in #2010
- Adding valgrind to nightly matrix by @blowekamp in #2011
- Allow default parrallel ctest execution of tests by @blowekamp in #2007
- Fix undeleted N4 filter in example by @blowekamp in #2012
- Release by @blowekamp in #2015
- DOC: Get CommentSpellCheck from PyPI by @dave3d in #2017
- Add generic interpolator dependency by @blowekamp in #2014
- Add ITK_USE_BUILD_DIR option by @blowekamp in #2016
- Add nightly ITK coverage valgrind job by @blowekamp in #2018
- Add Python 3.12 packaging support by @blowekamp in #2023
- Adjust nightly build timing to prevent issues by @jwj019 in #2026
- Install setuptools by @blowekamp in #2027
- ENH: Fix ITK code coverage nightly build CXX CTest flags by @jhlegarreta in #2025
- Release into master by @blowekamp in #2030
- Downcast transform returned from CenteredTransformInitializer by @blowekamp in #2045
- DOC: DICOM meta-data tags are lower case. by @zivy in #2048
- DOC: Update documentation with Python version support policy. by @zivy in #2033
- Updated github actions versions. by @zivy in #2049
- BUG: Refactor ImageViewer class to fix initialization problem. by @dave3d in #2044
- Add simplex delta docs for amoeba optimizer by @blowekamp in #2056
- Correct sphinx registration transform order by @blowekamp in #2055
- BUG: Example include a DICOM tag number with upper case letter. by @zivy in #2057
- Exclude superbuild directory from coverage by @blowekamp in #2031
- Update PCRE 20 10.43 by @blowekamp in #2059
- Increase the timeout for the ITK coverage build by @blowekamp in #2062
- Format Python files per Black by @blowekamp in #2060
- Add pre-commit for black, yaml and json checks by @blowekamp in #2063
- Precommit large by @blowekamp in #2064
- Add precommit to check executable scripts by @blowekamp in #2066
- Fix typo of internal in doc by @blowekamp in #2067
- Add ThresholdAbove, ThresholdBelow and OutsideValue methods by @blowekamp in #2068
- WIP: Adding script to setup precommit. by @blowekamp in #2069
- Update the GHA macos builds by @blowekamp in #2077
- Update GHA build to use macos-13 by @blowekamp in #2078
- Reduce mininum pre-commit version to 3.5 by @blowekamp in #2079
- Update SWIG tags to have v prefix by @blowekamp in #2080
- Removing duplicate SWIG code R.i by @blowekamp in #2081
- In R, remove overloaded AddCommand method by @blowekamp in #2084
- Update superbuild SWIG to 4.2.1 by @blowekamp in #2058
- Restrict SWIGWORDSIZE64 definition...
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.
v2.2rc4
Announcing the SimpleITK 2.2 Release Candidate 4!
Users and developers are encouraged to test the RC before the final release and report issues, bugs, and any compatibility problems. This is the final RC before the 2.2 final release.
In collaboration with the Elastix team, the addition of SimpleElastix as a compile time option is the highlight of this release. Please download the SimpleITK source and compile with the CMake SimpleITK_USE_ELASTIX option enabled to try out this experimental feature.
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.2rc4
Release Notes
New Features
- Add SimpleITK_USE_ELASTIX as a compile time option for SimpleElastix classes: ElastixImageFilter, TransformixImageFilter. This option is currently disabled by default.
- Update ITK to 5.3rc04
Bug Fixes
- Fix undefined behavior in BasicFilters.Cast test
- Fix GenericException assignment by using shared_ptr internally
- Correct SinRegularizedHeaviside option for ScalarChanAndVeseDenseLevelSetImageFilter
Documentation
- Reformat Python example for flake8
- Improve ImageSeriesReader documentation for method used to determining pixel type.
Compilation
- Update MacOSX version in CI
- Build with SimpleITK_USE_ELASTIX enabled on Github Actions.
v2.2rc3
Announcement
Announcing the SimpleITK 2.2 Release Candidate 3!
Users and developers are encouraged to test the RC before the final release and report issues, bugs, and any compatibility problems. The SimpleITK 2.2.0 final is planned to be published shortly after the next ITK tag, either v5.3rc04 or v5.3.0.
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.2rc3
Anaconda Binary Downloads
Conda packages are available from Anaconda Cloud on the SimpleITK
channel. These can be installed with:
conda install -c simpleitk/label/dev simpleitk
Note that pre-release packages with the "dev" channel may be deleted in the future after the releases are made.
Release Notes
API Changes/Compatibility Changes
- Replace internal typelist meta-programming with typelist2::typelist utilizing variadic template.
New Features
- Update ITK superbuild version to ITK hash ee664da6bb1a83cdf82e2582126e65119a4de1a4.
- Add missing GridImageSource::WhichDimensions method.
Bug Fixes
- On Apple OSX use .dylib extension for C# native library
- Fix setup.py to not load SimpleITK native library.
- Fix Python resample procedure handling of unexpected keyword argument.
Documentation
- Added FAQ entry: Why does my image appear to be empty / all black / blank when visualized?
- Update N4BiasFieldCorrection example to save full corrected image.
Compilation
- Update CircleCI configure
- Various CI maintenance update including updating OS images used and tool versions.
- Add CSharp building and packaging in AZP for Mac OSX.