Scikit Image Versions Save

Image processing in Python

v0.23.2

2 weeks ago

scikit-image 0.23.2

We're happy to announce the release of scikit-image 0.23.2!

Bug Fixes

  • Make sure skimage.util.img_as_ubyte supports the edge case where dtype('uint64').type of the provided image is np.ulonglong instead of np.uint64 (#7392).

Documentation

  • Add date to 0.23.1 release notes (#7384).
  • Fix docstring of connectivity parameter in skimage.segmentation.watershed (#7360).

Infrastructure

  • Ignore Sphinx warning about unpickable cache (#7400).
  • Simplify instructions on changelist in PR template (#7401).

Maintenance

  • Use numpy.inf instead of deprecated numpy.infty (#7386).
  • Update Ruff config (#7387).
  • Update matrix and names of Azure pipelines configuration (#7390).
  • Use upload- and download-artifact v4 (#7389).
  • Ignore arch specific cast warnings originating from astype in tests (#7393).
  • Update link to numpydoc example.py (#7395).

Contributors

4 authors added to this release (alphabetically):

4 reviewers added to this release (alphabetically):

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

v0.23.2rc1

3 weeks ago

scikit-image 0.23.2rc1

[!IMPORTANT] This is a release candidate for a minor patch release!

We're happy to announce the release of scikit-image 0.23.2rc1!

Bug Fixes

  • Make sure skimage.util.img_as_ubyte supports the edge case where dtype('uint64').type of the provided image is np.ulonglong instead of np.uint64 (#7392).

Documentation

  • Add date to 0.23.1 release notes (#7384).
  • Fix docstring of connectivity parameter in skimage.segmentation.watershed (#7360).

Maintenance

  • Use numpy.inf instead of deprecated numpy.infty (#7386).
  • Update Ruff config (#7387).
  • Update matrix and names of Azure pipelines configuration (#7390).
  • Use upload- and download-artifact v4 (#7389).
  • Ignore arch specific cast warnings originating from astype in tests (#7393).
  • Update link to numpydoc example.py (#7395).

Contributors

4 authors added to this release (alphabetically):

3 reviewers added to this release (alphabetically):

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

v0.23.1

4 weeks ago

scikit-image 0.23.1

We're happy to announce the release of scikit-image 0.23.1!

[!NOTE] Due to an issue with the CI system scikit-image 0.23.0 was never released. This release is identical to what 0.23.0 would have been other than the CI fix and the version number.

Highlights

  • Ensure skimage.morphology.closing and skimage.morphology.opening are extensive and anti-extensive, respectively, if the footprint is not mirror symmetric (#6695).
  • Add parameter mode to binary_erosion, binary_dilation, binary_opening and binary_closing in skimage.morphology. These new parameters determine how array borders are handled (#6695).
  • Add parameters mode and cval to erosion, dilation, opening, closing, white_tophat, and black_tophat in skimage.morphology. These new parameters determine how array borders are handled (#6695).
  • Speedup skimage.util.map_array by parallelization with Cython's prange (#7266).

New Features

  • Add new intensity_std property to skimage.measure.regionprops which computes the standard deviation of the intensity in a region (#6712).
  • Add parameter mode to binary_erosion, binary_dilation, binary_opening and binary_closing in skimage.morphology. These new parameters determine how array borders are handled (#6695).
  • Add functions mirror_footprint and pad_footprint to skimage.morphology (#6695).
  • Add parameters mode and cval to erosion, dilation, opening, closing, white_tophat, and black_tophat in skimage.morphology. These new parameters determine how array borders are handled (#6695).
  • Add new parameter spacing to segmentation.expand_labels to support anisotropic images (#7080).

API Changes

  • Drop support for Python 3.9 (#7217).
  • Parameters shift_x and shift_y in skimage.morphology.erosion and skimage.morphology.dilation are deprecated. Use pad_footprint or modify the footprint manually instead (#6695).
  • Remove unexpected value scaling in skimage.morphology.skeletonize_3d for non-binary input images. skeletonize_3d now always returns a binary array like similar functions (#7095).
  • Deprecate function skimage.feature.plot_matches in favor of skimage.feature.plot_matched_features (#7255).
  • Deprecate skimage.morphology.skeletonize_3d in favor of just skimage.morphology.skeletonize (#7094).
  • Deprecate parameter output in skimage.filters.gaussian; use out instead (#7225).
  • Change the default value of the parameters shift_x, shift_y and shift_z from False to 0 in the skimage.filters.rank functions. This has not impact on the results. Warn in case boolean shifts are provided from now on (#7320).

Performance

  • Add lazy loading to skimage.metrics module (#7211).
  • Speedup skimage.util.map_array by parallelization with Cython's prange (#7266).

Bug Fixes

  • Add exception to avoid surprising result when image is too small for the given parameters in skimage.feature.hog (#7153).
  • Ensure skimage.morphology.closing and skimage.morphology.opening are extensive and anti-extensive, respectively, if the footprint is not mirror symmetric (#6695).
  • Avoid a TypeError in skimage.registration.phase_cross_correlation when the real-time shift cannot be determined (disambiguate=True). Display a warning instead (#7259).
  • Fix logic in skimage.graph.pixel_graph which raised a TypeError when the parameter edge_function was provided without a mask (#7310).
  • Ensure cache stays empty when cache=False is passed to skimage.measure.regionprops (#7333).

Documentation

  • Update instructions for updating dev environment (#7160).
  • Make titles in RAG gallery examples more explicit (#7202).
  • Add docstring to skimage.graph module (#7192).
  • Use consistent notation for array dimensions in the docstrings (#3031).
  • Specify default markers in watershed docstring (#7154).
  • Stop HTML documentation from intercepting left and right-arrow keys to improve keyboard accessibility (#7226).
  • Fix reference formatting for nitpicky sphinx (#7228).
  • Document how to deal with other array-likes such as xarray.DataArray and pandas.DataFrame in the crash course on NumPy for images (#7159).
  • Fix broken function calls and syntax issues in user guide (#7234).
  • Use correct default mode in docstring of skimage.transform.swirl (#7241).
  • Add missing documentation about spacing parameter in moments_normalized (#7248).
  • Update docstring & example in the hough_ellipse transform (#6893).
  • Point binder tag/branch to commit corresponding to docs/release (#7252).
  • Add example to FundamentalMatrixTransform class (#6863).
  • Adds explanation of what the optional dependency on Matplotlib offers to the install instructions (#7286).
  • Use correct symbol θ for tightness in the docstring of skimage.registration.optical_flow_tvl1 (#7314).
  • The description of the parameter cval is modified in "int or float". cval is a numerical value not a string (#7319).
  • Remove obsolete instruction about documenting changes (#7321).
  • Added comment to clarify that dt corresponds to tau, i.e. the time step. Changed gray scale in grayscale in the entire registration module (#7324).
  • Create SECURITY.md (#7230).
  • Remove deprecated parameter coordinates from docstring example of skimage.segmentation.active_contour (#7329).
  • Include dates in release note headings (#7269).
  • Update description of how to document pull requests for inclusion in the release notes (#7267).
  • Clarify description of data_range parameter in skimage.metrics.structural_similarity (#7345).
  • Use object-oriented Matplotlib style in longer gallery examples and demonstrations (doc/examples/applications) (#7346).
  • In the gallery example on segmenting human cells (in mitosis), include the border when generating basin markers for watershed (#7362).
  • Add missing minus sign in docstring of skimage.transform.EuclideanTransform (#7097).

Infrastructure

  • Update wording on the stale bot to assume the core team dropped the ball (#7196).
  • Update Azure job name following the drop of Python 3.9 (#7218).
  • Schedule nightly wheel builds at uncommon time (#7254).
  • Build nightly wheels with nightly NumPy 2.0 (#7251).
  • Use pytest-doctestplus instead of classic pytest-doctest (#7289).
  • Update the scientific-python/upload-nightly-action to v0.5.0 for dependency stability and to take advantage of Anaconda Cloud upload bug fixes (#7325).
  • Add assert_stacklevel helper to check stacklevel of captured warnings (#7294).
  • Exclude pre-commit[bot] from changelist's contributor list (#7358).

Maintenance

  • Remove outdated & duplicate "preferred" field in version_switcher.json (#7184).
  • Upgrade to spin 0.7 (#7168).
  • Do not compare types, use isinstance (#7186).
  • [pre-commit.ci] pre-commit autoupdate (#7181).
  • Increase tolerance for moments test for 32 bit floats (#7188).
  • Temporarily pin Cython to <3.0.3 until CI is fixed (#7189).
  • Remove obsolete meson instructions (#7193).
  • Temporarily pin Cython to <3.0.3 until CI is fixed, take 2 (#7201).
  • Fix chocolatey (#7200).
  • Pin Pillow to <10.1.0 until incompatibility with imageio is fixed (#7208).
  • Use Black (#7197).
  • Apply black to _hog.py after previous merge lacking black (#7215).
  • Unpin Cython after release of Cython 3.0.4 (#7214).
  • [pre-commit.ci] pre-commit autoupdate (#7236).
  • Cleanup for Python 3.12 (#7173).
  • Make Python 3.12 default CI Python (#7244).
  • Add explicit noexcept to address Cython 3.0 warnings (#7250).
  • Update imageio to fix Pillow incompatibility (#7245).
  • Upgrade docker/setup-qemu-action to v3 (#7134).
  • Fix warningfilter for deprecation in SciPy 1.12.0rc1 (#7275).
  • Update to numpy>=1.23 and matplotlib>=3.6 according to SPEC 0 (#7284).
  • Add new deprecate_parameter helper (#7256).
  • Update meson and Cython (#7283).
  • Handle floating point warning for empty images in skimage.registration.phase_cross_correlation (#7287).
  • Update spin (0.8) (#7285).
  • Complete deprecations that were scheduled for our 0.23 release. Remove now unused deprecate_kwarg and remove_arg; they are entirely succeeded by deprecate_parameter (#7290).
  • For security best practices, use the scientific-python/upload-nightly-action GitHub Action from known commit shas that correspond to tagged releases. These can be updated automatically via Dependabot (#7306).
  • Update pre-commits repos (#7303).
  • The test suite can now be run without numpydoc installed (#7307).
  • Deal with parallel write warning from Pydata theme (#7311).
  • Test nightly wheel build with NumPy 2.0 (#7288).
  • Make it clear that funcs in _optical_flow_utils are private (#7328).
  • Update dependencies (spec 0) (#7335).
  • Follow-up cleaning & fixes for compatibility with NumPy 1 & 2 (#7326).
  • Replace ignored teardown with autouse fixture in test_fits.py (#7340).
  • Address new copy semantics & broadcasting in np.solve in NumPy 2 (#7341).
  • Ignore table of execution times by Sphinx gallery (#7327).
  • Allow a very small floating point tolerance for pearson test (#7356).
  • Update numpydoc to version 1.7 (#7355).
  • [pre-commit.ci] pre-commit autoupdate (#7365).
  • Simplify warning filters in test suite (#7349).
  • Build against NumPy >=2.0.0rc1 (#7367).
  • Remove ensure_python_version function (#7370).
  • Update GitHub actions to setup-python@v5, cache@v4, upload-artifact@v4, and download-artifact@v4 (#7368).
  • Update lazyloader to v0.4 (#7373).

Contributors

29 authors added to this release (alphabetically):

21 reviewers added to this release (alphabetically):

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

v0.23.0

4 weeks ago

[!WARNING] Due to an issue with the CI system scikit-image 0.23.0 was never released. This release is identical to 0.23.1 other than the CI fix and the version number.

v0.23.0rc2

1 month ago

scikit-image 0.23.0rc2

We're happy to announce the release of scikit-image 0.23.0rc2!

New Features

  • Add new intensity_std property to skimage.measure.regionprops which computes the standard deviation of the intensity in a region (#6712).
  • Add parameters mode and cval to erosion, dilation, opening, closing, white_tophat, and black_tophat in skimage.morphology. These new parameters determine how array borders are handled (#6695).
  • Add functions mirror_footprint and pad_footprint to skimage.morphology (#6695).
  • Add parameter mode to binary_erosion, binary_dilation, binary_opening and binary_closing in skimage.morphology. These new parameters determine how array borders are handled (#6695).
  • Add new parameter spacing to segmentation.expand_labels to support anisotropic images (#7080).

API Changes

  • Drop support for Python 3.9 (#7217).
  • Parameters shift_x and shift_y in skimage.morphology.erosion and skimage.morphology.dilation are deprecated. Use pad_footprint or modify the footprint manually instead (#6695).
  • Remove unexpected value scaling in skimage.morphology.skeletonize_3d for non-binary input images. skeletonize_3d now always returns a binary array like similar functions (#7095).
  • Deprecate function skimage.feature.plot_matches in favor of skimage.feature.plot_matched_features (#7255).
  • Deprecate skimage.morphology.skeletonize_3d in favor of just skimage.morphology.skeletonize` (#7094).
  • Deprecate parameter output in skimage.filters.gaussian; use out instead (#7225).
  • Change the default value of the parameters shift_x, shift_y and shift_z from False to 0 in the skimage.filters.rank functions. This has not impact on the results. Warn in case boolean shifts are provided from now on (#7320).

Performance

  • Add lazy loading to skimage.metrics module (#7211).
  • Speedup skimage.util.map_array by parallelization with Cython's prange (#7266).

Bug Fixes

  • Add exception to avoid surprising result when image is too small for the given parameters in skimage.feature.hog (#7153).
  • Ensure skimage.morphology.closing and skimage.morphology.opening are extensive and anti-extensive, respectively, if the footprint is not mirror symmetric (#6695).
  • Avoid a TypeError in skimage.registration.phase_cross_correlation when the real-time shift cannot be determined (disambiguate=True). Display a warning instead (#7259).
  • Fix logic in skimage.graph.pixel_graph which raised a TypeError when the parameter edge_function was provided without a mask (#7310).
  • Ensure cache stays empty when cache=False is passed to skimage.measure.regionprops (#7333).

Documentation

  • Update instructions for updating dev environment (#7160).
  • Make titles in RAG gallery examples more explicit (#7202).
  • Add docstring to skimage.graph module (#7192).
  • Use consistent notation for array dimensions in the docstrings (#3031).
  • Specify default markers in watershed docstring (#7154).
  • Stop HTML documentation from intercepting left and right-arrow keys to improve keyboard accessibility (#7226).
  • Fix reference formatting for nitpicky sphinx (#7228).
  • Document how to deal with other array-likes such as xarray.DataArray and pandas.DataFrame in the crash course on NumPy for images (#7159).
  • Fix broken function calls and syntax issues in user guide (#7234).
  • Use correct default mode in docstring of skimage.transform.swirl (#7241).
  • Add missing documentation about spacing parameter in moments_normalized (#7248).
  • Update docstring & example in the hough_ellipse transform (#6893).
  • Point binder tag/branch to commit corresponding to docs/release (#7252).
  • Add example to FundamentalMatrixTransform class (#6863).
  • Adds explanation of what the optional dependency on Matplotlib offers to the install instructions (#7286).
  • Function docstring was changed to follow the conventions adopted in the original paper. τ was replaced with θ (#7314).
  • The description of the parameter cval is modified in "int or float". cval is a numerical value not a string (#7319).
  • Remove obsolete instruction about documenting changes (#7321).
  • Added comment to clarify that dt corresponds to tau, i.e. the time step. Changed gray scale in grayscale in the entire registration module (#7324).
  • Create SECURITY.md (#7230).
  • Remove deprecated parameter coordinates from docstring example of skimage.segmentation.active_contour (#7329).
  • Include dates in release note headings (#7269).
  • Update description of how to document pull requests for inclusion in the release notes (#7267).
  • Clarify description of data_range parameter in skimage.metrics.structural_similarity (#7345).
  • Use object-oriented Matplotlib style in longer gallery examples and demonstrations (doc/examples/applications) (#7346).

Infrastructure

  • Update wording on the stale bot to assume the core team dropped the ball (#7196).
  • Update Azure job name following the drop of Python 3.9 (#7218).
  • Schedule nightly wheel builds at uncommon time (#7254).
  • Build nightly wheels with nightly NumPy 2.0 (#7251).
  • Use pytest-doctestplus instead of classic pytest-doctest (#7289).
  • Update the scientific-python/upload-nightly-action to v0.5.0 for dependency stability and to take advantage of Anaconda Cloud upload bug fixes (#7325).
  • Add assert_stacklevel helper to check stacklevel of captured warnings (#7294).
  • Exclude pre-commit[bot] from changelist's contributor list (#7358).

Maintenance

  • Remove outdated & duplicate "preferred" field in version_switcher.json (#7184).
  • Upgrade to spin 0.7 (#7168).
  • Do not compare types, use isinstance (#7186).
  • [pre-commit.ci] pre-commit autoupdate (#7181).
  • Increase tolerance for moments test for 32 bit floats (#7188).
  • Temporarily pin Cython to <3.0.3 until CI is fixed (#7189).
  • Remove obsolete meson instructions (#7193).
  • Temporarily pin Cython to <3.0.3 until CI is fixed, take 2 (#7201).
  • Fix chocolatey (#7200).
  • Pin Pillow to <10.1.0 until incompatibility with imageio is fixed (#7208).
  • Use Black (#7197).
  • Apply black to _hog.py after previous merge lacking black (#7215).
  • Unpin Cython after release of Cython 3.0.4 (#7214).
  • [pre-commit.ci] pre-commit autoupdate (#7236).
  • Cleanup for Python 3.12 (#7173).
  • Make Python 3.12 default CI Python (#7244).
  • Add explicit noexcept to address Cython 3.0 warnings (#7250).
  • Update imageio to fix Pillow incompatibility (#7245).
  • Upgrade docker/setup-qemu-action to v3 (#7134).
  • Fix warningfilter for deprecation in SciPy 1.12.0rc1 (#7275).
  • Update to numpy>=1.23 and matplotlib>=3.6 according to SPEC 0 (#7284).
  • Add new deprecate_parameter helper (#7256).
  • Update meson and Cython (#7283).
  • Handle floating point warning for empty images in skimage.registration.phase_cross_correlation (#7287).
  • Update spin (0.8) (#7285).
  • Complete deprecations that were scheduled for our 0.23 release. Remove now unused deprecate_kwarg and remove_arg; they are entirely succeeded by deprecate_parameter (#7290).
  • For security best practices, use the scientific-python/upload-nightly-action GitHub Action from known commit shas that correspond to tagged releases. These can be updated automatically via Dependabot (#7306).
  • Update pre-commits repos (#7303).
  • The test suite can now be run without numpydoc installed (#7307).
  • Deal with parallel write warning from Pydata theme (#7311).
  • Test nightly wheel build with NumPy 2.0 (#7288).
  • Make it clear that funcs in _optical_flow_utils are private (#7328).
  • Update dependencies (spec 0) (#7335).
  • Follow-up cleaning & fixes for compatibility with NumPy 1 & 2 (#7326).
  • Replace ignored teardown with autouse fixture in test_fits.py (#7340).
  • Address new copy semantics & broadcasting in np.solve in NumPy 2 (#7341).
  • Ignore table of execution times by Sphinx gallery (#7327).
  • Allow a very small floating point tolerance for pearson test (#7356).
  • Update numpydoc to version 1.7 (#7355).
  • [pre-commit.ci] pre-commit autoupdate (#7365).
  • Simplify warning filters in test suite (#7349).
  • Build against NumPy 2 (#7367).

Contributors

29 authors added to this release (alphabetically):

21 reviewers added to this release (alphabetically):

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

v0.23.0rc0

1 month ago

v0.22.0

7 months ago

v0.22.0rc1

7 months ago

scikit-image 0.22.0rc1

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

New Features

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

Performance

  • Add lazy loading to the skimage.feature module (#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 num_pixels and coords_scaled to regionprops_table (#7039).
  • Update video.rst (#7076).
  • For uniform intensity images, return intensity value as threshold (#7098).
  • Fix color conversion error (#7116).
  • Make phase_cross_correlation return ndarray when disambiguate=True (#7112).
  • Allow extra_properties of non equal lengths to be passed correctly to regionprops_table (#7136).

API Changes

  • 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).

Maintenance

  • Don't test numpy prerelease on azure (#6996).
  • Drop Python 3.8 support per SPEC 0 (#6990).
  • Upper pin imageio (#7002).
  • Update core dependencies per SPEC0 (#7005).
  • 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).
  • Update lazy_loader (#7043).
  • 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 (#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).

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).
  • Use packaged version of generate_release_notes.py (changelist) (#7049).
  • 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).

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).
  • 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).

Contributors

23 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.

v0.21.0

11 months ago

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)

v0.21.0rc1

11 months ago