scikit-image 0.25.2 (2025-02-18) ================================= We're happy to announce the release of scikit-image 0.25.2! Bug Fixes --------- - Handle random degenerate case in ``skimage.graph.cut_normalized`` gracefully (`#7675 `_). - In ``skimage.feature.BRIEF``, copy ``keypoints`` if necessary to preserve contiguity (`#7692 `_). - Revert a previous fix to ``skimage.segmentation.watershed`` that unintentionally changed the algorithm's behavior for markers placed at maxima in the image. We decided that the behavior originally reported as a bug (gh-6632), is not actually one (`#7702 `_). Documentation ------------- - Improve docstring of ``skimage.restoration.rolling_ball`` (`#7682 `_). Infrastructure -------------- - Only run the job if the PR got merged (vs merely closed) (`#7679 `_). - Fix typo in GH workflow (`#7681 `_). - Refactor GitHub's CI config and helper scripts (`#7672 `_). - Use pytest config in pyproject.toml in CI (`#7555 `_). - Lower CI build verbosity (`#7688 `_). - Port testing on Windows from Azure CI to GitHub's CI (`#7687 `_). - CI cleanup (`#7693 `_). - Simultaneously resolve all dependencies; add pip caching (`#7690 `_). - Reenable graph reproducibility test (`#7694 `_). - Give milestone labeler necessary permissions (`#7695 `_). - Milestone labeler permission not needed (`#7696 `_). - Fix 313t wheel build (`#7699 `_). Maintenance ----------- - Include a missing image in meson.build so they are included in the wheel (`#7660 `_). - Add zizmor to pre-commit; address GH workflow issues raised (`#7662 `_). Contributors ------------ 6 authors added to this release (alphabetically): - Jarrod Millman (`@jarrodmillman `_) - Lars Grüter (`@lagru `_) - Marianne Corvellec (`@mkcor `_) - Matthew Brett (`@matthew-brett `_) - Orion Poplawski (`@opoplawski `_) - Stefan van der Walt (`@stefanv `_) 8 reviewers added to this release (alphabetically): - Jarrod Millman (`@jarrodmillman `_) - Juan Nunez-Iglesias (`@jni `_) - Lars Grüter (`@lagru `_) - Marianne Corvellec (`@mkcor `_) - Mark Harfouche (`@hmaarrfk `_) - Matthew Brett (`@matthew-brett `_) - Ralf Gommers (`@rgommers `_) - Stefan van der Walt (`@stefanv `_) _These lists are automatically generated, and may not be complete or may contain duplicates._ scikit-image 0.25.1 (2025-01-26) ================================ We're happy to announce the release of scikit-image 0.25.1! Bug Fixes --------- - Include ``centroid`` in ``__all__`` of the PYI file in ``skimage.measure`` (`#7652 `_). - Improve numerical stability of ``blur_effect`` (`#7643 `_). - Because under-determined fits are unreliable, ``skimage.measure.EllipseModel`` will now warn and return ``False`` (no fit) when fewer than 5 data points are provided (`#7648 `_). - Explicitly upcast ``data`` with dtype ``float16`` to ``float32`` in ``skimage.segmentation.random_walker``; this fixes passing ``float16`` on NumPy 1.26 (`#7655 `_). Documentation ------------- - Don't use removed ``QuadContourSet.collections`` in gallery example (`#7638 `_). - Change old import convention in the gallery examples (`#7630 `_). Infrastructure -------------- - Make apigen.py work with editable hooks (`#7647 `_). - Build Linux ARM wheels natively (`#7664 `_). Maintenance ----------- - Infer floating point type for sigma parameter (`#7637 `_). - In ``skimage.segmentation.active_contour``, change the type of the default argument for ``w_line`` to indicate it is a float (`#7645 `_). - Temporarily disable parallel building of gallery (`#7656 `_). - [pre-commit.ci] pre-commit autoupdate (`#7649 `_). - Skip flaky test on azure (`#7669 `_). Contributors ------------ 8 authors added to this release (alphabetically): - `@michaelbratsch `_ - `@scrimpys `_ - Jarrod Millman (`@jarrodmillman `_) - Jigyasu (`@jgyasu `_) - kwikwag (`@kwikwag `_) - Lars Grüter (`@lagru `_) - Marianne Corvellec (`@mkcor `_) - Stefan van der Walt (`@stefanv `_) 8 reviewers added to this release (alphabetically): - `@michaelbratsch `_ - Dan Schult (`@dschult `_) - Jarrod Millman (`@jarrodmillman `_) - Jigyasu (`@jgyasu `_) - Lars Grüter (`@lagru `_) - Marianne Corvellec (`@mkcor `_) - Ruth Comer (`@rcomer `_) - Stefan van der Walt (`@stefanv `_) _These lists are automatically generated, and may not be complete or may contain duplicates._ scikit-image 0.25.0 (2024-12-13) ================================ We're happy to announce the release of scikit-image 0.25.0! New Features ------------ - Add the new Gray-Level Co-occurrence Matrix (GLCM) properties "mean", "variance", "standard deviation" and "entropy" to ``skimage.feature.texture.graycoprops`` (`#7375 `_). - Add the new ``skimage.morphology.footprint_rectangle`` supporting generation of rectangular or hyper-rectangular footprints in one function (`#7566 `_). API Changes ----------- - Complete the deprecation of and remove ``skimage.feature.plot_matches``. Use ``skimage.feature.plot_matched_features`` going forward (`#7487 `_). - Deprecate ``skimage.io.imshow``, ``skimage.io.imshow_collection`` and ``skimage.io.show``. Please use ``matplotlib``, ``napari``, etc. to visualize images (`#7508 `_). - Remove deprecated ``skimage.morphology.skeletonize_3d``; use ``skimage.morphology.skeletonize`` instead (`#7572 `_). - Deprecate ``skimage.io`` plugin infrastructure (`#7353 `_). - Switched to using the ``scipy.sparse`` array interface. For more details, see the note about the new ``scipy.sparse`` array interface [here](https://docs.scipy.org/doc/scipy/reference/sparse.html) (`#7576 `_). - Deprecate ``skimage.morphology.rectangle`` in favor of the new function ``skimage.morphology.footprint_rectangle`` (`#7566 `_). - Deprecate ``skimage.morphology.cube`` in favor of the new function ``skimage.morphology.footprint_rectangle`` (`#7566 `_). - Deprecate ``skimage.morphology.square`` in favor of the new function ``skimage.morphology.footprint_rectangle`` (`#7566 `_). Enhancements ------------ - Improve numerical stability of ``skimage.morphology.local_minima`` for extremely small floats (`#7534 `_). - Allow passing a sequence of colors to the parameter ``matches_color`` in ``skimage.feature.plot_matched_features`` (`#7541 `_). - Make sure that ``skimage.feature.plot_matched_features`` uses the same random colors, if ``matches_color`` isn't provided explicitly (`#7541 `_). Performance ----------- - ``skimage.feature.peak_local_max`` will now skip unnecessary distance computations in the case of ``min_distance=1``. This results in performance improvements to functions like ``skimage.feature.blob_dog``, ``skimage.feature.blob_log``, ``skimage.feature.blob_doh`` and ``skimage.feature.corner_peaks`` that call ``peak_local_max`` internally (`#7548 `_). - In ``skimage.featurepeak_local_max``, skip unnecessary check for cases where ``min_distance > 1`` is passed (`#7548 `_). Bug Fixes --------- - Ensure that ``skimage.morphology.remove_objects_by_distance`` doesn't fail if the given integer dtype cannot be safely cast to the architecture specific size of ``intp``, e.g. on i386 architectures (`#7453 `_). - Fix degeneracy in ``skimage.draw.ellipsoid_stats`` when all semi-axes have the same length (`#7473 `_). - Prevent ``skimage.morphology.thin`` from accidentally modifying the input image in case it is of dtype uint8 (`#7469 `_). - Fix numerical precision error in ``skimage.measure.ransac``. In some cases, ``ransac`` was stopping at the first iteration (`#7065 `_). - Fix numerical precision error in ``skimage.measure.ransac``; very small probabilities lead to -0 number of max trials (`#7496 `_). - Ensure that ``RegionProperties`` objects returned by ``skimage.measure.regionprops`` can be deserialized with pickle (`#7569 `_). - Fix edge case where setting ``watershed_lines=True`` in ``skimage.segmentation.watershed`` resulted in an incorrect solution (`#7071 `_). - Fix the behavior of ``skimage.segmentation.watershed`` when the markers don't align with local minima by making sure every marker is evaluated before successive pixels (`#7071 `_). - Fix dtype promotion in ``skimage.segmentation.join_segmentations`` if ``numpy.uint`` is used with NumPy<2 (`#7292 `_). Documentation ------------- - In ``skimage.morphology.skeletonize``, clarify the expected image dtypes and how objects of different intensities are handled (`#7456 `_). - Fix example section in docstring of ``skimage.feature.graycomatrix`` (`#7297 `_). - Use conda-forge consistently in instructions for setting up the development environment (`#7483 `_). - Use new ``CITATION.cff`` instead of ``CITATION.bib`` (`#7505 `_). - Use correct ``spin test --coverage`` in contribution guide (`#7515 `_). - Tweak advice to new developers; remove AI warning (`#7522 `_). - Rework installation instructions (`#7434 `_). - Improve the description of the ``image`` parameter in ``skimage.restoration.richardson_lucy`` (`#7477 `_). - Account for empty arrays when counting segments per contour level in gallery example "Segment human cells (in mitosis)" (`#7551 `_). - Fix typo in morphology doc (`#7606 `_). - Change type description of parameter ``radius`` in ``skimage.morphology.ball`` from ``int`` to ``float`` (`#7627 `_). Infrastructure -------------- - Fix CI tests with minimal dependencies and make dependency resolution more robust (`#7462 `_). - Add CI to test scikit-image against free-threaded Python 3.13 (`#7463 `_). - Address autosummary.import_cycle warning (`#7486 `_). - Temporarily exclude Dask 2024.8.0 to fix CI (`#7493 `_). - Uncomment ``currentmodule`` directive again (`#7492 `_). - Add CI to release nightly free-threaded wheels (`#7481 `_). - Update deprecated configuration (`#7501 `_). - Bump spin version to 0.11 (`#7507 `_). - Ensure only a single ``type:`` label is present in PRs (`#7512 `_). - Update pydata-sphinx-theme (`#7511 `_). - Fix OpenBLAS ``s_cmp`` unresolved symbol error, update Emscripten CI testing (`#7525 `_). - Render paragraphs in dormant message (`#7549 `_). - Build sphinx documentation with parallel jobs (`#7579 `_). - Don't check test coverage in CI (`#7594 `_). - Explicitly setup conda on macos for wheel building (`#7608 `_). Maintenance ----------- - Verify all artifacts that have been attested by looping over them in CI (`#7447 `_). - Update circleci-artifacts-redirector-action that moved to the Scientific Python org (`#7446 `_). - Use NumPy 2.0 stable to build packages (`#7451 `_). - FIX Use python3 in Meson version script shebang (`#7482 `_). - Refactored tests for skeletonize (`#7459 `_). - Remove unused and deprecated dependency pytest-runner (`#7495 `_). - Exclude imageio 2.35.0 that forces numpy downgrade (`#7502 `_). - Don't test thresholding funcs for Dask compatibility (`#7509 `_). - Fix build dependency (`#7510 `_). - Add sdist check to ``spin sdist`` (`#7438 `_). - Reorder items in TODO list (`#7519 `_). - Use ``Rotation.from_euler`` to compute 3D rotation matrix (`#7503 `_). - Update spin (0.12) (`#7532 `_). - Import ``lazy_loader`` as private symbol in top-level namespaces (`#7540 `_). - Set -DNPY_NO_DEPRECATED_API=NPY_1_23_API_VERSION on build (`#7538 `_). - Update up/download artifact version (`#7545 `_). - Don't use deprecated ``io.show`` and ``io.imshow`` (`#7556 `_). - Hide traceback inside ``assert_stacklevel`` (`#7558 `_). - Update pre-commit versions (`#7560 `_). - Drop Python 3.9 support (`#7561 `_). - Update minimum dependencies (SPEC 0) (`#7562 `_). - Remove unused PYX files in io/_plugins (`#7557 `_). - Support Python 3.13 (`#7565 `_). - During deprecation cycles, preserve the value of deprecated parameters that don't have a new parameter as a replacement (`#7552 `_). - Fix missing minigalleries by using full names in directives (`#7567 `_). - Build Python 3.13 wheels (`#7571 `_). - Update TODO (`#7573 `_). - Remove deprecated gaussian output parameter (`#7574 `_). - Test Py3.13 on windows (`#7578 `_). - Update ruff linter / formatter (`#7580 `_). - Fix formatting issues (`#7581 `_). - CI: bump macos image pin from 12 to 13 (`#7582 `_). - Update build dependencies (`#7587 `_). - Update minimum supported pyamg (`#7586 `_). - Update documentation dependencies (`#7590 `_). - Bump ``changelist`` to v0.5 (`#7601 `_). - Pin kaleido to 0.2.1 (`#7612 `_). - Update upload-nightly-action (`#7609 `_). - Update pillow (`#7615 `_). - Remove Python 2.7 cruft (`#7616 `_). - Use ``intersphinx_registry`` package in ``conf.py`` to keep intersphinx urls up to date. This means that building docs now requires the ``intersphinx-registry`` package (`#7611 `_). - Update build dependencies (`#7614 `_). - Update file extension and reformat Markdown file (`#7617 `_). - Add forgotten TODO about deprecated ``square``, ``cube`` & ``rectangle`` (`#7624 `_). - Upgrade to spin 0.13 (`#7622 `_). - Lazy load legacy imports in ``skimage`` top module (`#6892 `_). - CI pre-commit fix (`#7631 `_). Contributors ------------ 30 authors added to this release (alphabetically): - `@aeisenbarth `_ - `@FedericoWZhaw `_ - `@jakirkham `_ - `@michaelbratsch `_ - Adeyemi Biola (`@decorouz `_) - Aditi Juneja (`@Schefflera-Arboricola `_) - Agriya Khetarpal (`@agriyakhetarpal `_) - Brigitta Sipőcz (`@bsipocz `_) - Dan Schult (`@dschult `_) - Edgar Andrés Margffoy Tuay (`@andfoy `_) - Egor Panfilov (`@soupault `_) - Erik Welch (`@eriknw `_) - Gianluca (`@geeanlooca `_) - Gregory Lee (`@grlee77 `_) - Hayato Ikoma (`@hayatoikoma `_) - Henrik Finsberg (`@finsberg `_) - Jarrod Millman (`@jarrodmillman `_) - Jordão Bragantini (`@JoOkuma `_) - João Seródio (`@SerodioJ `_) - Kushaan Gupta (`@kushaangupta `_) - Lars Grüter (`@lagru `_) - Loïc Estève (`@lesteve `_) - M Bussonnier (`@Carreau `_) - Marianne Corvellec (`@mkcor `_) - Mark Harfouche (`@hmaarrfk `_) - Matthew Feickert (`@matthewfeickert `_) - Paritosh Dahiya (`@hnhparitosh `_) - Piyush Amitabh (`@pamitabh `_) - Ricky Walsh (`@rickymwalsh `_) - Stefan van der Walt (`@stefanv `_) 25 reviewers added to this release (alphabetically): - `@aeisenbarth `_ - `@FedericoWZhaw `_ - `@jakirkham `_ - `@michaelbratsch `_ - Agriya Khetarpal (`@agriyakhetarpal `_) - Brigitta Sipőcz (`@bsipocz `_) - Dan Schult (`@dschult `_) - Edgar Andrés Margffoy Tuay (`@andfoy `_) - Egor Panfilov (`@soupault `_) - Gianluca (`@geeanlooca `_) - Gregory Lee (`@grlee77 `_) - Hayato Ikoma (`@hayatoikoma `_) - Jarrod Millman (`@jarrodmillman `_) - Jordão Bragantini (`@JoOkuma `_) - João Seródio (`@SerodioJ `_) - Juan Nunez-Iglesias (`@jni `_) - Kushaan Gupta (`@kushaangupta `_) - Lars Grüter (`@lagru `_) - Marianne Corvellec (`@mkcor `_) - Mark Harfouche (`@hmaarrfk `_) - Matthew Feickert (`@matthewfeickert `_) - Nathan Goldbaum (`@ngoldbaum `_) - Piyush Amitabh (`@pamitabh `_) - Ralf Gommers (`@rgommers `_) - Stefan van der Walt (`@stefanv `_) _These lists are automatically generated, and may not be complete or may contain duplicates._