SimpleITK Versions Save

SimpleITK: a layer built on top of the Insight Toolkit (ITK), intended to simplify and facilitate ITK's use in rapid prototyping, education and interpreted languages.

v2.2rc2

2 years ago

Announcement

Tagged on 2/2/2022 we are happy to announce SimpleITK 2.2 Release Candidate 2!

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.2rc2

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

Release Notes

Compatibility Changes

Require SimpleITK_INT64_PIXELIDS for 64-bit builds. The Python ReadTransform method now returns a downcasted transform.

New Features

Update to ITK v5.3rc3 Improved Python packaging type information (PEP 561). Improved types for manual Python procedural methods: Resample, GetArrayFromImage, GetImageFromArray, GetArrayViewFromImage, ReadImage, WriteImage, SmoothingRecursiveGaussian, DiscreteGaussian.

Bug Fixes

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.

v2.2rc1

2 years ago

Announcement

Announcing the SimpleITK 2.2 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.2rc1

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

Linux aarch64 wheels

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

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

New Features

  • Add wrapping of TransformGeometryImageFilter
  • Improve Python GetImageFromArray performance
  • Add different orders for the BSpline interpolator
  • Add Python 3.10 binaries
  • Add methods to the Image class, EvaluateAtPhysicalPoint and EvaluateAtContinuousIndex
  • Add Python interface for Image's EvaluateAt methods
  • Update ITK version to after 5.3rc02
  • Downcast returned Transform objects to concrete class in Python
  • Add VectorDistanceMap results to Danielsson distance filters
  • Support max dimension in "projection" filters.

Bug Fixes

  • Fix unknown enum for smoothing DisplacementFieldTransforms
  • Change expected number of iterations for LBFGS2 test due to ITK changes

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.

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

v2.1.1

2 years ago

Announcement

SimpleITK 2.1.1 has been released!

The patch release Updates the ITK version to 5.2.1.

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 conda Python package manager as a monolithic package:

conda install -c simpleitk simpleitk

or integrated into the coda-forge package dependencies:

 conda install simpleitk --channel conda-forge

Improvements

  • Update ITK superbuild version to v5.2.1.

v2.1.0

2 years ago

Announcement

SimpleITK 2.1.0 has been released!

The release includes new features, API changes, documentation updates and bug fixes. This is the first SimpleITK release to provide binaries for the new Apple M1 ARM.

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

Apple M1 ARMv8 Support

Wheels with the platform tag "macxos-11_0_arm64" are available from PyPI, to provide initial support for the Apple M1 Silicon for Python 3.8 and 3.9.

Anaconda Binary Downloads

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

conda install -c simpleitk simpleitk

or integrated into the coda-forge package dependencies:

 conda install simpleitk --channel conda-forge

Release Notes

API Changes

  • Add Image::getBufferAsByteBuffer to Java interface, returns a type specific instance of java.nio.Buffer.
  • In Java add GetBufferAsNativePointer to Image class.
  • Add Image::GetSizeOfPixelComponent method.
  • Add N4BiasFieldCorrectionImageFilter::GetLogBiasFieldAsImage method.
  • Ignore constant Image::GetBufferAs... methods, in wrapped languages.

New Features

  • Update ITK superbuild version to v5.2.0.
  • Add new ComposeScaleSkewVersor3DTransform class.
  • In Python, add support for ellipsis ("...") indexing to the Image class.
  • In Python, add class dictionary like interface for the Image's meta-data dictionary. This includes implementations for __delitem__, __contains__, and __getitem__ with a string parameter.
  • Updating style in examples using modern Python, moving from 2.7 to 3.6+.
  • Add 4D ( and higher ) support for PermuteImageFilter.
  • New LoggerBase and ITKLogger classes to interface and override ITK's output messages.
  • Add output pixel type parameter to ShiftScaleImageFilter, to support arbitrary type conversion with intensity scaling.
  • Add sitkUInt8 mask image support to MaskNegatedImageFilter
  • Enable the ITKIOTransformMINC module for xfm transform files
  • Add ImageRegistrationMethod::StopRegistration method
  • Add StopRegistration method to Demons based registration filters
  • Update HistogramMatchingImageFilter to use named "referenceImage" input for second input image.

