Skip to content

release_notes_v22.08.00

Gregory Lee edited this page Aug 19, 2022 · 1 revision

cuCIM 22.08.00 (17 Aug 2022)

This release adds spacing metadata support for TIFF files. 'tiff.x_resolution', 'tiff.y_resolution', and 'tiff.resolution_unit' are added to the metadata of CuImage object. Also 'cucim.spacing' and 'cucim.spacing_units' metadata will have the correct values for TIFF images.

There is now an implementation of the 2D medial-axis transform (MAT) for creating skeletons of binary objects. The skeleton produced contains associated distance information. See cucim.skimage.morphology.medial_axis.

A new function cucim.skimage.segmentation.expand_labels will expand the boundaries of a set of nD labeled objects. This is similar to grayscale morphological dilation, but uses distance transform information to avoid expanding an object into any background region that is closer to another object.

A new segmetion function, cucim.skimage.segmentation.chan_vese, applies the iterative Chan-Vese active contours algorithm for segmentating 2D images.

cucim.skimage.median_filter will now be much faster when the filter footprint is large and filtering is being done on 2D images with 8 or 16-bit integer data types. These cases use a histogram-based algorithm whose runtime is independent of footprint size. Implementation of the 2D and 3D Euclidean distance transform in cucim.core.operators.morphology.distance_transform_edt (matches scipy.ndimage.distance_transform_edt).

cucim.core.operations.color.normalize_colors_pca now requires less memory and should be about 25% faster than in the 22.06.00 release. There is also one backwards incompatible change to how the beta threshold is applied in cucim.core.operations.color.stain_extraction_pca. Pixels are now retained if any channel has an absorbance above the threshold (previously all channels had to be above the threshold).

More efficient separable convolution kernels, lead to modest performance improvements in several convolution-based filters (e.g. cucim.skimage.filters.gaussian, cucim.skimage.filters.sobel and functions like cucim.skimage.feature.canny which use separable filtering internally).

Additional details of the changes in this release are given below.

🚨 Breaking Changes

  • Stain extraction: use a less strict condition across channels when thresholding (#316) @grlee77

🐛 Bug Fixes

  • create SimilarityTransform using CuPy 9.x-compatible indexing (#365) @grlee77
  • Add __init__.py in cucim.core (#359) @jakirkham
  • Stain extraction: use a less strict condition across channels when thresholding (#316) @grlee77
  • Incorporate bug fixes from skimage 0.19.3 (#312) @grlee77
  • fix RawKernel bug for canny filter when quantiles are used (#310) @grlee77

📖 Documentation

🚀 New Features

  • Add segmentation with the Chan-Vese active contours method (#343) @grlee77
  • Add cucim.skimage.morphology.medial_axis (#342) @grlee77
  • Add cucim.skimage.segmentation.expand_labels (#341) @grlee77
  • Add Euclidean distance transform for images/volumes (#318) @grlee77

🛠️ Improvements