Releases: scikit-image/scikit-image
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
v0.19.0
Announcement: scikit-image 0.19.0
We're happy to announce scikit-image v0.19.0!
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 whenfast_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 tochannel_axis=-1
, indicating that channels are along the last axis. - Added a new keyword only parameter
random_state
tomorphology.medial_axis
andrestoration.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 toskimage.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
andobservers
parameter options were added toskimage.color.lab2rgb
,skimage.color.rgb2lab
,
skimage.color.xyz2lab
,skimage.color.lab2xyz
,skimage.color.xyz2luv
andskimage.color.luv2xyz
. skimage.filters.threshold_multiotsu
has a newhist
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
functionsblob_dog
,blob_doh
andblob_log
now support athreshold_rel
keyword argument that can be used to specify a relative threshold (in range [0, 1]) rather than an absolute one. (gh-5517) - Implement lazy submodule importing (gh-5101)
- 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, andcentral_pixel
finds the geodesic center of the pixels. (gh-5602) - scikit-image now supports use of Pythran in contributed code. (gh-3226)
Improvements
- Many more functions throughout the library now have single precision (float32) support.
- Biharmonic inpainting (
skimage.restoration.inpaint_biharmonic
) was refactored and is orders of magnitude faster than before. - Salt-and-pepper noise generation with
skimage.util.random_noise
is now faster. - The performance of the SLIC superpixels algorithm (
skimage.segmentation.slice
) was improved for the case where a mask is supplied by the user (gh-4903). The specific superpixels produced by masked SLIC will not be identical to those produced by prior releases. exposure.adjust_gamma
has been accelerated foruint8
images thanks to a LUT (gh-4966).measure.label
has been accelerated for boolean input images, by usingscipy.ndimage
's implementation for this case (gh-4945).util.apply_parallel
now works with multichannel data (gh-4927).skimage.feature.peak_local_max
supports now any Minkowski distance.- Fast, non-Cython implementation for
skimage.filters.correlate_sparse
. - For efficiency, the histogram is now precomputed within
skimage.filters.try_all_threshold
. - Faster
skimage.filters.find_local_max
when given a finitenum_peaks
. - All filters in the
skimage.filters.rank
module now release the GIL, enabling multithreaded use. skimage.restoration.denoise_tv_bregman
and
skimage.restoration.denoise_bilateral
now release the GIL, enabling multithreaded use.- A
skimage.color.label2rgb
performance regression was addressed. - Improve numerical precision in
CircleModel.estimate
. (gh-5190) - Add default keyword argument values to
skimage.restoration.denoise_tv_bregman
,skimage.measure.block_reduce
, andskimage.filters.threshold_local
. (gh-5454) - Make matplotlib an optional dependency (gh-5990)
- single precision support in skimage.filters (gh-5354)
- Support nD images and labels in label2rgb (gh-5550)
- Regionprops table performance refactor (gh-5576)
- add regionprops benchmark script (gh-5579)
- remove use of apply_along_axes from greycomatrix & greycoprops (gh-5580)
- refactor gabor_kernel for efficiency (gh-5582)
- remove need for channel_as_last_axis decorator in skimage.filters (gh-5584)
- replace use of scipy.ndimage.gaussian_filter with skimage.filters.gaussian (gh-5872)
- add channel_axis argument to quickshift (gh-5987)
- add MacOS arm64 wheels (gh-6068)
API Changes
- The
multichannel
boolean argument has been deprecated. All functions with multichannel support now use an integerchannel_axis
to specify which axis corresponds to channels. Settingchannel_axis
to None is used to indicate that the image is grayscale. Specifically, existing code withmultichannel=True
should be updated to usechannel_axis=-1
and code withmultichannel=False
should now specifychannel_axis=None
. - Most functions now return float32 images when the input has float32 dtype.
- A default value has been added to
measure.find_contours
, corresponding to the half distance between the min and max values of the image (gh-4862). data.cat
has been introduced as an alias ofdata.chelsea
for a more descriptive name.- The
level
parameter ofmeasure.find_contours
is now a keyword argument, with a default value set to(max(image) - min(image)) / 2
. p_norm
argument was added toskimage.feature.peak_local_max
to add support for Minkowski distances.skimage.transforms.integral_image
now promotes floating point inputs to double precision by default (for accuracy). A newdtype
keyword argument can be used to override this behavior when desired.- Color conversion functions now have a new
channel_axis
keyword argument (see New Features section). - SLIC superpixel segmentation outputs may differ from previous versions for data that was not already scaled to [0, 1] range. There is now an automatic internal rescaling of the input to [0, 1] so that the
compactness
parameter has an effect that is independent of the input image's scaling. - A bug fix to the phase normalization applied within
skimage.register.phase_cross_correlation
may result in a different result as compared to prior releases. The prior behavior of "unnormalized" cross correlation is still available by explicitly settingnormalization=None
. There is no change to the masked cross-correlation case, which uses a different algorithm.
Bugfixes
- Input
labels
argument renumbering inskimage.feature.peak_local_max
is avoided (gh-5047). - fix clip bug in resize when anti_aliasing is applied (gh-5202)
- Nonzero values at the image edge are no longer incorrectly marked as a boundary when using
find_bounaries
with mode='subpixel' (gh-5447). - Fix return dtype of
_label2rgb_avg
function. - Ensure
skimage.color.separate_stains
does not return negative values. - Prevent integer overflow in ``Ellips...
v0.19.0rc0
Announcement: scikit-image 0.19.0rc0
We're happy to announce a release-candidate for scikit-image v0.19.0!
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).
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 whenfast_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 tochannel_axis=-1
, indicating that channels are along the last axis. - Added a new keyword only parameter
random_state
tomorphology.medial_axis
andrestoration.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 toskimage.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
andobservers
parameter options were added toskimage.color.lab2rgb
,skimage.color.rgb2lab
,
skimage.color.xyz2lab
,skimage.color.lab2xyz
,skimage.color.xyz2luv
andskimage.color.luv2xyz
. skimage.filters.threshold_multiotsu
has a newhist
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
functionsblob_dog
,blob_doh
andblob_log
now support athreshold_rel
keyword argument that can be used to specify a relative threshold (in range [0, 1]) rather than an absolute one. (gh-5517) - Implement lazy submodule importing (gh-5101)
- 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, andcentral_pixel
finds the geodesic center of the pixels. (gh-5602) - scikit-image now supports use of Pythran in contributed code. (gh-3226)
Improvements
- Many more functions throughout the library now have single precision (float32) support.
- Biharmonic inpainting (
skimage.restoration.inpaint_biharmonic
) was refactored and is orders of magnitude faster than before. - Salt-and-pepper noise generation with
skimage.util.random_noise
is now faster. - The performance of the SLIC superpixels algorithm (
skimage.segmentation.slice
) was improved for the case where a mask is supplied by the user (gh-4903). The specific superpixels produced by masked SLIC will not be identical to those produced by prior releases. exposure.adjust_gamma
has been accelerated foruint8
images thanks to a LUT (gh-4966).measure.label
has been accelerated for boolean input images, by usingscipy.ndimage
's implementation for this case (gh-4945).util.apply_parallel
now works with multichannel data (gh-4927).skimage.feature.peak_local_max
supports now any Minkowski distance.- Fast, non-Cython implementation for
skimage.filters.correlate_sparse
. - For efficiency, the histogram is now precomputed within
skimage.filters.try_all_threshold
. - Faster
skimage.filters.find_local_max
when given a finitenum_peaks
. - All filters in the
skimage.filters.rank
module now release the GIL, enabling multithreaded use. skimage.restoration.denoise_tv_bregman
and
skimage.restoration.denoise_bilateral
now release the GIL, enabling multithreaded use.- A
skimage.color.label2rgb
performance regression was addressed. - Improve numerical precision in
CircleModel.estimate
. (gh-5190) - Add default keyword argument values to
skimage.restoration.denoise_tv_bregman
,skimage.measure.block_reduce
, andskimage.filters.threshold_local
. (gh-5454) - Make matplotlib an optional dependency (gh-5990)
- single precision support in skimage.filters (gh-5354)
- Support nD images and labels in label2rgb (gh-5550)
- Regionprops table performance refactor (gh-5576)
- add regionprops benchmark script (gh-5579)
- remove use of apply_along_axes from greycomatrix & greycoprops (gh-5580)
- refactor gabor_kernel for efficiency (gh-5582)
- remove need for channel_as_last_axis decorator in skimage.filters (gh-5584)
- replace use of scipy.ndimage.gaussian_filter with skimage.filters.gaussian (gh-5872)
- add channel_axis argument to quickshift (gh-5987)
API Changes
- The
multichannel
boolean argument has been deprecated. All functions with multichannel support now use an integerchannel_axis
to specify which axis corresponds to channels. Settingchannel_axis
to None is used to indicate that the image is grayscale. Specifically, existing code withmultichannel=True
should be updated to usechannel_axis=-1
and code withmultichannel=False
should now specifychannel_axis=None
. - Most functions now return float32 images when the input has float32 dtype.
- A default value has been added to
measure.find_contours
, corresponding to the half distance between the min and max values of the image (gh-4862). data.cat
has been introduced as an alias ofdata.chelsea
for a more descriptive name.- The
level
parameter ofmeasure.find_contours
is now a keyword argument, with a default value set to(max(image) - min(image)) / 2
. p_norm
argument was added toskimage.feature.peak_local_max
to add support for Minkowski distances.skimage.transforms.integral_image
now promotes floating point inputs to double precision by default (for accuracy). A newdtype
keyword argument can be used to override this behavior when desired.- Color conversion functions now have a new
channel_axis
keyword argument (see New Features section). - SLIC superpixel segmentation outputs may differ from previous versions for data that was not already scaled to [0, 1] range. There is now an automatic internal rescaling of the input to [0, 1] so that the
compactness
parameter has an effect that is independent of the input image's scaling. - A bug fix to the phase normalization applied within
skimage.register.phase_cross_correlation
may result in a different result as compared to prior releases. The prior behavior of "unnormalized" cross correlation is still available by explicitly settingnormalization=None
. There is no change to the masked cross-correlation case, which uses a different algorithm.
Bugfixes
- Input
labels
argument renumbering inskimage.feature.peak_local_max
is avoided (gh-5047). - fix clip bug in resize when anti_aliasing is applied (gh-5202)
- Nonzero values at the image edge are no longer incorrectly marked as a boundary when using
find_bounaries
with mode='subpixel' (gh-5447). - Fix return dtype of
_label2rgb_avg
function. - Ensure
skimage.color.separate_stains
does not return negative values. - Prevent integer overflow in
EllipseModel
. - Fixed off-by one error in pixel bins in Hough line transform,
skimage.transform.hough_line
. - Handle 1D arrays properly in ``skimage....
v0.18.3
scikit-image 0.18.3
This is a small bugfix release for compatibility with Pooch 1.5 and SciPy 1.7.