scikit-image 0.22.0 (2023-11-03)#
We’re happy to announce the release of scikit-image 0.22.0!
Highlights#
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
andskimage.restoration.estimate_sigma
(#7156).Remove deprecated
skimage.filters.inverse
. Useskimage.filters.filter_inverse
instead (#7161).Remove deprecated function
skimage.filters.ridges.compute_hessian_eigenvalues
. Useskimage.feature.hessian_matrix_eigvals
on the results ofskimage.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 withchannel_axis=-1
explicitly (#7164).Change number of returned arguments in
skimage.registration.phase_cross_correlation
. The function now always returns the 3 argumentsshift
,error
, andphasediff
(#7166).Deprecate
return_error
inskimage.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
andcoords_scaled
toskimage.measure.regionprops_table
(#7039).Fix
too many values to unpack error
with imageio 2.31.1 invideo.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 ifdisambiguate=True
(#7112).Allow
extra_properties
of non-equal lengths to be passed correctly toskimage.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):
Adeyemi Biola (@decorouz)
Amund Vedal (@vedal)
Ananya Srivastava (@ana42742)
Andrew J. Hesford (@ahesford)
Antony Lee (@anntzer)
Elena Pascal (@elena-pascal)
Jarrod Millman (@jarrodmillman)
Juan Nunez-Iglesias (@jni)
Kenfack Anafack Alex Bruno (@Br-Al)
Klaus Rettinghaus (@rettinghaus)
Larry Bradley (@larrybradley)
Lars Grüter (@lagru)
Marianne Corvellec (@mkcor)
Marvin Albert (@m-albert)
Matthias Bussonnier (@Carreau)
Matthias Nwt (@matthiasnwt)
Mike Taves (@mwtoews)
Riadh Fezzani (@rfezzani)
Stefan van der Walt (@stefanv)
Talley Lambert (@tlambert03)
19 reviewers added to this release (alphabetically):
Adeyemi Biola (@decorouz)
Ananya Srivastava (@ana42742)
Andrew J. Hesford (@ahesford)
Egor Panfilov (@soupault)
Grzegorz Bokota (@Czaki)
Jarrod Millman (@jarrodmillman)
Juan Nunez-Iglesias (@jni)
Kristen Thyng (@kthyng)
Larry Bradley (@larrybradley)
Lars Grüter (@lagru)
Marianne Corvellec (@mkcor)
Mark Harfouche (@hmaarrfk)
Marvin Albert (@m-albert)
Matthias Bussonnier (@Carreau)
Maxim (@koshakOK)
Mike Taves (@mwtoews)
Stefan van der Walt (@stefanv)
These lists are automatically generated, and may not be complete or may contain duplicates.