scikit-image 2.7.0rc0#

We’re happy to announce the release of scikit-image 2.7.0rc0!

New Features#

  • Add a warning when importing experimental skimage2 (#7873).

  • In skimage.feature, add a new parameter prescale to the functions blob_doh, blob_dog``, and blob_log. This parameter controls the internal rescaling behavior which makes it easier to set the threshold parameter correctly (#7858).

API Changes#

  • In skimage.io, remove imshow, imshow_collection, and show. This completes their deprecation. Instead, we recommend using matplotlib, napari, etc. for visualization (#7994).

  • In skimage.feature, deprecate the parameter threshold_rel in blob_doh, blob_dog``, and blob_log. The behavior of the parameters effects were difficult to reason about. Instead, use threshold in conjunction with the new parameter prescale (#7858).

  • In skimage.feature.peak_local_max, use None as the new default for the parameters num_peaks and num_peaks_per_label – the default behavior is the same as before but passing numpy.inf is deprecated (#8039).

Enhancements#

  • In skimage.measure.ransac, add the new optional parameter model_kwargs, which allows forwarding keyword parameters to the model’s from_estimate method. RansacModelProtocol has been updated accordingly (#8015).

  • In skimage.feature.peak_local_max, support passing floats to the parameter min_distance (#8039).

Bug Fixes#

  • In skimage.morphology, fix an unintended change in deprecated behavior in remove_small_objects and remove_small_holes. The deprecation of the parameters min_size and area_threshold introduced 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 (WRITEABLE flag set to False) as input to the parameters input_arr, input_vals, and output_vals (#7535).

  • Ensure skimage.feature.peak_local_max returns results with the correct shape when no peaks where found and labels where 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 using labels and num_peaks as promised (#8167).

  • Honor NumPy’s copy semantics in the __array__ implementations for geometric transforms and ArrayMap (#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=5 from 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 --clean also wipes doc/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_external which automatically sets the correct stacklevel for warnings (#7976).

  • Add skimage2.data.binary_blobs with improved signature compared to the old version in skimage.data. The old version is now a simple wrapper around the implementation in skimage2 (#7976).

  • Port skimage.feature.peak_local_max to skimage2.feature with 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 skimage2 does not eagerly import skimage (#8087).

  • Move skimage2 implementation into _skimage2 (#8093).

  • Add rescaling API to skimage2 (#8075).

  • Port pad_footprint & mirror_footprint to skimage2 (#8094).

  • Move _shared to _skimage2 (#8102).

  • Revert “Add AI contribution policy (#7982)” (#8124).

  • Add skimage2.feature.canny which changes the default of the optional mode parameter from constant to nearest compared to the old version in skimage.data. The old version is now a simple wrapper around the implementation in skimage2 (#8047).

  • Add skimage2 porting decorator (#8114).

  • Port tests for features.canny to 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 gaussian to skimage2.filters (#8069).

  • Set __doctest_requires__ in requires decorator (#7814).

  • Remove port_module script (#8225).

  • Convert contribution guide to Markdown format (#8188).

  • skimage2.graph.pixel_graph and skimage2.metrics.contingency_table always return a scipy.sparse.csr_array and no longer accept a sparse_type parameter. The corresponding skimage functions are unchanged and still return a scipy.sparse.csr_matrix by 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_spacing into skimage2 (#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_similarly to 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_size param in binary_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, create footprint_rectangle_decomposed to cover the decomposition functionality that footprint_rectangle had. footprint_rectangle is now a simple wrapper around numpy.ones (#8244).

  • Tweak AI policy (#8293).

  • Use object-oriented matplotlib style in camera example in documentation (#8257).

  • Make from skimage2.subpackage import X work (#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):

18 reviewers added to this release (alphabetically):

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