Releases: scikit-image/scikit-image
v0.21.0rc0
signed 0.21.0rc0 tag
v0.20.0
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 newdecomposition
parameter of the functionsrectangle
,diamond
,disk
,cube
,octahedron
,ball
, andoctagon
inskimage.morphology
. Thefootprint
parameter of the functionsbinary_erosion
,binary_dilation
,binary_opening
,binary_closing
,erosion
,dilation
,opening
,closing
,white_tophat
, andblack_tophat
inskimage.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 inskimage.measure
:regionprops
,regionprops_table
,moments
,moments_central
,moments_normalized
,centroid
,inertia_tensor
, andinertia_tensor_eigvals
. Voxel spacing is taken into account for the following existing properties inskimage.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
, andmoments_weighted_hu
. The new propertiesnum_pixels
andcoords_scaled
are available as well. See the respective docstrings for more details (#6296). - Add isotropic binary morphological operators
isotropic_closing
,isotropic_dilation
,isotropic_erosion
, andisotropic_opening
inskimage.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
andintersection_coeff
toskimage.measure
(#6189). - Support the Modified Hausdorff Distance (MHD) metric in
skimage.metrics.hausdorff_distance
via the new parametermethod
. The MHD can be more robust against outliers than the directed Hausdorff Distance (HD) (#5581). - Add two datasets
skimage.data.protein_transport
andskimage.data.nickel_solidification
(#6087). - Add new parameter
use_gaussian_derivatives
toskimage.feature.hessian_matrix
which allows the computation of the Hessian matrix by convolving with Gaussian derivatives (#6149). - Add new parameters
squared_butterworth
andnpad
toskimage.filters.butterworth
, which support traditional or squared filtering and edge padding, respectively (#6251). - Support construction of a
skimage.io.ImageCollection
from aload_pattern
with an arbitrary sequence as long as a matchingload_func
is provided (#6276). - Add new parameter
alpha
toskimage.metrics.adapted_rand_error
allowing control over the weight given to precision and recall (#6472). - Add new parameter
binarize
toskimage.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
toskimage.measure.convex_hull_image
to optionally exclude vertices or edges from the final hull mask (#6515). - Add new parameter
offsets
toskimage.measure.regionprops
that optionally allows specifying the coordinates of the origin and affects the propertiescoords_scaled
andcoords
(#3706). - Add new parameter
disambiguate
toskimage.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
andtranslation
inskimage.transform.EuclideanTransform
as well as forskimage.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
, andmatrix_transform
inskimage.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 2Dskimage.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
, andhessian
inskimage.filters
(#6509). - Reduce memory consumption of
blob_dog
,blob_log
, andblob_doh
inskimage.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 returnedlabels
andoriginal_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
, andskimage.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
...
v0.20.0rc8
v0.20.0rc8
v0.20.0rc7
v0.20.0rc7
v0.20.0rc6
v0.20.0rc6
v0.20.0rc5
v0.20.0rc5
v0.20.0rc4
v0.20.0rc4
v0.19.3
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:
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 usingimageio
>=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
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
andstart_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
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