scikit-image 0.22.0 (2023-11-03)#

We’re happy to announce the release of scikit-image 0.22.0!

Highlights#

  • Add new image sequence skimage.data.palisades_of_vogt showing in-vivo tissue of the palisades of Vogt (#6858).

  • Add inpainting example to gallery (#6853).

New Features#

  • Add new image sequence skimage.data.palisades_of_vogt showing in-vivo tissue of the palisades of Vogt (#6858).

API Changes#

  • Update minimal required NumPy version to 1.22 (#7005).

  • Update minimal required lazy_loader version to 0.3 (#7043).

  • Make PyWavelets an optional dependency which is only required for skimage.restoration.denoise_wavelet and skimage.restoration.estimate_sigma (#7156).

  • Remove deprecated skimage.filters.inverse. Use skimage.filters.filter_inverse instead (#7161).

  • Remove deprecated function skimage.filters.ridges.compute_hessian_eigenvalues. Use skimage.feature.hessian_matrix_eigvals on the results of skimage.feature.hessian_matrix instead (#7162).

  • Remove deprecated automatic detection of the color channel in skimage.filters.gaussian. channel_axis=None now indicates a grayscale image. Set the color channel with channel_axis=-1 explicitly (#7164).

  • Change number of returned arguments in skimage.registration.phase_cross_correlation. The function now always returns the 3 arguments shift, error, and phasediff (#7166).

  • Deprecate return_error in skimage.registration.phase_cross_correlation (#7174).

Performance#

  • Add lazy loading to the skimage.feature submodule (#6983).

  • Add lazy loading to the skimage.graph submodule (#6985).

  • Add lazy loading to the skimage.measure submodule (#6999).

  • Add lazy loading to the skimage.transform submodule (#7009).

  • Add lazy loading to the skimage.restoration submodule (#7021).

  • Add lazy loading to the skimage.registration submodule (#7032).

  • Avoid unnecessary padding in skimage.measure.block_resize (#7092).

Bug Fixes#

  • Add missing properties num_pixels and coords_scaled to skimage.measure.regionprops_table (#7039).

  • Fix too many values to unpack error with imageio 2.31.1 in video.rst (#7076).

  • Address error in skimage.filters.threshold_triangle when images with a uniform intensity are passed. In these cases the uniform intensity is returned as the threshold (#7098).

  • Fix error in skimage.color.lab2rgb for 1D input (#7116).

  • Make skimage.registration.phase_cross_correlation consistently return an array even if disambiguate=True (#7112).

  • Allow extra_properties of non-equal lengths to be passed correctly to skimage.measure.regionprops_table (#7136).

Documentation#

  • Use a more descriptive title for current inpainting example (#6989).

  • Fix URLs to the install page (#6998).

  • Fix equation for Wiener filter in restoration.wiener’s docstring (#6987).

  • Fix missing links in INSTALL.rst and simplify language (#6984).

  • Edit installation and contributor guidelines (#6991).

  • Fix URLs that lead to 404 page (#7008).

  • Replace with correct reference to eigenvalues in ridge detection docstrings (#7034).

  • Add inpainting example to gallery (#6853).

  • Fix grammar in SKIP 1 (#7081).

  • Add missing minus in SimilarityTransform docstring (#6840).

  • Add one-line docstring to skimage.segmentation (#6843).

  • Add a short docstring to skimage.util (#6831).

  • Enable version warning banners for docs (#7139).

  • Clarify order of dimensions in skimage.transform.EuclideanTransform (#7103).

  • Add docstring to the morphology module (#6814).

  • Include Plausible analytics from Scientific Python in our HTML docs (#7145).

  • Specify coordinate convention in skimage.draw.polygon2mask (#7131).

  • Update 0.22.0 release notes (#7182).

Infrastructure#

  • Pin milestone labeler to v0.1.0 SHA (#6982).

  • Ensure existing target directory for random.js (#7015).

  • Assign next milestone only for PRs targeting main branch (#7018).

  • Add missing directories to spin docs --clean command (#7019).

  • Rework generate_release_notes.py and add PR summary parsing (#6961).

  • Use packaged version of generate_release_notes.py (changelist) (#7049).

  • Generate requirements files from pyproject.toml (#7085).

  • Update spin to v0.5 (#7093).

  • Update to LLVM 16 with choco temporarily (#7109).

  • Update pytest config in pyproject.toml with repo-review recommendations (#7063).

  • Use checkout action version 4 (#7180).

Maintenance#

  • Don’t test numpy prerelease on azure (#6996).

  • Drop Python 3.8 support per SPEC 0 (#6990).

  • Upper pin imageio (#7002).

  • meson: allow proper selection of NumPy, Pythran in cross builds (#7003).

  • Unpin imageio and add warningfilter (#7006).

  • Update to latest attach-next-milestone action (#7014).

  • Avoid deprecated auto-removal of overlapping axes in thresholding example (#7026).

  • Remove conflicting setuptools upper pin (#7045).

  • Remove future.graph after v0.21 release (#6899).

  • Cleanup from move to pyproject.toml (#7044).

  • Ignore new matplotlib warning (#7056).

  • Update spin (#7054).

  • Ignore SciPy 1.12.dev0 deprecation warning (#7057).

  • Include expected warning for SciPy 1.12 (#7058).

  • Mark NaN-related deprecation warning from np.clip as optional in tests (#7052).

  • Fix abs value function warnings (#7010).

  • Temporary fix for wheel recipe (#7059).

  • Temporary fix for wheel building (#7060).

  • Remove outdated comment (#7077).

  • Include py.typed file in distribution (PEP 561) (#7073).

  • Transition user guide to import skimage as ski (#7024).

  • Fix for NumPy 1.25 (#6970).

  • Pin sphinx until sphinx-gallery is fixed (#7100).

  • Cleanup old Python 3.11 tests (#7099).

  • Revert “Pin sphinx until sphinx-gallery is fixed (#7100)” (#7102).

  • MNT: Remove np.float_ alias; it is removed in NumPy 2.0 (#7118).

  • Fix for NumPy 1.26 (#7101).

  • Update meson-python (#7120).

  • We now require sklearn 1.1, as per [SPEC0](https://scientific-python.org/specs/spec-0000/) (#7121).

  • Update for NumPy 2 namespace cleanup (#7119).

  • DOC: minor numpydoc syntax update (#7123).

  • Update for NumPy 2 namespace cleanup (#7122).

  • Temporary work-around for NEP 51 numpy scalar reprs + doctests (#7125).

  • Update lazy loader (#7126).

  • Fix PEP 8 issues (#7142).

  • Remove single-threaded dask usage in face detection gallery example which fixes issues with running the example on Windows and CI (#7141).

  • Update spin version to 0.6 (#7150).

  • Match pep8speaks and ruff line lengths to 88 (#7148).

  • Remove last reference to distutils in _build_utils/tempita.py (#7137).

  • Update sphinx, sphinx-gallery & sphinx_design (#7155).

  • Update minimal version of numpydoc to 1.6 (#7106).

  • Build wheels for py3.12 (#7082).

  • Update label and milestone workflows (#7163).

  • Update TODO (see #6899) (#7165).

  • Announce Python 3.12 support (#7167).

  • Remove pep8speaks config (#7172).

  • Filter out expected runtime warnings in registation.phase_cross_correlation when disambiguate=True (#7147).

  • Use pre-commit bot (#7171).

  • Fix missing warnings import in phase_cross_correlation (#7175).

  • Fix release notes error (#7177).

  • Use trusted publisher (#7178).

Contributors#

24 authors added to this release (alphabetically):

19 reviewers added to this release (alphabetically):

These lists are automatically generated, and may not be complete or may contain duplicates.