Bug Fixes

  • Set the default ITK multi-threader to "Platform" in Superbuild. This addressed issues with multi-processing and the Google Colaboratory environment.
  • Update expected results for Linux ppc64le in test ImageRegistrationMethodDisplacement1 and SLICImageFilter.
  • The GetPixelAsComplexFloat64 Image method in Python is correctly renamed to __GetPixelAsComplexFloat64__.
  • R calls to nonexistent methods are now handled gracefully
  • In BinaryMagnitudeImageFilter test, changed type from UInt32 to Int32 for defined C++ behavior, fixed Mac ARM testing failure.

Documentation

  • Add TCL, Ruby, Lua, R, Java, and C# languages for the Image and Transform IO example and documentation.
  • Add "Image Registration Optimizer Weights" example illustrating usage of optimizer weights.
  • Document details on naming conventions and object oriented, procedural interfaces.
  • Document importance of registration initialization and center of rotation docs.
  • Document ComposeScaleSkewVersorTransform in Sphinx overviews.
  • Fix broken link in filters list.
  • Add "IO Selection" examples for CSharp, C++, Java, Lua, Ruby and TCL.
  • Add example illustrating how to override ITK's messages with Python's logging module.
  • Separate the GetPixel example into dynamic and statically typed languages.
  • Update N4 example to use bias field at input resolution
  • Update ImageViewer::SetApplication docs.* Minor grammar and spelling changes to gettingStarted
  • Improve documentation for registration sampling strategies
  • Add example demonstration Java Image buffer interface
  • Add multiple language examples for ImageIOSelection
  • Added a Windows build page

Compilation

  • CMake use "Ruby" find package. The CMake variable related to Ruby changed from "RUBY" prefix to "Ruby".
  • Add test to echo CMakeCache.txt
  • Replace virtualenv with venv
  • Install wheel package to venv for packaging
  • Use STEP_TARGETS option over EP Add_Step_Targets command
  • Suppress MSVC getenv security warning.
  • Set CMake Policy version to 3.10 in Superbuild
  • Run HelloWorld examples when testing
  • Fix comparison between signed and unsigned integer compiler warning
  • Remove explicit instantiating of Image of deque of LabelObjectLine
  • Update SWIG to 4 require in CMake find_package

v2.1rc2

2 years ago

Announcement

Announcing the SimpleITK 2.1 Release Candidate 2!

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.1rc2

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

Release Notes

New Features

  • Add ImageRegistrationMethod::StopRegistration method
  • Add StopRegistration method to Demons based registration filters
  • Update HistogramMatchingImageFilter to use named "referenceImage" input for second input image.

Bug Fixes

  • R calls to nonexistent methods are now handled gracefully
  • In BinaryMagnitudeImageFilter test, changed type from UInt32 to Int32 for defined C++ behavior, fixed Mac ARM testing failure.

Documentation

Compilation

  • Fix comparison between signed and unsigned integer compiler warning
  • Remove explicit instantiating of Image of deque of LabelObjectLine
  • Update SWIG to 4 require in CMake find_package

v2.1rc1

3 years ago

Announcement

Announcing the SimpleITK 2.1 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.1rc1

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

Apple M1 ARM Support

SimpleITK v2.1rc1 has been successfully compiled and tested on Apple OS X running native M1 ARM. Thanks to the ITK development team for providing the foundation.

For the v2.1 .0 final release, we are currently only planning to release M1 ARM binaries for the conda-forge distribution.

Release Notes

API Changes

  • Add Image::getBufferAsByteBuffer to Java interface, returns a type specific instance of java.nio.Buffer.
  • In Java add GetBufferAsNativePointer to Image class.
  • Add Image::GetSizeOfPixelComponent method.
  • Add N4BiasFieldCorrectionImageFilter::GetLogBiasFieldAsImage method.
  • Ignore constant Image::GetBufferAs... methods, in wrapped languages.

