Skip to content

Releases: scikit-image/scikit-image

v0.21.0rc0

12 Apr 06:50
v0.21.0rc0
Compare
Choose a tag to compare
v0.21.0rc0 Pre-release
Pre-release
signed 0.21.0rc0 tag

v0.20.0

28 Feb 23:32
v0.20.0
Compare
Choose a tag to compare

Announcement: scikit-image 0.20.0

scikit-image is an image processing toolbox built on 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

With this release, many of the functions in skimage.measure now support anisotropic images with different voxel spacings.

Many performance improvements were made, such as support for footprint decomposition in skimage.morphology

Four new gallery examples were added to the documentation, including the new interactive example "Track solidification of a metallic alloy".

This release completes the transition to a more flexible channel_axis parameter for indicating multi-channel images, and includes several other deprecations that make the API more consistent and expressive.

Finally, in preparation for the removal of distutils in the upcoming Python 3.12 release, we replaced our build system with meson and a static pyproject.toml specification.

This release supports Python 3.8--3.11.

New features and improvements

  • Support footprint decomposition to several footprint generating and consuming functions in skimage.morphology. By decomposing a footprint into several smaller ones, morphological operations can potentially be sped up. The decomposed footprint can be generated with the new decomposition parameter of the functions rectangle, diamond, disk, cube, octahedron, ball, and octagon in skimage.morphology. The footprint parameter of the functions binary_erosion, binary_dilation, binary_opening, binary_closing, erosion, dilation, opening, closing, white_tophat, and black_tophat in skimage.morphology now accepts a sequence of 2-element tuples (footprint_i, num_iter_i) where each entry, i, of the sequence contains a footprint and the number of times it should be iteratively applied. This is the form produced by the footprint decompositions mentioned above (#5482, #6151).
  • Support anisotropic images with different voxel spacings. Spacings can be defined with the new parameter spacing of the following functions in skimage.measure: regionprops, regionprops_table, moments, moments_central, moments_normalized, centroid, inertia_tensor, and inertia_tensor_eigvals. Voxel spacing is taken into account for the following existing properties in skimage.measure.regionprops: area, area_bbox, centroid, area_convex, extent, feret_diameter_max, area_filled, inertia_tensor, moments, moments_central, moments_hu, moments_normalized, perimeter, perimeter_crofton, solidity, moments_weighted_central, and moments_weighted_hu. The new properties num_pixels and coords_scaled are available as well. See the respective docstrings for more details (#6296).
  • Add isotropic binary morphological operators isotropic_closing, isotropic_dilation, isotropic_erosion, and isotropic_opening in skimage.morphology. These functions return the same results as their non-isotropic counterparts but perform faster for large circular structuring elements (#6492).
  • Add new colocalization metrics pearson_corr_coeff, manders_coloc_coeff, manders_overlap_coeff and intersection_coeff to skimage.measure (#6189).
  • Support the Modified Hausdorff Distance (MHD) metric in skimage.metrics.hausdorff_distance via the new parameter method. The MHD can be more robust against outliers than the directed Hausdorff Distance (HD) (#5581).
  • Add two datasets skimage.data.protein_transport and skimage.data.nickel_solidification (#6087).
  • Add new parameter use_gaussian_derivatives to skimage.feature.hessian_matrix which allows the computation of the Hessian matrix by convolving with Gaussian derivatives (#6149).
  • Add new parameters squared_butterworth and npad to skimage.filters.butterworth, which support traditional or squared filtering and edge padding, respectively (#6251).
  • Support construction of a skimage.io.ImageCollection from a load_pattern with an arbitrary sequence as long as a matching load_func is provided (#6276).
  • Add new parameter alpha to skimage.metrics.adapted_rand_error allowing control over the weight given to precision and recall (#6472).
  • Add new parameter binarize to skimage.measure.grid_points_in_poly to optionally return labels that tell whether a pixel is inside, outside, or on the border of the polygon (#6515).
  • Add new parameter include_borders to skimage.measure.convex_hull_image to optionally exclude vertices or edges from the final hull mask (#6515).
  • Add new parameter offsets to skimage.measure.regionprops that optionally allows specifying the coordinates of the origin and affects the properties coords_scaled and coords (#3706).
  • Add new parameter disambiguate to skimage.registration.phase_cross_correlation to optionally disambiguate periodic shifts (#6617).
  • Support n-dimensional images in skimage.filters.farid (Farid & Simoncelli filter) (#6257).
  • Support n-dimensional images in skimage.restoration.wiener (#6454).
  • Support three dimensions for the properties rotation and translation in skimage.transform.EuclideanTransform as well as for skimage.transform.SimilarityTransform.scale (#6367).
  • Allow footprints with non-adjacent pixels as neighbors in skimage.morphology.flood_fill (#6236).
  • Support array-likes consistently in AffineTransform, EssentialMatrixTransform, EuclideanTransform, FundamentalMatrixTransform, GeometricTransform, PiecewiseAffineTransform, PolynomialTransform, ProjectiveTransform, SimilarityTransform, estimate_transform, and matrix_transform in skimage.transform (#6270).

Performance

  • Improve performance (~2x speedup) of skimage.feature.canny by porting a part of its implementation to Cython (#6387).
  • Improve performance (~2x speedup) of skimage.feature.hessian_matrix_eigvals and 2D skimage.feature.structure_tensor_eigenvalues (#6441).
  • Improve performance of skimage.measure.moments_central by avoiding redundant computations (#6188).
  • Reduce import time of skimage.io by loading the matplotlib plugin only when required (#6550).
  • Incorporate RANSAC improvements from scikit-learn into skimage.measure.ransac which decrease the number of iterations (#6046).
  • Improve histogram matching performance on unsigned integer data with skimage.exposure.match_histograms. (#6209, #6354).
  • Reduce memory consumption of the ridge filters meijering, sato, frangi, and hessian in skimage.filters (#6509).
  • Reduce memory consumption of blob_dog, blob_log, and blob_doh in skimage.feature (#6597).
  • Use minimal required unsigned integer size internally in skimage.morphology.reconstruction which allows to operate the function with higher precision or on larger arrays. Previously, int32 was used. (#6342).
  • Use minimal required unsigned integer size in skimage.filters.rank_order which allows to operate the function with higher precision or on larger arrays. Previously, the returned labels and original_values were always of type uint32. (#6342).

Changes and new deprecations

  • Set Python 3.8 as the minimal supported version (#6679).
  • Rewrite skimage.filters.meijering, skimage.filters.sato, skimage.filters.frangi, and skimage.filters.hessian to match the published algorithms more closely. This change is backward incompatible and will lead to different output values compared to the previous implementation. The Hessian matrix calculation is now done more accurately. The filters will now be correctly set to zero whenever one of the Hessian eigenvalues has a sign which is incompatible with a ridge of the desired polarity. The gamma constant of the Frangi filter is now set adaptively based on the maximum Hessian norm (#6446).
  • Move functions in skimage.future.graph...
Read more

v0.20.0rc8

20 Feb 16:52
v0.20.0rc8
Compare
Choose a tag to compare
v0.20.0rc8 Pre-release
Pre-release
v0.20.0rc8

v0.20.0rc7

17 Feb 10:34
v0.20.0rc7
Compare
Choose a tag to compare
v0.20.0rc7 Pre-release
Pre-release
v0.20.0rc7

v0.20.0rc6

16 Feb 20:04
v0.20.0rc6
Compare
Choose a tag to compare
v0.20.0rc6 Pre-release
Pre-release
v0.20.0rc6

v0.20.0rc5

13 Feb 19:45
v0.20.0rc5
Compare
Choose a tag to compare
v0.20.0rc5 Pre-release
Pre-release
v0.20.0rc5

v0.20.0rc4

07 Feb 03:20
v0.20.0rc4
Compare
Choose a tag to compare
v0.20.0rc4 Pre-release
Pre-release
v0.20.0rc4

v0.19.3

12 Jun 18:12
v0.19.3
Compare
Choose a tag to compare

Announcement: scikit-image 0.19.3

We're happy to announce the release of scikit-image v0.19.3!

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

Bugs Fixed

  • Revert unintentional change to default multichannel behavior introduced in v0.19.0 for skimage.restoration.cycle_spin (now defaults to single channel again)
  • Fix corner case with an optimal angle of 0 degrees in hough_line_peaks
  • Fixed the gallery example involving registration with log-polar transformations
  • Update test suite for compatibility with the most recent tifffile release.
  • warp/rotate: fixed a bug with clipping when cval is not in the input range
  • Fix computation of histogram bins for multichannel integer-valued images

General Maintenance

  • Update skimage.future.manual_polygon_segmentation to work with Matplotlib 3.5.
  • Update skimage.io.imread to avoid warnings when using imageio>=2.16.2.
  • Now compatible with Pillow >= 9.1 (palette may contain <256 entries)
  • Added support for NumPy 1.23

Pull Requests Included

  • Backport PR #6306 on branch v0.19.x (Fix for error in 'Using Polar and Log-Polar Transformations for Registration') (#6312)
  • Backport PR #6271 on branch v0.19.x (hough_line_peaks fix for corner case with optimal angle=0) (#6313)
  • Backport PR #6261 on branch v0.19.x (Ignore sparse matrix deprecation warning) (#6316)
  • backport PR 6328: Fix issue with newer versions of matplotlib in manual segmentation (#6334)
  • Backport PR #6343 on branch v0.19.x (avoid warnings about change to v3 API from imageio) (#6344)
  • Backport PR #6355 on branch v0.19.x (remove use of deprecated kwargs from test_tifffile_kwarg_passthrough) (#6357)
  • Backport PR #6352 on branch v0.19.x (Fix channel_axis default for cycle_spin) (#6358)
  • Backport PR #6348 on branch v0.19.x (Fix smoothed image computation when mask is None in canny) (#6359)
  • Backport PR #6361 on branch v0.19.x (Document support for Path objects in io functions) (#6363)
  • Backport PR #6400 on branch v0.19.x (Add support for NumPy 1.23) (#6403)
  • Backport PR #6335 on branch v0.19.x (warp/rotate: fixed a bug with clipping when cval is not in the input range) (#6411)
  • Backport PR #6413 on branch v0.19.x (Fix computation of histogram bins for multichannel integer-valued images) (#6414)

10 authors added to this release [alphabetical by first name or login]

  • Albert Y. Shih
  • Bartłomiej Śmietanka
  • Dave Mellert
  • Gregory Lee
  • Graham Inggs
  • Jarrod Millman
  • John Hagen
  • Mark Harfouche
  • Riadh Fezzani
  • Stefan van der Walt

7 reviewers added to this release [alphabetical by first name or login]

  • Alexandre de Siqueira
  • Gregory Lee
  • Jarrod Millman
  • Juan Nunez-Iglesias
  • Lars Grüter
  • Mark Harfouche
  • Riadh Fezzani

v0.19.2

17 Feb 18:25
v0.19.2
Compare
Choose a tag to compare

scikit-image 0.19.2

We're happy to announce the release of scikit-image v0.19.2! This is primarily
a bug fix release, although there is one new gallery example related to
detection of fluorescence at the nuclear envelope of mammalian cells.

Pull Requests Included

  • fix mistake in tests.yml made during backport (gh-6129)
  • Backport PR #6145 on branch v0.19.x (Fix channel_axis handling in pyramid_gaussian and pyramid_laplace) (gh-6155)
  • Backport PR #6130 on branch v0.19.x (bump deprecated Azure windows environment) (gh-6131)
  • Backport PR #6148 on branch v0.19.x (deprecate n_iter_max (should be max_num_iter)) (gh-6156)
  • Backport PR #6152 on branch v0.19.x (specify python version used by mybinder.org for gallery demos) (gh-6157)
  • Backport PR #6139 on branch v0.19.x (fix phase_cross_correlation typo) (gh-6158)
  • Backport PR #6133 on branch v0.19.x (Update user warning message for viewer module.) (gh-6159)
  • Backport PR #6169 on branch v0.19.x (Fix unintended change to output dtype of match_histograms) (gh-6172)
  • Backport PR #6184 on branch v0.19.x (Fix SIFT wrong octave indices + typo) (gh-6186)
  • Backport PR #6191 on branch v0.19.x (Fix issue6190 - inconsistent default parameters in pyramids.py) (gh-6193)
  • Backport PR #6207 on branch v0.19.x (Always set params to nan when ProjectiveTransform.estimate fails) (gh-6210)
  • Backport PR #5262 on branch v0.19.x (Add textbook-like tutorial on measuring fluorescence at nuclear envelope.) (gh-6213)
  • Backport PR #6087 on branch v0.19.x (Add two datasets for use in upcoming scientific tutorials.) (gh-6215)
  • Backport PR #6214 on branch v0.19.x (EuclideanTransform.estimate should return False when NaNs are present) (gh-6221)
  • Backport PR #6219 on branch v0.19.x (Allow the output_shape argument to be any iterable for resize and resize_local_mean) (gh-6222)
  • Backport PR #6223 on branch v0.19.x (Update filename in testing instructions.) (gh-6225)
  • Backport PR #6231 on branch v0.19.x (Update imports/refs from deprecated scipy.ndimage.filters namespace) (gh-6233)
  • Backport PR #6229 on branch v0.19.x (Remove redundant testing on Appveyor) (gh-6234)
  • Backport PR #6183 on branch v0.19.x (Fix decorators warnings stacklevel) (gh-6238)
  • Backport PR #6239 on branch v0.19.x (DOC: fix SciPy intersphinx) (gh-6241)
  • Backport PR #6232 on branch v0.19.x (Include Cython sources via package_data) (gh-6244)
  • Backport PR #6227 on branch v0.19.x (Fix calculation of Z normal in marching cubes) (gh-6245)
  • Backport PR #6242 on branch v0.19.x (Fix bug in SLIC superpixels with enforce_connectivity=True and start_label > 0) (gh-6246)
  • Backport PR #6211 on branch v0.19.x (PiecewiseAffineTransform.estimate return should reflect underlying transforms) gh-6247
  • update MacOS libomp installation in wheel building script (gh-6249)

9 authors added to this release [alphabetical by first name or login]

  • Chris Roat
  • Fabian Schneider
  • Gregory Lee
  • Hande Gözükan
  • Larry Bradley
  • Marianne Corvellec
  • Mark Harfouche
  • Miles Lucas
  • Riadh Fezzani

8 reviewers added to this release [alphabetical by first name or login]

  • Alexandre de Siqueira
  • Gregory Lee
  • Juan Nunez-Iglesias
  • Marianne Corvellec
  • Mark Harfouche
  • Riadh Fezzani
  • Robert Haase
  • Stefan van der Walt

v0.19.1

15 Dec 17:06
v0.19.1
Compare
Choose a tag to compare

scikit-image 0.19.1

We're happy to announce the release of scikit-image v0.19.1!

This is a small bug fix release that resolves a couple of backwards compatibility issues and a couple of issues with the wheels on PyPI. Specifically, MacOS wheels for Apple M1 (arm64) on PyPI were broken in 0.19.0, but should now be repaired. The arm64 wheels are for MacOs >= 12 only. Wheel sizes are also greatly reduced relative to 0.19.0 by stripping debug symbols from the binaries and making sure that Cython-generated source files are not bundled in the wheels.

Pull Requests Included

  • Backport PR #6097 on branch v0.19.x (Restore non-underscore functions in skimage.data) (gh-6099)
  • Backport PR #6095 on branch v0.19.x (Preserve backwards compatibility for channel_axis parameter in transform functions) (gh-6100)
  • Backport PR #6103 on branch v0.19.x (Make rank filter test comparisons robust across architectures) (gh-6106)
  • Backport PR #6105 on branch v0.19.x (Pass a specific random_state into ransac in test_ransac_geometric) (gh-6107)
  • Fix two equality comparison bugs in the wheel build script (gh-6098)
  • Backport of gh-6109 (Add linker flags to strip debug symbols during wheel building) (gh-6110)
  • Pin setuptools maximum in v0.19.x to avoid breaking on planned distutils API changes (gh-6112)
  • Avoid potential circular import of rgb2gray (gh-6113)
  • Backport PR #6089 on branch v0.19.x (Skip tests requiring fetched data) (gh-6115)
  • Backport PR #6118 on branch v0.19.x (Fixes to tests.yml and fixes for expected warnings) (gh-6127)
  • Backport PR #6114 on branch v0.19.x (Relax test condition to make it more robust to variable CI load) (gh-6128)

3 authors added to this release [alphabetical by first name or login]

  • Gregory R. Lee
  • Joshua Newton
  • Mark Harfouche

5 reviewers added to this release [alphabetical by first name or login]

  • Gregory R. Lee
  • Juan Nunez-Iglesias
  • Marianne Corvellec
  • Mark Harfouche
  • Stefan van der Walt