scikit-image 2.7.0rc0#
Weâre happy to announce the release of scikit-image 2.7.0rc0!
New Features#
API Changes#
In
skimage.io, removeimshow,imshow_collection, andshow. This completes their deprecation. Instead, we recommend using matplotlib, napari, etc. for visualization (#7994).In
skimage.feature, deprecate the parameterthreshold_relinblob_doh, blob_dog``, andblob_log. The behavior of the parameters effects were difficult to reason about. Instead, usethresholdin conjunction with the new parameterprescale(#7858).In
skimage.feature.peak_local_max, useNoneas the new default for the parametersnum_peaksandnum_peaks_per_labelâ the default behavior is the same as before but passingnumpy.infis deprecated (#8039).
Enhancements#
In
skimage.measure.ransac, add the new optional parametermodel_kwargs, which allows forwarding keyword parameters to the modelâsfrom_estimatemethod.RansacModelProtocolhas been updated accordingly (#8015).In
skimage.feature.peak_local_max, support passing floats to the parametermin_distance(#8039).
Bug Fixes#
In
skimage.morphology, fix an unintended change in deprecated behavior inremove_small_objectsandremove_small_holes. The deprecation of the parametersmin_sizeandarea_thresholdintroduced an off-by-one error when using them (#8003).Donât override users test selection with
spin test(#7889).In
skimage.util.map_array, allow read-only arrays (WRITEABLEflag set toFalse) as input to the parametersinput_arr,input_vals, andoutput_vals(#7535).Ensure
skimage.feature.peak_local_maxreturns results with the correct shape when no peaks where found andlabelswhere given (#8039).Undo (double) mirroring in
ski2.morphology.dilation(#8060).Unwrap seed refactor (#8142).
Fix structural_similarity win_size / gaussian_weights conflict (#8162).
In
skimage.feature.corner_peaks, return peaks in intensity order when usinglabelsandnum_peaksas promised (#8167).Honor NumPyâs
copysemantics in the__array__implementations for geometric transforms andArrayMap(#8279).
Documentation#
Use consistent naming for release notes (#7992).
Update SKIP 4 âTransitioning to scikit-image 2.0â (#7866).
Fix source links in HTML docs after switch to src-layout (#8044).
Fix conventions following docstub and misc (#8055).
Add initial AI contribution policy (#7982).
Restore wording of AI policy (#8123).
Document warn_external in contributing guide (#8163).
docs: make source install instructions more discoverable and add build requirements to top level requirements file (#8165).
One page per function / class in HTML docs for skimage2 (#8154).
Update SKIP 4 (import hierarchy, backporting, testing) (#8097).
Reword note on masked arrays (#8002).
Update AI usage guideline (#8272).
Improve docstring of
skimage2.data.binary_blobs(#8294).Document how to run doctests only (#8134).
Update AI policy in response to recent experience (#8313).
Split contribution guide into separate, smaller, and more focused documents (#8344).
Infrastructure#
Ignore pyparsing DeprecationWarning caused by matplotlib (#7999).
Donât trigger âRelease wheelsâ workflow on pyproject.toml change (#7995).
Update docstub to version 0.6 (#8013).
Run docstub on skimage2 namespace too (#8021).
Add coderabbit review config (#8032).
Adjust coderabbit config to better fit our development style (#8035).
Donât override users test selection with
spin test(#7889).Try to make coderabbit respect exisiting type labels (#8042).
Fix GIL being re-enabled by C++ extensions (#8059).
Turn off coderabbit auto-labeling & label checks (#8070).
Build HTML API reference for skimage2 (#8111).
Refactor migration doctests and run as tests (#8133).
Update pyodide CI test to match the pattern used by numpy (#8140).
Drop Python 3.11 Support (#8153).
CI: Fix emscripten dependencies and clean up wheel test commands (#8147).
ci: Remove llvm build and add ccache support on windows (#8164).
Drop
--maxfail=5from local pytest config (#8170).Doctest migration in PRs & on all platforms (#8141).
ci: improve handling of pr labels (#8169).
CI: Use ccache on macos (#8185).
ci: fix ccache reporting on windows and linux (#8187).
CI: Fix module discovery when using spin test flags (#8173).
Reduce manual work when using
ski2_migration_decorator(#8179).Add pip-only dependencies to environment.yml (#8144).
Update mailmap and add mailmap checker (#7984).
Ignore pyenv virtualenv env name marker (#8233).
Ensure
spin docs --cleanalso wipesdoc/source/api2(#8247).Update pre-commit hooks (#8282).
Fix test suite startup penalty due to accidental binary_blobs input (#8294).
Add support for Python 3.15, including free-threaded 3.15t, and publish cp315 wheels (#8292).
Bump kaleido to >=1.0 and provision Chrome for doc builds (#8308).
Fix error reporting (#8076).
Update zizmor to new location (#8351).
CI: Add native Linux ARM64 build and test coverage (#8359).
Bump the actions group across 1 directory with 11 updates (#8365).
Add meson option to exclude v2 namespace (#8369).
Maintenance#
Handle PIL Image.getdata deprecation (#8010).
Fix array doctype syntax & other small docstub fixes (#8011).
Fix invalid syntax (M, N) ndarray: docstub fixes (III) (#8014).
Fix invalid syntax (âĶ, C=3, âĶ) ndarray: docstub fixes (VI) (#8026).
Fix invalid syntax 2-D array: docstub fixes (IV) (#8023).
Address docstub errors (V) (#8024).
Fix invalid syntax (N, 2) array: docstub fixes (VII) (#8027).
Bump docstub to v0.7.0rc0 and fix errors (8) (#8028).
Fix Unknown name in doctype: âdata-typeâ docstub error (10) (#8036).
Add a warning when importing experimental skimage2 (#7873).
Add
skimage._shared._warnings.warn_externalwhich automatically sets the correct stacklevel for warnings (#7976).Add
skimage2.data.binary_blobswith improved signature compared to the old version inskimage.data. The old version is now a simple wrapper around the implementation inskimage2(#7976).Port
skimage.feature.peak_local_maxtoskimage2.featurewith a clearer API and improved defaults (#8039).Port grayscale morphology operators to skimage2 (#8046).
Avoid circular import in
feature/corner.py(#8077).Avoid deprecated assign to ndarray.shape (#8020).
MAINT: make ellipse fitting forward compatible (#8054).
Use lazy-loader 0.5 (#8080).
Ensure that
skimage2does not eagerly importskimage(#8087).Move
skimage2implementation into_skimage2(#8093).Add rescaling API to skimage2 (#8075).
Port
pad_footprint&mirror_footprinttoskimage2(#8094).Move
_sharedto_skimage2(#8102).Revert âAdd AI contribution policy (#7982)â (#8124).
Add
skimage2.feature.cannywhich changes the default of the optionalmodeparameter fromconstanttonearestcompared to the old version inskimage.data. The old version is now a simple wrapper around the implementation inskimage2(#8047).Add skimage2 porting decorator (#8114).
Port tests for
features.cannyto skimage2 (#8126).Improve inserted docstring note of
deprecated_func(#8095).Suppress tifffile DeprecationWarning in test_plugin_deprecation_on_imread (#8138).
Drop Python 3.11 Support (#8153).
Fix minkowski distanced invocation for SciPy >= 1.18 (#8157).
Update deprecated scipy distance function and address underspecified test (#8156).
Static inline for
__inline(#8159).Port
gaussiantoskimage2.filters(#8069).Set
__doctest_requires__in requires decorator (#7814).Remove port_module script (#8225).
Convert contribution guide to Markdown format (#8188).
skimage2.graph.pixel_graphandskimage2.metrics.contingency_tablealways return ascipy.sparse.csr_arrayand no longer accept asparse_typeparameter. The correspondingskimagefunctions are unchanged and still return ascipy.sparse.csr_matrixby default (#8287).Update lazy-loader (#8340).
Test new milestone action (#8354).
Test new attach-milestone action (#8355).
Update minimum dependencies (SPEC 0) (#8356).
Other#
Move
ensure_spacingintoskimage2(#8067).Grammar (#8091).
Drop 3.13t builds from cibuildwheel configuration (#8127).
Test with pythonoptimize (#8108).
Disable tests using matplotlib on pyodide (#8082).
The scikit-image test suite was updated to avoid using the global NumPy RNG. This makes it safe to run multiple tests simultaneously without any cross-talk (#8084).
Use ccache and reuse builds on Linux (#8106).
make spin build requirement a lower bound (#8158).
Port
structural_similarlyto ski2 (#8104).Test only changed subpackages (#8103).
Pin minimum pytest to 9 (#8174).
Refactor, document migration utilities (#8184).
The project now has testing on the free-threaded-build using pytest-run-parallel to detect thread safety issues (#8065).
TST: delete unnecessary pytest thread-unsafe marks (#8190).
DOC: unmatched backtick (#8205).
Fix flaky unit test
test_structural_similarity(#8208).Allow positional
blob_sizeparam inbinary_blobs(#8214).Move source to _skimage2, copy tests (#8204).
Copy color data files back to tests/skimage (#8229).
Harmonize doctest imports (#8234).
Skimage2 -> Skimage1 doctest postprocessing (#8219).
Switch to using redirector app (#8266).
Fix resize_local_mean output shape with non-last channel axis (#8281).
In
skimage2.morphology, createfootprint_rectangle_decomposedto cover the decomposition functionality thatfootprint_rectanglehad.footprint_rectangleis now a simple wrapper aroundnumpy.ones(#8244).Tweak AI policy (#8293).
Use object-oriented matplotlib style in camera example in documentation (#8257).
Make
from skimage2.subpackage import Xwork (#8310).Fix typo in astronaut docstring (#8246).
DOC: note radians where missing, or incorrect (#8329).
Fix flaky test_ensure_spacing_max_batch_size (#8338).
Add guard for parallel execution error (#8336).
Fix for Meijering alpha default (#8333).
Raise ValueError in SIFT when sigma_in > sigma_min / upsampling (#8304).
mailmap: add left-out alias for Tony Yu (#8352).
Simplify / humanize the meijering alpha tests (#8350).
Contributors#
22 authors added to this release (alphabetically):
A Aswanth Raj (@aswanth-07)
Edgar AndrÃĐs Margffoy Tuay (@andfoy)
Eric Larson (@larsoner)
Evgeni Burovski (@ev-br)
Francesco Siciliani (@sici17)
Jarrod Millman (@jarrodmillman)
Jeff (@jdotc1)
Jeremy Muhlich (@jmuhlich)
Juan Nunez-Iglesias (@jni)
Lars GrÞter (@lagru)
M Bussonnier (@Carreau)
Marianne Corvellec (@mkcor)
Matthew Brett (@matthew-brett)
Nathan Goldbaum (@ngoldbaum)
NIKHIL (@Nikhi00718)
Rafael Tappe Maestro (@Wehzie)
Ravi Kumar (@ravikumar266)
Stefan van der Walt (@stefanv)
Steven Silvester (@blink1073)
18 reviewers added to this release (alphabetically):
Curtis Rueden (@ctrueden)
Evgeni Burovski (@ev-br)
Igor Stadnyk (@fallenmi)
Jarrod Millman (@jarrodmillman)
Jeff (@jdotc1)
Juan Nunez-Iglesias (@jni)
Lars GrÞter (@lagru)
Marianne Corvellec (@mkcor)
Mark Harfouche (@hmaarrfk)
Matthew Brett (@matthew-brett)
Nathan Goldbaum (@ngoldbaum)
Ravi Kumar (@ravikumar266)
Stefan van der Walt (@stefanv)
Steven Silvester (@blink1073)
_These lists are automatically generated, and may not be complete or may contain duplicates._