New Features

  • Update ITK superbuild version to v5.2.0.
  • Add new ComposeScaleSkewVersor3DTransform class.
  • In Python, add support for ellipsis ("...") indexing to the Image class.
  • In Python, add class dictionary like interface for the Image's meta-data dictionary. This includes implementations for __delitem__, __contains__, and __getitem__ with a string parameter.
  • Updating style in examples using modern Python, moving from 2.7 to 3.6+.
  • Add 4D ( and higher ) support for PermuteImageFilter.
  • New LoggerBase and ITKLogger classes to interface and override ITK's output messages.
  • Add output pixel type parameter to ShiftScaleImageFilter, to support arbitrary type conversion with intensity scaling.
  • Add sitkUInt8 mask image support to MaskNegatedImageFilter
  • Enable the ITKIOTransformMINC module for xfm transform files

Bug Fixes

  • Set the default ITK multi-threader to "Platform" in Superbuild. This addresssed issues with multi-processing and the Google Colaborratory environment.
  • Update expected results for Linux ppc64le in test ImageRegistrationMethodDisplacement1 and SLICImageFilter.
  • The GetPixelAsComplexFloat64 Image method in Python is correctly renamed to __GetPixelAsComplexFloat64__.

Documentation

  • Add TCL, Ruby, Lua, R, Java, and C# languages for the Image and Transform IO example and documentation.
  • Add "Image Registration Optimizer Weights" example illustrating usage of optimizer weights.
  • Document details on naming conventions and object oriented, procedural interfaces.
  • Document importance of registration initialization and center of rotation docs.
  • Document ComposeScaleSkewVersorTransform in Sphinx overviews.
  • Fix broken link in filters list.
  • Add "IO Selection" examples for CSharp, C++, Java, Lua, Ruby and TCL.
  • Add example illustrating how to override ITK's messages with Python's logging module.
  • Separate the GetPixel example into dynamic and statically typed languages.
  • Update N4 example to use bias field at input resolution
  • Update ImageViewer::SetApplication docs.

Compilation

  • CMake use "Ruby" find package. The CMake variable related to Ruby changed from "RUBY" prefix to "Ruby".
  • Add test to echo CMakeCache.txt
  • Replace virtualenv with venv
  • Install wheel package to venv for packaging
  • Use STEP_TARGETS option over EP Add_Step_Targets command
  • Suppress MSVC getenv security warning.
  • Set CMake Policy version to 3.10 in Superbuild
  • Run HelloWorld examples when testing

v2.0.2

3 years ago

Announcement

SimpleITK 2.0.2 has been released! The release provides minor patches for the 2.0 release to address bugs.

