scikit-image 0.23.0rc2
We're happy to announce the release of scikit-image 0.23.0rc2!
New Features
- Add new
intensity_std
property toskimage.measure.regionprops
which computes the standard deviation of the intensity in a region (#6712). - Add parameters
mode
andcval
toerosion
,dilation
,opening
,closing
,white_tophat
, andblack_tophat
inskimage.morphology
. These new parameters determine how array borders are handled (#6695). - Add functions
mirror_footprint
andpad_footprint
toskimage.morphology
(#6695). - Add parameter
mode
tobinary_erosion
,binary_dilation
,binary_opening
andbinary_closing
inskimage.morphology
. These new parameters determine how array borders are handled (#6695). - Add new parameter
spacing
tosegmentation.expand_labels
to support anisotropic images (#7080).
API Changes
- Drop support for Python 3.9 (#7217).
- Parameters
shift_x
andshift_y
inskimage.morphology.erosion
andskimage.morphology.dilation
are deprecated. Usepad_footprint
or modify the footprint manually instead (#6695). - Remove unexpected value scaling in
skimage.morphology.skeletonize_3d
for non-binary input images.skeletonize_3d
now always returns a binary array like similar functions (#7095). - Deprecate function
skimage.feature.plot_matches
in favor ofskimage.feature.plot_matched_features
(#7255). - Deprecate
skimage.morphology.skeletonize_3d
in favor of just skimage.morphology.skeletonize` (#7094). - Deprecate parameter
output
inskimage.filters.gaussian
; useout
instead (#7225). - Change the default value of the parameters
shift_x
,shift_y
andshift_z
fromFalse
to0
in theskimage.filters.rank
functions. This has not impact on the results. Warn in case boolean shifts are provided from now on (#7320).
Performance
- Add lazy loading to
skimage.metrics
module (#7211). - Speedup
skimage.util.map_array
by parallelization with Cython'sprange
(#7266).
Bug Fixes
- Add exception to avoid surprising result when image is too small for the given parameters in
skimage.feature.hog
(#7153). - Ensure
skimage.morphology.closing
andskimage.morphology.opening
are extensive and anti-extensive, respectively, if the footprint is not mirror symmetric (#6695). - Avoid a TypeError in
skimage.registration.phase_cross_correlation
when the real-time shift cannot be determined (disambiguate=True
). Display a warning instead (#7259). - Fix logic in
skimage.graph.pixel_graph
which raised aTypeError
when the parameteredge_function
was provided without amask
(#7310). - Ensure cache stays empty when
cache=False
is passed toskimage.measure.regionprops
(#7333).
Documentation
- Update instructions for updating dev environment (#7160).
- Make titles in RAG gallery examples more explicit (#7202).
- Add docstring to
skimage.graph
module (#7192). - Use consistent notation for array dimensions in the docstrings (#3031).
- Specify default markers in watershed docstring (#7154).
- Stop HTML documentation from intercepting left and right-arrow keys to improve keyboard accessibility (#7226).
- Fix reference formatting for nitpicky sphinx (#7228).
- Document how to deal with other array-likes such as
xarray.DataArray
andpandas.DataFrame
in the crash course on NumPy for images (#7159). - Fix broken function calls and syntax issues in user guide (#7234).
- Use correct default mode in docstring of
skimage.transform.swirl
(#7241). - Add missing documentation about spacing parameter in
moments_normalized
(#7248). - Update docstring & example in the hough_ellipse transform (#6893).
- Point binder tag/branch to commit corresponding to docs/release (#7252).
- Add example to FundamentalMatrixTransform class (#6863).
- Adds explanation of what the optional dependency on Matplotlib offers to the install instructions (#7286).
- Function docstring was changed to follow the conventions adopted in the original paper. τ was replaced with θ (#7314).
- The description of the parameter cval is modified in "int or float". cval is a numerical value not a string (#7319).
- Remove obsolete instruction about documenting changes (#7321).
- Added comment to clarify that dt corresponds to tau, i.e. the time step. Changed gray scale in grayscale in the entire registration module (#7324).
- Create SECURITY.md (#7230).
- Remove deprecated parameter
coordinates
from docstring example ofskimage.segmentation.active_contour
(#7329). - Include dates in release note headings (#7269).
- Update description of how to document pull requests for inclusion in the release notes (#7267).
- Clarify description of
data_range
parameter inskimage.metrics.structural_similarity
(#7345). - Use object-oriented Matplotlib style in longer gallery examples and demonstrations (doc/examples/applications) (#7346).
Infrastructure
- Update wording on the stale bot to assume the core team dropped the ball (#7196).
- Update Azure job name following the drop of Python 3.9 (#7218).
- Schedule nightly wheel builds at uncommon time (#7254).
- Build nightly wheels with nightly NumPy 2.0 (#7251).
- Use pytest-doctestplus instead of classic pytest-doctest (#7289).
- Update the scientific-python/upload-nightly-action to v0.5.0 for dependency stability and to take advantage of Anaconda Cloud upload bug fixes (#7325).
- Add
assert_stacklevel
helper to check stacklevel of captured warnings (#7294). - Exclude
pre-commit[bot]
from changelist's contributor list (#7358).
Maintenance
- Remove outdated & duplicate "preferred" field in
version_switcher.json
(#7184). - Upgrade to spin 0.7 (#7168).
- Do not compare types, use isinstance (#7186).
- [pre-commit.ci] pre-commit autoupdate (#7181).
- Increase tolerance for moments test for 32 bit floats (#7188).
- Temporarily pin Cython to <3.0.3 until CI is fixed (#7189).
- Remove obsolete meson instructions (#7193).
- Temporarily pin Cython to <3.0.3 until CI is fixed, take 2 (#7201).
- Fix chocolatey (#7200).
- Pin Pillow to <10.1.0 until incompatibility with imageio is fixed (#7208).
- Use Black (#7197).
- Apply black to
_hog.py
after previous merge lacking black (#7215). - Unpin Cython after release of Cython 3.0.4 (#7214).
- [pre-commit.ci] pre-commit autoupdate (#7236).
- Cleanup for Python 3.12 (#7173).
- Make Python 3.12 default CI Python (#7244).
- Add explicit
noexcept
to address Cython 3.0 warnings (#7250). - Update imageio to fix Pillow incompatibility (#7245).
- Upgrade docker/setup-qemu-action to v3 (#7134).
- Fix warningfilter for deprecation in SciPy 1.12.0rc1 (#7275).
- Update to numpy>=1.23 and matplotlib>=3.6 according to SPEC 0 (#7284).
- Add new
deprecate_parameter
helper (#7256). - Update meson and Cython (#7283).
- Handle floating point warning for empty images in
skimage.registration.phase_cross_correlation
(#7287). - Update spin (0.8) (#7285).
- Complete deprecations that were scheduled for our 0.23 release. Remove now unused
deprecate_kwarg
andremove_arg
; they are entirely succeeded bydeprecate_parameter
(#7290). - For security best practices, use the scientific-python/upload-nightly-action GitHub Action from known commit shas that correspond to tagged releases. These can be updated automatically via Dependabot (#7306).
- Update pre-commits repos (#7303).
- The test suite can now be run without
numpydoc
installed (#7307). - Deal with parallel write warning from Pydata theme (#7311).
- Test nightly wheel build with NumPy 2.0 (#7288).
- Make it clear that funcs in
_optical_flow_utils
are private (#7328). - Update dependencies (spec 0) (#7335).
- Follow-up cleaning & fixes for compatibility with NumPy 1 & 2 (#7326).
- Replace ignored teardown with autouse fixture in
test_fits.py
(#7340). - Address new copy semantics & broadcasting in
np.solve
in NumPy 2 (#7341). - Ignore table of execution times by Sphinx gallery (#7327).
- Allow a very small floating point tolerance for pearson test (#7356).
- Update numpydoc to version 1.7 (#7355).
- [pre-commit.ci] pre-commit autoupdate (#7365).
- Simplify warning filters in test suite (#7349).
- Build against NumPy 2 (#7367).
Contributors
29 authors added to this release (alphabetically):
- @GParolini
- @tokiAi
- Adrien Foucart (@adfoucart)
- Anam Fatima (@anamfatima1304)
- Ananya Srivastava (@ana42742)
- Ben Harvie (@benharvie)
- Christian Clauss (@cclauss)
- Cris Luengo (@crisluengo)
- Egor Panfilov (@soupault)
- Grzegorz Bokota (@Czaki)
- Jan Lebert (@sitic)
- Jarrod Millman (@jarrodmillman)
- Jeremy Farrell (@farrjere)
- Juan Nunez-Iglesias (@jni)
- Lars Grüter (@lagru)
- Mao Nishino (@mao1756)
- Marianne Corvellec (@mkcor)
- Mark Harfouche (@hmaarrfk)
- Matthew Feickert (@matthewfeickert)
- Matthew Vine (@MattTheCuber)
- Maxime Corbé (@Maxime-corbe)
- Michał Górny (@mgorny)
- Neil Shephard (@ns-rse)
- Ole Streicher (@olebole)
- Peter Suter (@petsuter)
- Robert Haase (@haesleinhuepf)
- Sean McKinney (@jouyun)
- Stefan van der Walt (@stefanv)
- vfdev (@vfdev-5)
21 reviewers added to this release (alphabetically):
- @GParolini
- Adrien Foucart (@adfoucart)
- Anam Fatima (@anamfatima1304)
- Ben Harvie (@benharvie)
- Christian Clauss (@cclauss)
- Cris Luengo (@crisluengo)
- Egor Panfilov (@soupault)
- Grzegorz Bokota (@Czaki)
- Jarrod Millman (@jarrodmillman)
- Jeremy Farrell (@farrjere)
- Juan Nunez-Iglesias (@jni)
- Lars Grüter (@lagru)
- M Bussonnier (@Carreau)
- Mao Nishino (@mao1756)
- Marianne Corvellec (@mkcor)
- Mark Harfouche (@hmaarrfk)
- Maxime Corbé (@Maxime-corbe)
- P. L. Lim (@pllim)
- Peter Suter (@petsuter)
- Sebastian Berg (@seberg)
- Stefan van der Walt (@stefanv)
These lists are automatically generated, and may not be complete or may contain duplicates.