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
A highlight of this release is the addition of the popular scale-invariant feature transform (SIFT) feature detector and descriptor. This release also
introduces a perceptual blur metric, new pixel graph algorithms, and most functions now operate in single-precision when single-precision inputs are provided. Many other bug fixes, enhancements and performance improvements are detailed below.
A significant change in this release is in the treatment of multichannel images. The existing multichannel argument to functions has been deprecated in favor of a new channel_axis argument. channel_axis can be used to specify which axis of an array contains channel information (with channel_axis=None indicating a grayscale image).
scikit-image now uses "lazy loading", which enables users to access the functions from all skimage submodules without the overhead of eagerly importing all submodules. As a concrete example, after calling "import skimage" a user can directly call a function such as skimage.transform.warp whereas previously it would have been required to first "import skimage.transform".
An exciting change on the development side is the introduction of support for Pythran as an alternative to Cython for generating compiled code. We plan to keep Cython support as well going forward, so developers are free to use either one as appropriate. For those curious about Pythran, a good overview was given in the SciPy 2021 presentation, "Building SciPy Kernels with Pythran" (https://www.youtube.com/watch?v=6a9D9WL6ZjQ).
This release now supports 3.7-3.10. Apple M1 architecture (arm64) support is new to this release. MacOS 12 wheels are provided for Python 3.8-3.10.
New Features
Added support for processing images with channels located along any array axis. This is in contrast to previous releases where channels were required to be the last axis of an image. See more info on the new channel_axis argument under the API section of the release notes.
A no-reference measure of perceptual blur was added (skimage.measure.blur_effect).
Non-local means (skimage.restoration.denoise_nl_means) now supports 3D multichannel, 4D and 4D multichannel data when fast_mode=True.
An n-dimensional Fourier-domain Butterworth filter (skimage.filters.butterworth) was added.
Color conversion functions now have a new channel_axis keyword argument that allows specification of which axis of an array corresponds to channels. For backwards compatibility, this parameter defaults to channel_axis=-1, indicating that channels are along the last axis.
Added a new keyword only parameter random_state to morphology.medial_axis and restoration.unsupervised_wiener.
Seeding random number generators will not give the same results as the underlying generator was updated to use numpy.random.Generator.
Added saturation parameter to skimage.color.label2rgb
Added normalized mutual information metric skimage.metrics.normalized_mutual_information
threshold_local now supports n-dimensional inputs and anisotropic block_size
New skimage.util.label_points function for assigning labels to points.
Added nD support to several geometric transform classes
Added skimage.metrics.hausdorff_pair to find points separated by the Hausdorff distance.
Additional colorspace illuminants and observers parameter options were added to skimage.color.lab2rgb, skimage.color.rgb2lab,
skimage.color.xyz2lab, skimage.color.lab2xyz, skimage.color.xyz2luv and skimage.color.luv2xyz.
skimage.filters.threshold_multiotsu has a new hist keyword argument to allow use with a user-supplied histogram. (gh-5543)
skimage.restoration.denoise_bilateral added support for images containing negative values. (gh-5527)
The skimage.feature functions blob_dog, blob_doh and blob_log now support a threshold_rel keyword argument that can be used to specify a relative threshold (in range [0, 1]) rather than an absolute one. (gh-5517)
Implement weighted estimation of geometric transform matrices (gh-5601)
Added new pixel graph algorithms in skimage.graph: pixel_graph generates a graph (network) of pixels according to their adjacency, and central_pixel finds the geodesic center of the pixels. (gh-5602)
scikit-image now supports use of Pythran in contributed code. (gh-3226)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps scikit-image from 0.18.3 to 0.19.0.
Release notes
Sourced from scikit-image's releases.
... (truncated)
Commits
812e21e
bump version to 0.19.0d0da56b
Update v0.19.0 release notes (#6084)6ee7e53
Backport PR #6075: Fix API docs autogeneration for lazy loaded subpackages (#...8d1a778
Merge pull request #6081 from grlee77/backport-60738508fcb
remove comment from have_numpydoc729bcfa
Handle autoupdate of docstrings to mention deprecated parameters in deprecate...efd2533
add MacOS arm64 wheels (#6068)ac472aa
Merge pull request #6063 from meeseeksmachine/auto-backport-of-pr-6060-on-v0....d64cc64
Backport PR #6060: Fix test failures observed with numpy 1.22rc0c1c3574
Merge pull request #6062 from meeseeksmachine/auto-backport-of-pr-6061-on-v0....Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)