Additionally Python 3.9 is supported and "manylinux2010" wheels are provided. This addresses interoperability with other "manylinux2010" wheels reported in some environments [#1252].

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

Conda packages are available from Anaconda Cloud on the SimpleITK channel. These can be installed with:

conda install -c simple simpleitk

To learn more about SimpleITK go to simpleitk.org.

Bug Fixes

  • Fix return type for C# to IntPtr for Image::GetBufferAsVoid, Image::GetBufferAsUInt64 and Image::GetBufferAsInt64 methods.
  • Updated ITK to version 5.1.2
  • Added Python 3.9 and manylinux2010 wheels with build scripts from 0da8a2.

v2.0.1

3 years ago

Announcement

SimpleITK 2.0.1 has been released! The release provides minor patches for the 2.0 release to address bugs.

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

Conda packages are available from Anaconda Cloud on the SimpleITK channel. These can be installed with:

conda install -c simple simpleitk

To learn more about SimpleITK go to simpleitk.org.

Bug Fixes

  • Update ITK version along 5.1 release branch
  • Fix SignedMaurerDistanceMap divide by zero error (#1213)
  • Fix Python packaging description field content type (#1202)
  • Fix symbol conflict with importing tensorflow (#1208, #1192)

v2.0.0

3 years ago

Announcement

SimpleITK 2.0 has been released! This major version update to SimpleITK includes updating to ITK version 5, significant code improvements, performance enhancements, and API changes.

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

Conda packages are available from Anaconda Cloud on the SimpleITK channel. These can be installed with:

conda install -c simple simpleitk

2.0 Documentation

To learn more about SimpleITK go to simpleitk.org.

Highlights

  • Now using ITK version 5.1 with all the new improvements from ITKv5!
  • 5D Image support for improved support of time series, and multi-channel images commonly used in microscopy.
    • The default and distributed configurations now support image dimensions from 2 to 5 dimensions. The following filters are also instantiated in 4 and 5 dimensions: ExtractImageFilter, JoinSeriesImageFilter, PasteImageFilter, HashImageFilter, ImageFileReader, ImageFileWriter, ImageSeriesWriter.
  • Python's Image class has improved set item for assignment operations with a slice indexed sub-region on the left hand side. Also assignment of a constant value to a sub-region is supported.
  • Python pickling of Image and Transform classes. Please note this is designed for operations such as interprocess communications; the standard ITK IO formats should be used as portable storage formats.
  • The Show procedure calls the ImageViewer class interface which utilizes the class's defaults and configuration.
  • Modernization of C++ code base with C++11, and clang tidy
  • In C++, temporary images or Rvalue References as arguments automatically enable filters to execute "in-place".
    • Please see the In Place example for details.

Release Notes

API and Compatibility Changes

  • The environment variables related to the Show procedure are only checked once. The Show method now is a wrapper for the ImageViewer class, and the behavior changed. The SITK_SHOW_EXTENSION and SITK_SHOW_COMMAND environment variables if defined initialize the corresponding global defaults only the first time accessed. The environment variables SITK_COLOR_COMMAND and SITK_SHOW_3D_COMMAND are removed as the ImageViewer class allows for direct configuration of the command.

  • Remove from all filters the Execute method with filter parameters as arguments. The Execute method with the input images remains.

  • Remove AddTrialPoints and ClearTrialPoints methods from FastMarchingImageFilter due to consolidation of code generation templates.

  • With Java wrapped Vector types whose C++ element type is an unsigned integer, the wrapped element type changed to the next larger Java signed integer type ( see 618d89 ).

  • Removed procedural methods taking scalar radius from the following ( see 444f9a ):

    • BinaryClosingByReconstruction
    • BinaryDilate
    • BinaryErode
    • BinaryMorphologicalClosing
    • BinaryMorphologicalOpening
    • BinaryOpeningByReconstruction
    • BlackTopHat
    • ClosingByReconstruction
    • DilateObjectMorphology
    • ErodeObjectMorphology
    • GrayscaleDilate
    • GrayscaleErode
    • GrayscaleMorphologicalClosing
    • GrayscaleMorphologicalOpening
    • MorphologicalGradient
    • OpeningByReconstruction
    • WhiteTopHat
  • Dropped Python 3.4 support due to end of life.

  • Remove the sitk::ImageFilter template parameter because it is no longer utilized.

  • The Python installation command using setup.py changed with the location of setup.py. To install see updated Sphinx documentation.

  • Remove Transform::AddTransform and Transform::FlattenTransform methods. Use the CompositeTransform class.

New Features

  • Rewrote Show to use ImageViewer class.

  • For ImageViewer add user's Application folder to search path.

  • Use NPasteImageFilter from the SimpleITKFilters remote ITK module to replace PasteImageFilter.

  • Add to SimpleITK's PasteImageFilter:

    • DestinationSkipAxes parameter
    • Support for pasting lower dimension to higher dimension image e.g 2D slice into 3D volume
    • Ability to use a constant value as input instead of image
  • Add method to ImageFileReader::GetImageIOFromFileName get the ITK ImageIO automatically used for file.

  • Update superbuild Swig version to 4.0.2. SWIG >= 4 is now required.

  • Update ITK version to 5.1.1.

  • Disable ITK 4 legacy behaviors.

  • Add SignedDanielssonDistanceMapImageFilter::GetVoronoiMap method.

  • Add wrapping for CannySegmentationLevelSetImageFilter.

  • Update levelset segmentation filters to support named inputs.

  • Add 4D support toSliceImageFilter and to the Python slice indexing.

  • Add complex pixel support to Image::GetBufferAs... methods.

  • Add wrapping for BinaryPruningImageFilter.

  • Add per label measurements to LabelOverlapMeasuresImageFilter.

  • ResampleImageFilter add option to use nearest neighbor extrapolation.

  • Add ReturnBinMidPoint parameter to OtsuThresholdImageFilter. Defaults to false which may change results.

  • Add support to specify compression level and compression algorithm to ImageFileWriter and ImageSeriesWriter classes.

  • BSplineTransform Python support construction and SetCoefficientImage with list-like series of Images.

  • MeanImageFilter directly filters vector images, improving performance.

  • Add to LabelShapeStatisticsImageFilter per label method GetIndexes and GetRLEIndexes.

  • Add Image::IsUnique method.

  • Add wrapping for DICOMOrientImageFilter.

  • Add complex pixel type support to GetBufferAs methods.

  • Improve checking and error messages when Image inputs require the dimensions, sizes or pixel types to match.

  • Add LevelSetMotionRegistrationImageFilter::InitialDisplacementField method.

  • Refactor of the template code generation system to enable numerous new features and C++ style enhancements.

  • Add boolean in_place field to all JSON filter descriptions.

  • Add C++ automatic "in place" ITK filter execution with r-value image input.

  • Add C++ Image operators with automatic in-place filter execution with r-value Image classes.

  • Use native SWIG/R enumeration support.

  • Add named filter inputs to morphological reconstruction image filters.

  • Replace the CMake configuration option of "SimpleITK_4D_IMAGE" with "SimpleITK_MAX_DIMENSION"

  • Default configuration now include 5D Image support.

  • The following filters support up to "SimpleITK_MAX_DIMENSION":

    • ExtractImageFilter
    • JoinSeriesImageFilter
    • PasteImageFilter
    • HashImageFilter
    • ImageFileReader
    • ImageFileWriter and ImageSeriesWriter
  • Refactored MemberFunctionFactory's hashing function.

  • Add ExtractImageFilter support to extract an abitrary dimension e.g. 3D image from 5D image.

  • Add sitkScaleVersor enum.

  • Add Transform::GetTransfromEnum method.

  • Add CompositeTransform class.

  • Update to ITKv5 threading model behaviors for the following ProcessObject methods:

    • SetGlobalDefaultThreader and GetGlobalDefaultThreader
    • SetGlobalDefaultNumberOfThreads and GetGlobalDefaultNumberOfThreads
    • SetNumberOfWorkUnits and GetNumberOfWorkUnits

Python

  • Add custom Python procedures for DiscreteGaussian, SmoothingRecursiveGaussian, ReadImage and WriteImage to support keyword arguments.
  • Add to the WriteImage Python procedure the keyword only arguments imageIO and compressor.
  • Add Python __setitem__ for [] operator support:
    • assignment constant to a sliced indexed region
  • assignment of lower dimension image to matching sliced indexed region
  • Add Python support for complex pixels to GetArrayFromImage, GetImageFromArray and GetArrayViewFromImage methods.
  • Add Python deepcopy support to Image class, ensuring the copy is unique with lazy copying implementation.
  • Add Python pickling support for Image and Transform classes.
  • Add Python keyword argument support for Resample procedure.
  • Improve Python Image class's in-place operators to use C++ in-place operators.
  • Improve Python keyword arguments for procedural methods due to removal of overloaded methods.
  • Add Python slice indexing for arbitrary dimension extracting.
  • Add Python __setitem__ support for assigning sub-regions via the PasteImageFilter.
  • Refactor Python SWIG code to separate classes and add Python code as modules.
  • Add Python Transform.Downcast method.
  • Applied PEP 8 style to Python examples.

CSharp

  • Add C# constant image buffer access methods of the form GetConstBufferAs....

Bug Fixes

  • Fix the ImageRegistrationMethod exception to use GetPixelIDTypeAsString

  • Update ndarray.tostring to tobyte ( tostring deprecated in numpy 1.19.0 )

  • Add missing deepcopy implementation for Image with RLE "Label" pixel types.

  • Fixed Python pickling for missed transform classes.

  • Refactored GetImageFromVector method to retain reference to original container with a command object. Fixing image buffer aliasing with BSplineTransform and DisplacementFieldTransform.

  • Make TranslationTransform conversion constructor explicit.

  • Remove implicit conversion from Image to Transform class.

  • Update StatisticsImageFilter input convention for ITKv5.

  • Remove WarpImageFilter matching image size requirement.

  • The results of the LiThresholdImageFilter changes with ITK, baseline test results were updated. ( See ITK commit e3ce37 for details. )

  • Add additional baseline images for registration results, due to change in ImageRegistration's smoothing algorithm. ( See ITK commit 569a47 for details. )

  • Correct LabelShapeStatistics baseline for OrientedBoundingBoxVertices results. ( See ITK commit 50c695 for details. )

  • Fix potential double memory free of pixel container in results from internal image to vector image conversions.

  • Fix RelabelComponentImageFilter incorrect object size computation with sorting enabled. ( See ITK commit 162101 for details. )

  • Fix potential ITK pipeline execution error when a filter execute on a vector image by per component.

  • Add C++11 move semantics support to the Image class.

  • Add direct support for C++11 lambda command to the ProcessObject class.

  • Add GetBufferAsVoid method to the Image class.

  • Add Decay parameter to the MirrorPadImageFilter.

Documentation

  • Update doc strings for Python and JAVA from JSON filter descriptions.

  • Update examples to use slice based assignment instead of PasteImageFilter.

  • Update the tutorials page.

  • Update FAQ.

  • Improve WriteImage Doxygen documentation.

  • Update RTD Show procedure documentation.

  • Add custom HTML Doxygen header with dynamic timestamp insertion, and privacy policy.

  • Add procedural example to IO page.

  • Updating the main Doxygen page.

  • Update Sphinx filter list.

  • Add example for reading raw image files.

  • Add DICOM series writing example with floating point pixels.

  • Add FAQ entry for the differences between ITK and SimpleITK.

  • Rename Sphinx "installation" page to "getting started".

  • Update examples from using scalar radius to vector.

  • Use Doxygen interactive SVG output, and enable client side MathJax for Latex rendering.

  • Add C++ CMake example for using SimpleITK.

  • Update examples to use CompositeTransform.

  • Update copyright to NumFOCUS.

  • Add casting to N4BiasFieldCorrection example.

  • Typo fixes.

  • Create Docker images for generating Doxygen.

  • Add C# ConnectedThresholdSegmentation example.

  • Remove references to next branch in documentation.

  • Update R installation instructions.

  • Add C# ImageReistrationMethod2 example.

  • Add multi-lingual examples for FastMarchingSegmentationImageFilter.

  • Uset stopping time parameter in FastMarchingSegmentation examples.

  • Add C# CannySegmentationLevelSetImageFilter example.

  • Improve documentation to GetImageFromArray about isVector parameter.

  • Update referenced tutorials.

  • Add acknowledgment section to readme.

  • Update Java and CSharp installation instructions.

  • Move Doxygen pages to Sphinx documents, remove other out dated pages.

  • Move Sphinx documentation to docs directory.

Compilation

  • Address signed to unsigned comparison compiler warnings.

  • Fix PYTHON_EXECUTABLE being undefined in CMake for Doxygen.

  • Add Doxygen MathJAX URL as CMake option.

  • Continue to address compilation warnings.

  • Pin Sphinx version for Read-The-Docs.

  • Remove EXPORT specification for static member function declaration.

  • Support pass TBB_DIR to ITK in the Superbuild.

  • Require C++11 standard for compilation.

  • Replace C++ tr1 usage with standard C++11 classes.

  • Replace compiler depended defines with C++11 keywords.

  • Prefer using C++11 lambda over std::bind when std::placeholders are not needed.

  • Improve support on OSX for isysroot flag and CMAKE_OSX_SYSROOT variable.

  • Support additional CMAKE_GENERATOR_*, CMAKE_VS_PLATFORM_TOOLSET_* variables is superbuild.

  • Added AWS S3 buckets for data mirroring.

  • Use SHA512 hash files as index for downloaded source code.

  • Use CMake for creating zip archives.

  • Improve finding of Lua interpreter.

  • Update Lua superbuild version to 5.3.5, require Lua version 5.2 or 5.3 for code generation.

  • Update PCRE superbuild version to 8.43.

  • Add USE_CCACHE cmake option to automatically use ccache as launcher if available.

  • Enable GNU gold linker by default if available.

  • Update GTest vesrion to 1.10.0 in superbuild.

  • Fix incorrect version of virtualenv detected.

Miscellaneous

  • Update SimpleITK logo.
  • Test the ImageViewer class and Show procedure.
  • Update and add more testing for Python ImageRead and ImageWrite procedures.
  • Prefer using absolute imports in Python.
  • Updates to manylinux Dockerfile including updating CMake and openssl versions.
  • Write testing output with compression enabled.
  • Use C++11 nullptr over NULL.
  • Update classes to use C++11 inline class initializaton.
  • Use C++11 default class constructors.
  • Use C++11 type alias over typedefs.
  • Use clang-tidy to improve code with:
    • modernize-redundant-void-arg
    • modernize-use-equals-default
    • modernize-use-override
    • modernize-use-emplace
    • readability-container-size-empty
  • Continuing updates and improvements to the testing, build and packaging infrastructure.
  • Update set parameter methods to use std::vector by value with C++ std::move internally.
  • Add CI for running flake8.
  • Continuing updates and improvements to the testing, build and packaging infrastructure.
  • Add tolerance for testing BSpline domains.
  • Update setup for development scripts to support github workflows.
  • Add Insight Software Consortium Code of Conduct.
  • Archive SHA512 in distributed data archive.
  • Disable ITK's automatic advanced architecture compilation settings in packaging builds.

v2.0rc3

3 years ago

Announcement

Announcing the SimpleITK 2.0 Release Candidate 3!

This is anticipated to be the last release candidate before 2.0 final. Users and developers are encouraged to test the RC before the final release and report issues, bugs, and any significant compatibility problems.

Additional release notes can be found in prior candidates:

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.0rc3

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

Release Notes

API and Compatibility Changes

  • The environment variables related to the Show method are only checked once. The Show method now is a wrapper for the ImageViewer class, and the behavior changed. The SITK_SHOW_EXTENSION and SITK_SHOW_COMMAND environment variables if defined initialize the corresponding global defaults only the first time accessed. The environment variables SITK_COLOR_COMMAND and SITK_SHOW_3D_COMMAND are removed as the ImageViewer class allows for direct configuration of the command.

New Features

  • Rewrote Show to use ImageViewer class.
  • Added "~/Application" path to ImageView application search path for Mac.
  • Add custom Python procedures or DiscreteGaussian, SmoothingRecursiveGaussian, ReadImage and WriteImage to support keyword arguments.
  • Add to the WriteImage Python procedure the keyword only arguments imageIO and compressor.
  • Use NPasteImageFilter from the SimpleITKFilters remote ITK module to replace PasteImageFilter.
  • Add to SimpleITK's PasteImageFilter:
    • DestinationSkipAxes parameter
    • Support for pasting lower dimension to higher dimension image e.g 2D slice into 3D volume
    • Ability to use a constant value as input instead of image
  • Add Python __setitem__ for [] operator support:
    • assignment constant to a sliced indexed region
    • assignment of lower dimension image to matching sliced indexed region
  • Add method to ImageFileReader::GetImageIOFromFileName get the ITK ImageIO automatically used for file.
  • Update superbuild Swig version to 4.0.2.

Bug Fixes

  • Fix the ImageRegistrationMethod exception to use GetPixelIDTypeAsString
  • Update ndarray.tostring to tobyte ( tostring deprecated in numpy 1.19.0 )

Documentation

  • Update doc strings for Python and JAVA from JSON filter descriptions.
  • Update examples to use slice based assignment instead of PasteImageFilter.
  • Update the tutorials page.
  • Update FAQ.
  • Improve WriteImage Doxygen documentation.
  • Update RTD Show procedure documentation.
  • Add custom HTML Doxygen header with dynamic timestamp insertion, and privacy policy.
  • Add procedural example to IO page.
  • Updating the main Doxygen page.

Compilation

  • Address signed to unsigned comparison compiler warnings.
  • Fix PYTHON_EXECUTABLE being undefined in CMake for Doxygen.
  • Add Doxygen MathJAX URL as CMake option.

Miscellaneous

  • Test the ImageViewer class and Show procedure.
  • Update and add more testing for Python ImageRead and ImageWrite procedures.
  • Prefer using absolute imports in Python.