scikit-image 0.21.0 (2023-06-02)#

We’re happy to announce the release of scikit-image 0.21.0! scikit-image is an image processing toolbox for SciPy that includes algorithms for segmentation, geometric transformations, color space manipulation, analysis, filtering, morphology, feature detection, and more.

For more information, examples, and documentation, please visit our website: https://scikit-image.org

Highlights#

  • Last release to support Python 3.8

  • Unified API for PRNGs

New Features#

  • Implement Fisher vectors in scikit-image (#5349).

  • Add support for y-dimensional shear to the AffineTransform (#6752).

API Changes#

In this release, we unify the way seeds are specified for algorithms that make use of pseudo-random numbers. Before, various keyword arguments (sample_seed, seed, random_seed, and random_state) served the same purpose in different places. These have all been replaced with a single rng argument, that handles both integer seeds and NumPy Generators. Please see the related SciPy discussion, as well as Scientific Python SPEC 7 that attempts to summarize the argument.

  • Unify API on seed keyword for random seeds / generator (#6258).

  • Refactor _invariant_denoise to denoise_invariant (#6660).

  • Expose color.get_xyz_coords in public API (#6696).

  • Make join_segmentations return array maps from output to input labels (#6786).

  • Unify pseudo-random seeding interface (#6922).

  • Change geometric transform inverse to property (#6926).

Enhancements#

  • Bounding box crop (#5499).

  • Add support for y-dimensional shear to the AffineTransform (#6752).

  • Make join_segmentations return array maps from output to input labels (#6786).

  • Check if spacing parameter is tuple in regionprops (#6907).

  • Enable use of rescale_intensity with dask array (#6910).

Performance#

  • Add lazy loading to skimage.color submodule (#6967).

  • Add Lazy loading to skimage.draw submodule (#6971).

  • Add Lazy loader to skimage.exposure (#6978).

  • Add lazy loading to skimage.future module (#6981).

Bug Fixes#

  • Fix and refactor deprecated decorator to deprecate_func (#6594).

  • Refactor _invariant_denoise to denoise_invariant (#6660).

  • Expose color.get_xyz_coords in public API (#6696).

  • shift and normalize data before fitting circle or ellipse (#6703).

  • Showcase pydata-sphinx-theme (#6714).

  • Fix matrix calculation for shear angle in AffineTransform (#6717).

  • Fix threshold_li(): prevent log(0) on single-value background. (#6745).

  • Fix copy-paste error in footprints.diamond test case (#6756).

  • Update .devpy/cmds.py to match latest devpy (#6789).

  • Avoid installation of rtoml via conda in installation guide (#6792).

  • Raise error in skeletonize for invalid value to method param (#6805).

  • Sign error fix in measure.regionprops for orientations of 45 degrees (#6836).

  • Fix returned data type in segmentation.watershed (#6839).

  • Handle NaNs when clipping in transform.resize (#6852).

  • Fix failing regionprop_table for multichannel properties (#6861).

  • Do not allow 64-bit integer inputs; add test to ensure masked and unmasked modes are aligned (#6875).

  • Fix typo in apply_parallel introduced in #6876 (#6881).

  • Fix LPI filter for data with even dimensions (#6883).

  • Use legacy datasets without creating a data_dir (#6886).

  • Raise error when source_range is not correct (#6898).

  • apply spacing rescaling when computing centroid_weighted (#6900).

  • Corrected energy calculation in Chan Vese (#6902).

  • Add missing backticks to DOI role in docstring of area_opening (#6913).

  • Fix inclusion of random.js in HTML output (#6935).

  • Fix URL of random gallery links (#6937).

  • Use context manager to ensure urlopen buffer is closed (#6942).

  • Fix sparse index type casting in skimage.graph._ncut (#6975).

Maintenance#

  • Fix and refactor deprecated decorator to deprecate_func (#6594).

  • allow trivial ransac call (#6755).

  • Fix copy-paste error in footprints.diamond test case (#6756).

  • Use imageio v3 API (#6764).

  • Unpin scipy dependency (#6773).

  • Update .devpy/cmds.py to match latest devpy (#6789).

  • Relicense CLAHE code under BSD-3-Clause (#6795).

  • Relax reproduce section in bug issue template (#6825).

  • Rename devpy to spin (#6842).

  • Speed up threshold_local function by fixing call to _supported_float_type (#6847).

  • Specify kernel for ipywidgets (#6849).

  • Make image_fetcher and create_image_fetcher in data private (#6855).

  • Update references to outdated dev.py with spin (#6856).

  • Bump 0.21 removals to 0.22 (#6868).

  • Update dependencies (#6869).

  • Update pre-commits (#6870).

  • Add test for radon transform on circular phantom (#6873).

  • Do not allow 64-bit integer inputs; add test to ensure masked and unmasked modes are aligned (#6875).

  • Don’t use mutable types as default values for arguments (#6876).

  • Point version_switcher.json URL at dev docs (#6882).

  • Add back parallel tests that were removed as part of Meson build (#6884).

  • Use legacy datasets without creating a data_dir (#6886).

  • Remove old doc cruft (#6901).

  • Temporarily pin imageio to <2.28 (#6909).

  • Unify pseudo-random seeding interface follow-up (#6924).

  • Use pytest.warn instead of custom context manager (#6931).

  • Follow-up to move to pydata-sphinx-theme (#6933).

  • Mark functions as noexcept to support Cython 3 (#6936).

  • Skip unstable test in ransac’s docstring (#6938).

  • Stabilize EllipseModel fitting parameters (#6943).

  • Point logo in generated HTML docs at scikit-image.org (#6947).

  • If user provides RNG, spawn it before deepcopying (#6948).

  • Skip ransac doctest (#6953).

  • Expose GeometricTransform.residuals in HTML doc (#6968).

  • Fix NumPy 1.25 deprecation warnings (#6969).

  • Revert jupyterlite (#6972).

  • Don’t test numpy nightlies due to transcendental functions issue (#6973).

  • Ignore tight layout warning from matplotlib pre-release (#6976).

  • Remove temporary constraint <2.28 for imageio (#6980).

Documentation#

  • Document boundary behavior of draw.polygon and draw.polygon2mask (#6690).

  • Showcase pydata-sphinx-theme (#6714).

  • Merge duplicate instructions for setting up build environment. (#6770).

  • Add docstring to skimage.color module (#6777).

  • DOC: Fix underline length in docstring_add_deprecated (#6778).

  • Link full license to README (#6779).

  • Fix conda instructions for dev env setup. (#6781).

  • Update docstring in skimage.future module (#6782).

  • Remove outdated build instructions from README (#6788).

  • Add docstring to the transform module (#6797).

  • Handle pip-only dependencies when using conda. (#6806).

  • Added examples to the EssentialMatrixTransform class and its estimation function (#6832).

  • Fix returned data type in segmentation.watershed (#6839).

  • Update references to outdated dev.py with spin (#6856).

  • Added example to AffineTransform class (#6859).

  • Update _warps_cy.pyx (#6867).

  • Point version_switcher.json URL at dev docs (#6882).

  • Fix docstring underline lengths (#6895).

  • ENH Add JupyterLite button to gallery examples (#6911).

  • Add missing backticks to DOI role in docstring of area_opening (#6913).

  • Add 0.21 release notes (#6925).

  • Simplify installation instruction document (#6927).

  • Follow-up to move to pydata-sphinx-theme (#6933).

  • Update release notes (#6944).

  • MNT Fix typo in JupyterLite comment (#6945).

  • Point logo in generated HTML docs at scikit-image.org (#6947).

  • Add missing PRs to release notes (#6949).

  • fix bad link in CODE_OF_CONDUCT.md (#6952).

  • Expose GeometricTransform.residuals in HTML doc (#6968).

Infrastructure#

  • Showcase pydata-sphinx-theme (#6714).

  • Prepare CI configuration for merge queue (#6771).

  • Pin to devpy 0.1 tag (#6816).

  • Relax reproduce section in bug issue template (#6825).

  • Rename devpy to spin (#6842).

  • Use lazy loader 0.2 (#6844).

  • Cleanup cruft in tools (#6846).

  • Update pre-commits (#6870).

  • Remove codecov dependency which disappeared from PyPI (#6887).

  • Add CircleCI API token; fixes status link to built docs (#6894).

  • Temporarily pin imageio to <2.28 (#6909).

  • Add PR links to release notes generating script (#6917).

  • Use official meson-python release (#6928).

  • Fix inclusion of random.js in HTML output (#6935).

  • Fix URL of random gallery links (#6937).

  • Respect SPHINXOPTS and add –install-deps flags to spin docs (#6940).

  • Build skimage before generating docs (#6946).

  • Enable testing against nightly upstream wheels (#6956).

  • Add nightly wheel builder (#6957).

  • Run weekly tests on nightly wheels (#6959).

  • CI: ensure that a “type: “ label is present on each PR (#6960).

  • Add PR milestone labeler (#6977).

33 authors added to this release (alphabetical)#

27 reviewers added to this release (alphabetical)#