Releases: scikit-image/scikit-image
v0.18.1
scikit-image 0.18.1
This is a bug fix release and contains the following two bug fixes:
- Fix indexing error for labelling in large (>2GB) arrays (#5143, #5151)
- Only use retry_if_failed with recent pooch (#5148)
See below for the new features and API changes in 0.18.0.
Announcement: scikit-image 0.18.0
We're happy to announce the release of scikit-image v0.18.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.
This release of scikit-image drops support for Python 3.6 in accordance with
the NEP-29 Python and Numpy version support community standard <https://numpy.org/neps/nep-0029-deprecation_policy.html>
_: Python 3.7 or
newer is required to run this version.
For more information, examples, and documentation, please visit our website:
New Features
- Add the iterative Lucas-Kanade (iLK) optical flow method (#4161)
- Add Feret diameter in region properties (#4379, #4820)
- Add functions to compute Euler number and Crofton perimeter estimation (#4380)
- Add a function to compute the Hausdorff distance (#4382)
- Added 3D support for many filters in
skimage.filters.rank
. - An experimental implementation of trainable pixel segmentation, aiming for
compatibility with the scikit-learn API, has been added to
skimage.future
. Try it out! (#4739) - Add a new function
segmentation.expand_labels
to dilate labels while
preventing overlap (#4795) - It is now possible to pass extra measurement functions to
measure.regionprops
andregionprops_table
(#4810) - Add rolling ball algorithm for background subtraction (#4851)
- New sample images have been added in the
data
subpackage:data.eagle
(#4922),data.human_mitosis
(#4939),data.cells3d
(#4951), and
data.vortex
(#5041). Also note that the image fordata.camera
has
been changed due to copyright issues (#4913). skimage.feature.structure_tensor
now supports 3D (and nD) images as input
(#5002)- Many thresholding methods can now receive a precomputed histogram as input,
resulting in significant speedups if multiple methods are tried on the same
image, or if a fast histogram method is used. (#5006) measure.regionprops
now supports multichannel intensity images (#5037)
Documentation
- Add an example to the flood fill tutorial (#4619)
- Docstring enhancements for marching cubes and find_contours (#4641)
- A new tutorial presenting a cell biology example has been added to the
gallery (#4648). Special thanks to Pierre Poulain and Fred Bernard
(Université de Paris and Institut Jacques Monod) for scientific review of
this example! - Improve register rotation example with notes and references (#4723)
- Add versionadded for new scalar type support for "scale" param in
transform.AffineTransform
(#4733) - New tutorial on
visualizing 3D data <https://scikit-image.org/docs/dev/auto_examples/applications/plot_3d_image_processing.html>
_ (#4850) - Add example for 3D adaptive histogram equalization (AHE) (#4658)
- Automatic formatting of docstrings for improved consistency (#4849)
- Improved docstring for
rgb2lab
(#4839) andmarching_cubes
(#4846) - Improved docstring for
measure.marching_cubes
, mentioning how to decimate a
mesh using mayavi (#4846) - Document how to contribute a gallery example. (#4857)
- Fix and improve entropy example (#4904)
- expand the benchmarking section of the developer docs (#4905)
- Improved docstring for
util.random_noise
(#5001) - Improved docstrings for
morphology.h_maxima
andmorphology.h_minima
(#4929). - Improved docstring for
util.img_as_int
(#4888). - A new example demonstrates interactive exploration of regionprops results
using the PyData stack (pandas, seaborn) at
https://scikit-image.org/docs/dev/auto_examples/segmentation/plot_regionprops.html`_
(#5010). - Documentation has been added to explain
how to download example datasets <https://scikit-image.org/docs/dev/install.html#downloading-all-demo-datasets>
_
which are not installed with scikit-image (#4984). Similarly, the contributor
guide has been updated to mention how to host new datasets in a gitlab
repository (#4892). - The
benchmarking section of the developer documentation <https://scikit-image.org/docs/dev/contribute.html#benchmarks>
_
has been expanded (#4905). - Added links to the image.sc forum in example pages (#5094, #5096)
- Added missing datasets to gallery examples (#5116, #5118)
- Add farid filters in all, to populate the documentation (#5128, #5129)
- Proofread gallery example for rank filters. (#5126, #5136)
Improvements
- float32 support for SLIC (#4683), ORB (#4684, #4697), BRIEF (#4685),
pyramid_gaussian
(#4696), Richardson-Lucy deconvolution (#4880) - In
skimage.restoration.richardson_lucy
, computations are now done in
single-precision when the input image is single-precision. This can give a
substantial performance improvement when working with single precision data. - Richardson-Lucy deconvolution now has a
filter_epsilon
keyword argument
to avoid division by very small numbers (#4823) - Add default level parameter (max-min) / 2 in
measure.find_contours
(#4862) - The performance of the SLIC superpixels algorithm
(skimage.segmentation.slice
) was improved for the case where a mask
is supplied by the user (#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 by using
a look-up table (LUT) (#4966).measure.label
has been accelerated for boolean input images, by using
scipy.ndimage
's implementation for this case (#4945).util.apply_parallel
now works with multichannel data (#4927).skimage.feature.peak_local_max
supports now any Minkowski distance.- We now use sparse cross-correlation to accelerate local thresholding
functions (#4912) morphology.convex_hull_image
now uses much less memory by checking hull
inequalities in sequence (#5020)- Polygon rasterization is more precise and will no longer potentially exclude
input vertices. (#5029) - Add data optional requirements to allow pip install scikit-image[data]
(#5105, #5111) - OpenMP support in MSVC (#4924, #5111)
- Restandardize handling of Multi-Image files (#2815, #5132)
- Consistent zoom boundary behavior across SciPy versions (#5131, #5133)
API Changes
skimage.restoration.richardson_lucy
returns a single-precision output
when the input is single-precision. Prior to this release, double-precision
was always used. (#4880)- The default value of
threshold_rel
inskimage.feature.corner
has
changed from 0.1 to None, which corresponds to letting
skimage.feature.peak_local_max
decide on the default. This is currently
equivalent tothreshold_rel=0
. - In
measure.label
, the deprecatedneighbors
parameter has been
removed. (#4942) - The image returned by
data.camera
has changed because of copyright
issues (#4913).
Bug fixes
- A bug in
label2rgb
has been fixed when the input image had np.uint8
dtype (#4661) - Fixed incorrect implementation of
skimage.color.separate_stains
(#4725) - Many bug fixes have been made in
peak_local_max
(#2592, #4756, #4760,
#5047) - Fix bug in
random_walker
when input labels have negative values (#4771) - PSF flipping is now correct for Richardson-Lucy deconvolution work in >2D (#4823)
- Fix equalize_adapthist (CLAHE) for clip value 1.0 (#4828)
- For the RANSAC algorithm, improved the case where all data points are
outliers, which was previously raising an error
(#4844) - An error-causing bug has been corrected for the
bg_color
parameter in
label2rgb
when its value is a string (#4840) - A normalization bug was fixed in
metrics.variation_of_information
(#4875) - Euler characteristic property of
skimage.measure.regionprops
was erroneous
for 3D objects, since it did not take tunnels into account. A new implementation
based on integral geometry fixes this bug (#4380). - In
skimage.morphology.selem.rectangle
theheight
argument
controlled the width and thewidth
argument controlled the height.
They have been replaced withnrow
andncol
. (#4906) skimage.segmentation.flood_fill
andskimage.segmentation.flood
now consistently handle negative values forseed_point
.- Segmentation faults in
segmentation.flood
have been fixed (#4948, #4972) - A segfault in
draw.polygon
for the case of 0-d input has been fixed
(#4943). - In
registration.phase_cross_correlation
, aValueError
is raised when
NaNs are found in the computation (as a result of NaNs in input images).
Before this fix, an incorrect value could be returned where the input images
had NaNs (#4886). - Fix edge filters not respecting padding mode (#4907)
- Use v{} for version tags with pooch (#5104, #5110)
- Fix compilation error in XCode 12 (#5107, #5111)
Deprecations
- The
indices
argument inskimage.feature.peak_local_max
has been
deprecated. Indices will always be returned. (#4752) - In
skimage.feature.structure_tensor
, anorder
argument has been
introduced which will default to 'rc' starting in version 0.20. (#4841) skimage.feature.structure_tensor_eigvals
has been deprecated and will be
removed in version 0.20. Useskimage.feature.structure_tensor_eigenvalues
instead.- The
skimage.viewer
subpackage an...
v0.18.0
Announcement: scikit-image 0.18.0
We're happy to announce the release of scikit-image v0.18.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.
This release of scikit-image drops support for Python 3.6 in accordance with
the NEP-29 Python and Numpy version support community standard <https://numpy.org/neps/nep-0029-deprecation_policy.html>
_: Python 3.7 or
newer is required to run this version.
For more information, examples, and documentation, please visit our website:
New Features
- Add the iterative Lucas-Kanade (iLK) optical flow method (#4161)
- Add Feret diameter in region properties (#4379, #4820)
- Add functions to compute Euler number and Crofton perimeter estimation (#4380)
- Add a function to compute the Hausdorff distance (#4382)
- Added 3D support for many filters in
skimage.filters.rank
. - An experimental implementation of trainable pixel segmentation, aiming for
compatibility with the scikit-learn API, has been added to
skimage.future
. Try it out! (#4739) - Add a new function
segmentation.expand_labels
to dilate labels while
preventing overlap (#4795) - It is now possible to pass extra measurement functions to
measure.regionprops
andregionprops_table
(#4810) - Add rolling ball algorithm for background subtraction (#4851)
- New sample images have been added in the
data
subpackage:data.eagle
(#4922),data.human_mitosis
(#4939),data.cells3d
(#4951), and
data.vortex
(#5041). Also note that the image fordata.camera
has
been changed due to copyright issues (#4913). skimage.feature.structure_tensor
now supports 3D (and nD) images as input
(#5002)- Many thresholding methods can now receive a precomputed histogram as input,
resulting in significant speedups if multiple methods are tried on the same
image, or if a fast histogram method is used. (#5006) measure.regionprops
now supports multichannel intensity images (#5037)
Documentation
- Add an example to the flood fill tutorial (#4619)
- Docstring enhancements for marching cubes and find_contours (#4641)
- A new tutorial presenting a cell biology example has been added to the
gallery (#4648). Special thanks to Pierre Poulain and Fred Bernard
(Université de Paris and Institut Jacques Monod) for scientific review of
this example! - Improve register rotation example with notes and references (#4723)
- Add versionadded for new scalar type support for "scale" param in
transform.AffineTransform
(#4733) - New tutorial on
visualizing 3D data <https://scikit-image.org/docs/dev/auto_examples/applications/plot_3d_image_processing.html>
_ (#4850) - Add example for 3D adaptive histogram equalization (AHE) (#4658)
- Automatic formatting of docstrings for improved consistency (#4849)
- Improved docstring for
rgb2lab
(#4839) andmarching_cubes
(#4846) - Improved docstring for
measure.marching_cubes
, mentioning how to decimate a
mesh using mayavi (#4846) - Document how to contribute a gallery example. (#4857)
- Fix and improve entropy example (#4904)
- expand the benchmarking section of the developer docs (#4905)
- Improved docstring for
util.random_noise
(#5001) - Improved docstrings for
morphology.h_maxima
andmorphology.h_minima
(#4929). - Improved docstring for
util.img_as_int
(#4888). - A new example demonstrates interactive exploration of regionprops results
using the PyData stack (pandas, seaborn) at
https://scikit-image.org/docs/dev/auto_examples/segmentation/plot_regionprops.html`_
(#5010). - Documentation has been added to explain
how to download example datasets <https://scikit-image.org/docs/dev/install.html#downloading-all-demo-datasets>
_
which are not installed with scikit-image (#4984). Similarly, the contributor
guide has been updated to mention how to host new datasets in a gitlab
repository (#4892). - The
benchmarking section of the developer documentation <https://scikit-image.org/docs/dev/contribute.html#benchmarks>
_
has been expanded (#4905). - Added links to the image.sc forum in example pages (#5094, #5096)
- Added missing datasets to gallery examples (#5116, #5118)
- Add farid filters in all, to populate the documentation (#5128, #5129)
- Proofread gallery example for rank filters. (#5126, #5136)
Improvements
- float32 support for SLIC (#4683), ORB (#4684, #4697), BRIEF (#4685),
pyramid_gaussian
(#4696), Richardson-Lucy deconvolution (#4880) - In
skimage.restoration.richardson_lucy
, computations are now done in
single-precision when the input image is single-precision. This can give a
substantial performance improvement when working with single precision data. - Richardson-Lucy deconvolution now has a
filter_epsilon
keyword argument
to avoid division by very small numbers (#4823) - Add default level parameter (max-min) / 2 in
measure.find_contours
(#4862) - The performance of the SLIC superpixels algorithm
(skimage.segmentation.slice
) was improved for the case where a mask
is supplied by the user (#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 by using
a look-up table (LUT) (#4966).measure.label
has been accelerated for boolean input images, by using
scipy.ndimage
's implementation for this case (#4945).util.apply_parallel
now works with multichannel data (#4927).skimage.feature.peak_local_max
supports now any Minkowski distance.- We now use sparse cross-correlation to accelerate local thresholding
functions (#4912) morphology.convex_hull_image
now uses much less memory by checking hull
inequalities in sequence (#5020)- Polygon rasterization is more precise and will no longer potentially exclude
input vertices. (#5029) - Add data optional requirements to allow pip install scikit-image[data]
(#5105, #5111) - OpenMP support in MSVC (#4924, #5111)
- Restandardize handling of Multi-Image files (#2815, #5132)
- Consistent zoom boundary behavior across SciPy versions (#5131, #5133)
API Changes
skimage.restoration.richardson_lucy
returns a single-precision output
when the input is single-precision. Prior to this release, double-precision
was always used. (#4880)- The default value of
threshold_rel
inskimage.feature.corner
has
changed from 0.1 to None, which corresponds to letting
skimage.feature.peak_local_max
decide on the default. This is currently
equivalent tothreshold_rel=0
. - In
measure.label
, the deprecatedneighbors
parameter has been
removed. (#4942) - The image returned by
data.camera
has changed because of copyright
issues (#4913).
Bug fixes
- A bug in
label2rgb
has been fixed when the input image had np.uint8
dtype (#4661) - Fixed incorrect implementation of
skimage.color.separate_stains
(#4725) - Many bug fixes have been made in
peak_local_max
(#2592, #4756, #4760,
#5047) - Fix bug in
random_walker
when input labels have negative values (#4771) - PSF flipping is now correct for Richardson-Lucy deconvolution work in >2D (#4823)
- Fix equalize_adapthist (CLAHE) for clip value 1.0 (#4828)
- For the RANSAC algorithm, improved the case where all data points are
outliers, which was previously raising an error
(#4844) - An error-causing bug has been corrected for the
bg_color
parameter in
label2rgb
when its value is a string (#4840) - A normalization bug was fixed in
metrics.variation_of_information
(#4875) - Euler characteristic property of
skimage.measure.regionprops
was erroneous
for 3D objects, since it did not take tunnels into account. A new implementation
based on integral geometry fixes this bug (#4380). - In
skimage.morphology.selem.rectangle
theheight
argument
controlled the width and thewidth
argument controlled the height.
They have been replaced withnrow
andncol
. (#4906) skimage.segmentation.flood_fill
andskimage.segmentation.flood
now consistently handle negative values forseed_point
.- Segmentation faults in
segmentation.flood
have been fixed (#4948, #4972) - A segfault in
draw.polygon
for the case of 0-d input has been fixed
(#4943). - In
registration.phase_cross_correlation
, aValueError
is raised when
NaNs are found in the computation (as a result of NaNs in input images).
Before this fix, an incorrect value could be returned where the input images
had NaNs (#4886). - Fix edge filters not respecting padding mode (#4907)
- Use v{} for version tags with pooch (#5104, #5110)
- Fix compilation error in XCode 12 (#5107, #5111)
Deprecations
- The
indices
argument inskimage.feature.peak_local_max
has been
deprecated. Indices will always be returned. (#4752) - In
skimage.feature.structure_tensor
, anorder
argument has been
introduced which will default to 'rc' starting in version 0.20. (#4841) skimage.feature.structure_tensor_eigvals
has been deprecated and will be
removed in version 0.20. Useskimage.feature.structure_tensor_eigenvalues
instead.- The
skimage.viewer
subpackage and theskivi
script have been
deprecated and will be removed in version 0.20. For interactive visualization
we recommend using dedicated tools such asnapari <https://napari.org>
_ or
plotly <https://plotly.com>
_. In a similar vein, theqt
andskivi
plugins ofskimage.io
have...
v0.17.2
tag v0.17.2
scikit-image 0.16.2
Announcement: scikit-image 0.16.2
We're happy to announce the release of scikit-image v0.16.2!
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.
This is a bug fix release that addresses several critical issues from 0.16.1.
Bug fixes
- Migrate to networkx 2.x (#4236, #4237)
- Sync required numpy and dask to runtime versions (#4233, #4239)
- Fix wrong argument parsing in structural_similarity (#4246, #4247)
- Fix active contour gallery example after change to rc coordinates (#4257, #4262)
4 authors added to this release [alphabetical by first name or login]
- François Boulogne
- Jarrod Millman
- Mark Harfouche
- Ondrej Pesek
6 reviewers added to this release [alphabetical by first name or login]
- Alexandre de Siqueira
- Egor Panfilov
- François Boulogne
- Juan Nunez-Iglesias
- Mark Harfouche
- Nelle Varoquaux
Announcement: scikit-image 0.16.1
We're happy to announce the release of scikit-image v0.16.1!
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:
Starting from this release, scikit-image will follow the recently
introduced NumPy deprecation policy, NEP 29 <https://github.com/numpy/numpy/blob/master/doc/neps/nep-0029-deprecation_policy.rst>__
.
Accordingly, scikit-image 0.16 drops support for Python 3.5.
This release of scikit-image officially supports Python 3.6 and 3.7.
Special thanks to Matthias Bussonnier for Frappuccino <https://github.com/Carreau/frappuccino>
__, which helped us catch all API
changes and nail down the APIs for new features.
New Features
- New
skimage.evaluate
module containing simple metrics (mse,
nrme, psd) and segmentation metrics (adapted rand error, variation of
information) (#4025) - n-dimensional TV-L1 optical flow algorithm for registration --
skimage.registration.optical_flow_tvl1
(#3983) - Draw a line in an n-dimensional array --
skimage.draw.line_nd
(#2043) - 2D Farid & Simoncelli edge filters -
skimage.filters.farid
,
skimage.filters.farid_h
, andskimage.filters.farid_v
(#3775) - 2D majority voting filter assigning to each pixel the most commonly
occurring value within its neighborhood --skimage.filters.majority
(#3836, #3839) - Multi-level threshold "multi-Otsu" method, a thresholding algorithm
used to separate the pixels of an input image into several classes by
maximizing the variances between classes --
skimage.filters.threshold_multiotsu
(#3872, #4174) - New example data --
skimage.data.shepp_logan_phantom
,skimage.data.colorwheel
,
skimage.data.brick
,skimage.data.grass
,skimage.data.roughwall
,skimage.data.cell
(#3958, #3966) - Compute and format image region properties as a table --
skimage.measure.regionprops_table
(#3959) - Convert a polygon into a mask --
skimage.draw.poly2mask
(#3971, #3977) - Visual image comparison helper
skimage.util.compare_images
,
that returns an image showing the difference between two input images (#4089) skimage.transform.warp_polar
to remap image into
polar or log-polar coordinates. (#4097)
Improvements
- RANSAC: new option to set initial samples selected for initialization (#2992)
- Better repr and str for
skimage.transform.ProjectiveTransform
(#3525,
#3967) - Better error messages and data type stability to
skimage.segmentation.relabel_sequential
(#3740) - Improved compatibility with dask arrays in some image thresholding methods (#3823)
skimage.io.ImageCollection
can now receive lists of patterns (#3928)- Speed up
skimage.feature.peak_local_max
(#3984) - Better error message when incorrect value for keyword argument
kind
in
skimage.color.label2rgb
(#4055) - All functions from
skimage.drawing
now supports multi-channel 2D images (#4134)
API Changes
- Deprecated subpackage
skimage.novice
has been removed. - Default value of
multichannel
parameters has been set to False in
skimage.transform.rescale
,skimage.transform.pyramid_reduce
,
skimage.transform.pyramid_laplacian
,
skimage.transform.pyramid_gaussian
, and
skimage.transform.pyramid_expand
. Guessing is no longer performed for 3D
arrays. - Deprecated argument
visualise
has been removed from
skimage.feature.hog
. Usevisualize
instead.¨ skimage.transform.seam_carve
has been completely removed from the
library due to licensing restrictions.- Parameter
as_grey
has been removed fromskimage.data.load
and
skimage.io.imread
. Useas_gray
instead. - Parameter
min_size
has been removed from
skimage.morphology.remove_small_holes
. Usearea_threshold
instead. - Deprecated
correct_mesh_orientation
inskimage.measure
has been
removed. skimage.measure._regionprops
has been completely switched to using
row-column coordinates. Old x-y interface is not longer available.- Default value of
behavior
parameter has been set tondimage
in
skimage.filters.median
. - Parameter
flatten
inskimage.io.imread
has been removed in
favor ofas_gray
. - Parameters
Hxx, Hxy, Hyy
have been removed from
skimage.feature.corner.hessian_matrix_eigvals
in favor ofH_elems
. - Default value of
order
parameter has been set torc
in
skimage.feature.hessian_matrix
. skimage.util.img_as_*
functions no longer raise precision and/or loss warnings.
Bugfixes
- Corrected error with scales attribute in ORB.detect_and_extract (#2835)
The scales attribute wasn't taking into account the mask, and thus was using
an incorrect array size. - Correct for bias in Inverse Randon Transform (
skimage.transform.irandon
) (#3067)
Fixed by using the Ramp filter equation in the spatial domain as described
in the reference - Fix a rounding issue that caused a rotated image to have a
different size than the input (skimage.transform.rotate
) (#3173) - RANSAC uses random subsets of the original data and not bootstraps. (#3901,
#3915) - Canny now produces the same output regardless of dtype (#3919)
- Geometry Transforms: avoid division by zero & some degenerate cases (#3926)
- Fixed float32 support in denoise_bilateral and denoise_tv_bregman (#3936)
- Fixed computation of Meijering filter and avoid ZeroDivisionError (#3957)
- Fixed
skimage.filters.threshold_li
to prevent being stuck on stationnary
points, and thus at local minima or maxima (#3966) - Edited
skimage.exposure.rescale_intensity
to return input image instead of
nans when all 0 (#4015) - Fixed
skimage.morphology.medial_axis
. A wrong indentation in Cython
caused the function to not behave as intended. (#4060) - Fixed
skimage.restoration.denoise_bilateral
by correcting the padding in
the gaussian filter(#4080) - Fixed
skimage.measure.find_contours
when input image contains NaN.
Contours interesting NaN will be left open (#4150) - Fixed
skimage.feature.blob_log
andskimage.feature.blob_dog
for 3D
images and anisotropic data (#4162) - Fixed
skimage.exposure.adjust_gamma
,skimage.exposure.adjust_log
,
andskimage.exposure.adjust_sigmoid
such that when provided with a 1 by
1 ndarray, it returns 1 by 1 ndarrays and not single number floats (#4169)
Deprecations
-
Parameter
neighbors
inskimage.measure.convex_hull_object
has been
deprecated in favor ofconnectivity
and will be removed in version 0.18.0. -
The following functions are deprecated in favor of the
skimage.metrics
module (#4025):skimage.measure.compare_mse
skimage.measure.compare_nrmse
skimage.measure.compare_psnr
skimage.measure.compare_ssim
-
The function
skimage.color.guess_spatial_dimensions
is deprecated and
will be removed in 0.18 (#4031) -
The argument
bc
inskimage.segmentation.active_contour
is
deprecated. -
The function
skimage.data.load
is deprecated and will be removed in 0.18
(#4061) -
The function
skimage.transform.match_histogram
is deprecated in favor of
skimage.exposure.match_histogram
(#4107) -
The parameter
neighbors
ofskimage.morphology.convex_hull_object
is
deprecated. -
The
skimage.transform.randon_tranform
function will convert input image
of integer type to float by default in 0.18. To preserve current behaviour,
set the new argumentpreserve_range
to True. (#4131)
Documentation improvements
- DOC: Improve the documentation of transform.resize with respect to the anti_aliasing_sigma parameter (#3911)
- Fix URL for stain deconvolution reference (#3862)
- Fix doc for denoise guassian (#3869)
- DOC: various enhancements (cross links, gallery, ref...), mainly for corner detection (#3996)
- [DOC] clarify that the inertia_tensor may be nD in documentation (#4013)
- [DOC] How to test and write benchmarks (#4016)
- Spellcheck @CONTRIBUTING.txt (#4008)
- Spellcheck @doc/examples/segmentation/plot_watershed.py (#4009)
- Spellcheck @doc/examples/segmentation/plot_thresholding.py (#4010)
- Spellcheck @skimage/morphology/binary.py (#4011)
- Spellcheck @skimage/morphology/extrema.py (#4012)
- docs update for downscale_local_mean and N-dimensional images (#4079)
- Remove fancy language from 0.15 release notes (#3827)
- D...
scikit-image 0.16.1
Announcement: scikit-image 0.16.1
We're happy to announce the release of scikit-image v0.16.1!
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:
Starting from this release, scikit-image will follow the recently
introduced NumPy deprecation policy, NEP 29 <https://github.com/numpy/numpy/blob/master/doc/neps/nep-0029-deprecation_policy.rst>__
.
Accordingly, scikit-image 0.16 drops support for Python 3.5.
This release of scikit-image officially supports Python 3.6 and 3.7.
Special thanks to Matthias Bussonnier for Frappuccino <https://github.com/Carreau/frappuccino>
__, which helped us catch all API
changes and nail down the APIs for new features.
New Features
- New
skimage.evaluate
module containing simple metrics (mse,
nrme, psd) and segmentation metrics (adapted rand error, variation of
information) (#4025) - n-dimensional TV-L1 optical flow algorithm for registration --
skimage.registration.optical_flow_tvl1
(#3983) - Draw a line in an n-dimensional array --
skimage.draw.line_nd
(#2043) - 2D Farid & Simoncelli edge filters -
skimage.filters.farid
,
skimage.filters.farid_h
, andskimage.filters.farid_v
(#3775) - 2D majority voting filter assigning to each pixel the most commonly
occurring value within its neighborhood --skimage.filters.majority
(#3836, #3839) - Multi-level threshold "multi-Otsu" method, a thresholding algorithm
used to separate the pixels of an input image into several classes by
maximizing the variances between classes --
skimage.filters.threshold_multiotsu
(#3872, #4174) - New example data --
skimage.data.shepp_logan_phantom
,skimage.data.colorwheel
,
skimage.data.brick
,skimage.data.grass
,skimage.data.roughwall
,skimage.data.cell
(#3958, #3966) - Compute and format image region properties as a table --
skimage.measure.regionprops_table
(#3959) - Convert a polygon into a mask --
skimage.draw.poly2mask
(#3971, #3977) - Visual image comparison helper
skimage.util.compare_images
,
that returns an image showing the difference between two input images (#4089) skimage.transform.warp_polar
to remap image into
polar or log-polar coordinates. (#4097)
Improvements
- RANSAC: new option to set initial samples selected for initialization (#2992)
- Better repr and str for
skimage.transform.ProjectiveTransform
(#3525,
#3967) - Better error messages and data type stability to
skimage.segmentation.relabel_sequential
(#3740) - Improved compatibility with dask arrays in some image thresholding methods (#3823)
skimage.io.ImageCollection
can now receive lists of patterns (#3928)- Speed up
skimage.feature.peak_local_max
(#3984) - Better error message when incorrect value for keyword argument
kind
in
skimage.color.label2rgb
(#4055) - All functions from
skimage.drawing
now supports multi-channel 2D images (#4134)
API Changes
- Deprecated subpackage
skimage.novice
has been removed. - Default value of
multichannel
parameters has been set to False in
skimage.transform.rescale
,skimage.transform.pyramid_reduce
,
skimage.transform.pyramid_laplacian
,
skimage.transform.pyramid_gaussian
, and
skimage.transform.pyramid_expand
. Guessing is no longer performed for 3D
arrays. - Deprecated argument
visualise
has been removed from
skimage.feature.hog
. Usevisualize
instead.¨ skimage.transform.seam_carve
has been completely removed from the
library due to licensing restrictions.- Parameter
as_grey
has been removed fromskimage.data.load
and
skimage.io.imread
. Useas_gray
instead. - Parameter
min_size
has been removed from
skimage.morphology.remove_small_holes
. Usearea_threshold
instead. - Deprecated
correct_mesh_orientation
inskimage.measure
has been
removed. skimage.measure._regionprops
has been completely switched to using
row-column coordinates. Old x-y interface is not longer available.- Default value of
behavior
parameter has been set tondimage
in
skimage.filters.median
. - Parameter
flatten
inskimage.io.imread
has been removed in
favor ofas_gray
. - Parameters
Hxx, Hxy, Hyy
have been removed from
skimage.feature.corner.hessian_matrix_eigvals
in favor ofH_elems
. - Default value of
order
parameter has been set torc
in
skimage.feature.hessian_matrix
. skimage.util.img_as_*
functions no longer raise precision and/or loss warnings.
Bugfixes
- Corrected error with scales attribute in ORB.detect_and_extract (#2835)
The scales attribute wasn't taking into account the mask, and thus was using
an incorrect array size. - Correct for bias in Inverse Randon Transform (
skimage.transform.irandon
) (#3067)
Fixed by using the Ramp filter equation in the spatial domain as described
in the reference - Fix a rounding issue that caused a rotated image to have a
different size than the input (skimage.transform.rotate
) (#3173) - RANSAC uses random subsets of the original data and not bootstraps. (#3901,
#3915) - Canny now produces the same output regardless of dtype (#3919)
- Geometry Transforms: avoid division by zero & some degenerate cases (#3926)
- Fixed float32 support in denoise_bilateral and denoise_tv_bregman (#3936)
- Fixed computation of Meijering filter and avoid ZeroDivisionError (#3957)
- Fixed
skimage.filters.threshold_li
to prevent being stuck on stationnary
points, and thus at local minima or maxima (#3966) - Edited
skimage.exposure.rescale_intensity
to return input image instead of
nans when all 0 (#4015) - Fixed
skimage.morphology.medial_axis
. A wrong indentation in Cython
caused the function to not behave as intended. (#4060) - Fixed
skimage.restoration.denoise_bilateral
by correcting the padding in
the gaussian filter(#4080) - Fixed
skimage.measure.find_contours
when input image contains NaN.
Contours interesting NaN will be left open (#4150) - Fixed
skimage.feature.blob_log
andskimage.feature.blob_dog
for 3D
images and anisotropic data (#4162) - Fixed
skimage.exposure.adjust_gamma
,skimage.exposure.adjust_log
,
andskimage.exposure.adjust_sigmoid
such that when provided with a 1 by
1 ndarray, it returns 1 by 1 ndarrays and not single number floats (#4169)
Deprecations
-
Parameter
neighbors
inskimage.measure.convex_hull_object
has been
deprecated in favor ofconnectivity
and will be removed in version 0.18.0. -
The following functions are deprecated in favor of the
skimage.metrics
module (#4025):skimage.measure.compare_mse
skimage.measure.compare_nrmse
skimage.measure.compare_psnr
skimage.measure.compare_ssim
-
The function
skimage.color.guess_spatial_dimensions
is deprecated and
will be removed in 0.18 (#4031) -
The argument
bc
inskimage.segmentation.active_contour
is
deprecated. -
The function
skimage.data.load
is deprecated and will be removed in 0.18
(#4061) -
The function
skimage.transform.match_histogram
is deprecated in favor of
skimage.exposure.match_histogram
(#4107) -
The parameter
neighbors
ofskimage.morphology.convex_hull_object
is
deprecated. -
The
skimage.transform.randon_tranform
function will convert input image
of integer type to float by default in 0.18. To preserve current behaviour,
set the new argumentpreserve_range
to True. (#4131)
Documentation improvements
- DOC: Improve the documentation of transform.resize with respect to the anti_aliasing_sigma parameter (#3911)
- Fix URL for stain deconvolution reference (#3862)
- Fix doc for denoise guassian (#3869)
- DOC: various enhancements (cross links, gallery, ref...), mainly for corner detection (#3996)
- [DOC] clarify that the inertia_tensor may be nD in documentation (#4013)
- [DOC] How to test and write benchmarks (#4016)
- Spellcheck @CONTRIBUTING.txt (#4008)
- Spellcheck @doc/examples/segmentation/plot_watershed.py (#4009)
- Spellcheck @doc/examples/segmentation/plot_thresholding.py (#4010)
- Spellcheck @skimage/morphology/binary.py (#4011)
- Spellcheck @skimage/morphology/extrema.py (#4012)
- docs update for downscale_local_mean and N-dimensional images (#4079)
- Remove fancy language from 0.15 release notes (#3827)
- Documentation formatting / compilation fixes (#3838)
- Remove duplicated section in INSTALL.txt. (#3876)
- ENH: doc of ridge functions (#3933)
- Fix docstring for Threshold Niblack (#3917)
- adding docs to circle_perimeter_aa (#4155)
- Update link to NumPy docstring standard in Contribution Guide (replaces #4191) (#4192)
- DOC: Improve downscale_local_mean() docstring (#4180)
- DOC: enhance the result display in ransac gallery example (#4109)
- Gallery: use fstrings for better readability (#4110)
- MNT: Document stacklevel parameter in contribution guide (#4066)
- Fix minor typo (#3988)
- MIN: docstring improvements in canny functions (#3920)
- Minor docstring fixes for #4150 (#4184)
- Fix
full
parameter description in compare_ssim (#3860) - State Bradley threshold equivalence in Niblack docstring (#3891)
- Add plt.show() to example-code for consistency. (#3908)
- CC0 is not equivalent to public domain. Fix the note of the horse image (#3931)
- Update the joblib link in tutorial_parallelization.rst (#3943)
- Fix plot_edge_filter.py references (#3946)
- Add missing argument to docstring of PaintTool (#3970)
- Improving documentation and tests for directional filters (#3956...
scikit-image 0.14.3
Announcement: scikit-image 0.14.3
As a reminder, 0.14.x is the final version of scikit-image with support for
Python 2.7, and will receive critical bug fixes until Jan 1, 2020. If you
are using Python 3.5 or later, you should upgrade to scikit-image 0.15.x.
This is a bugfix release, and contains the following changes from v0.14.2:
API Changes
Bug Fixes
- _marching_cubes_lewiner_cy: mark char as signed (#3587, #3678)
- Fix potential use of NULL pointer (#3696)
- pypi: explicitly exclude Python 3.1, 3.2, and 3.3 (#3726)
- Reduce default tolerance in threshold_li (#3622) (#3781)
- Denoising functions now accept float32 images (#3449) (#3486) (#3880)
Other Pull Requests
- BLD: pin cython's language_level (#3716)
- Build tools: Upgrade xcode to 9.4 on v0.14.x branch (#3724)
- Get rid of the requirements-parser dependency (#3534, #3727)
- Add small galleries in the API (#2940, #3728)
- Correctly ignore release notes auto-generated for docs (#3656, #3737)
- Fix qt 5.12 pinning for 0.14.x branch. (#3744, #3753)
- Minor fixes to documentation and testing infrastructure - backports #3870 and #3869 (#3881)
- Set astropy minimum requirement to 1.2 to help the CIs. (#3767, #3770)
- Avoid NumPy warning while stacking arrays. (#3768, #3771)
- Fix human readable error message on a bad build. (#3223, #3790)
- Unify LICENSE files for easier interpretation (#3791, #3792)
- Documentation formatting / compilation fixes - Backport of #3838 to v0.14.x (#3885)
- Fix build by using latest
wheel
package (scikit-image/scikit-image-wheels#10)
12 authors added to this release [alphabetical by first name]
- Andrew Murray
- Christoph Gohlke
- Egor Panfilov
- François Boulogne
- Johannes Schönberger
- Juan Nunez-Iglesias
- Lars Grueter
- Mark Harfouche
- Matthew Bowden
- Nehal J Wani
- Nelle Varoquaux
- Stefan van der Walt
- Thomas A Caswell
... and, as always, a special mention to Matthias Bussonnier's Meeseeks Box,
which remains invaluable for our backports.
4 committers added to this release [alphabetical by first name or login]
- Josh Warner
- Juan Nunez-Iglesias
- Mark Harfouche
- Stefan van der Walt
5 reviewers added to this release [alphabetical by first name or login]
- Egor Panfilov
- François Boulogne
- Juan Nunez-Iglesias
- Mark Harfouche
- Stefan van der Walt