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_normalizedgracefully (#7675).In
skimage.feature.BRIEF, copykeypointsif necessary to preserve contiguity (#7692).Revert a previous fix to
skimage.segmentation.watershedthat 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#
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
centroidin__all__of the PYI file inskimage.measure(#7652).Improve numerical stability of
blur_effect(#7643).Because under-determined fits are unreliable,
skimage.measure.EllipseModelwill now warn and returnFalse(no fit) when fewer than 5 data points are provided (#7648).Explicitly upcast
datawith dtypefloat16tofloat32inskimage.segmentation.random_walker; this fixes passingfloat16on NumPy 1.26 (#7655).
Documentation#
Infrastructure#
Maintenance#
Infer floating point type for sigma parameter (#7637).
In
skimage.segmentation.active_contour, change the type of the default argument forw_lineto 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):
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):
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_rectanglesupporting generation of rectangular or hyper-rectangular footprints in one function (#7566).
API Changes#
Complete the deprecation of and remove
skimage.feature.plot_matches. Useskimage.feature.plot_matched_featuresgoing forward (#7487).Deprecate
skimage.io.imshow,skimage.io.imshow_collectionandskimage.io.show. Please usematplotlib,napari, etc. to visualize images (#7508).Remove deprecated
skimage.morphology.skeletonize_3d; useskimage.morphology.skeletonizeinstead (#7572).Deprecate
skimage.ioplugin infrastructure (#7353).Switched to using the
scipy.sparsearray interface. For more details, see the note about the newscipy.sparsearray interface [here](https://docs.scipy.org/doc/scipy/reference/sparse.html) (#7576).Deprecate
skimage.morphology.rectanglein favor of the new functionskimage.morphology.footprint_rectangle(#7566).Deprecate
skimage.morphology.cubein favor of the new functionskimage.morphology.footprint_rectangle(#7566).Deprecate
skimage.morphology.squarein favor of the new functionskimage.morphology.footprint_rectangle(#7566).
Enhancements#
Improve numerical stability of
skimage.morphology.local_minimafor extremely small floats (#7534).Allow passing a sequence of colors to the parameter
matches_colorinskimage.feature.plot_matched_features(#7541).Make sure that
skimage.feature.plot_matched_featuresuses the same random colors, ifmatches_colorisn’t provided explicitly (#7541).
Performance#
skimage.feature.peak_local_maxwill now skip unnecessary distance computations in the case ofmin_distance=1. This results in performance improvements to functions likeskimage.feature.blob_dog,skimage.feature.blob_log,skimage.feature.blob_dohandskimage.feature.corner_peaksthat callpeak_local_maxinternally (#7548).In
skimage.featurepeak_local_max, skip unnecessary check for cases wheremin_distance > 1is passed (#7548).
Bug Fixes#
Ensure that
skimage.morphology.remove_objects_by_distancedoesn’t fail if the given integer dtype cannot be safely cast to the architecture specific size ofintp, e.g. on i386 architectures (#7453).Fix degeneracy in
skimage.draw.ellipsoid_statswhen all semi-axes have the same length (#7473).Prevent
skimage.morphology.thinfrom accidentally modifying the input image in case it is of dtype uint8 (#7469).Fix numerical precision error in
skimage.measure.ransac. In some cases,ransacwas 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
RegionPropertiesobjects returned byskimage.measure.regionpropscan be deserialized with pickle (#7569).Fix edge case where setting
watershed_lines=Trueinskimage.segmentation.watershedresulted in an incorrect solution (#7071).Fix the behavior of
skimage.segmentation.watershedwhen 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_segmentationsifnumpy.uintis 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.cffinstead ofCITATION.bib(#7505).Use correct
spin test --coveragein contribution guide (#7515).Tweak advice to new developers; remove AI warning (#7522).
Rework installation instructions (#7434).
Improve the description of the
imageparameter inskimage.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
radiusinskimage.morphology.ballfrominttofloat(#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
currentmoduledirective 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_cmpunresolved 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_eulerto compute 3D rotation matrix (#7503).Update spin (0.12) (#7532).
Import
lazy_loaderas 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.showandio.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
changelistto 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_registrypackage inconf.pyto keep intersphinx urls up to date. This means that building docs now requires theintersphinx-registrypackage (#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
skimagetop module (#6892).CI pre-commit fix (#7631).
Contributors#
30 authors added to this release (alphabetically):
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):
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._