Skip to content

Releases: scikit-image/scikit-image

scikit-image 0.16.1

14 Oct 11:14
v0.16.1
Compare
Choose a tag to compare

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:

https://scikit-image.org

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, and skimage.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. Use visualize instead.¨
  • skimage.transform.seam_carve has been completely removed from the
    library due to licensing restrictions.
  • Parameter as_grey has been removed from skimage.data.load and
    skimage.io.imread. Use as_gray instead.
  • Parameter min_size has been removed from
    skimage.morphology.remove_small_holes. Use area_threshold instead.
  • Deprecated correct_mesh_orientation in skimage.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 to ndimage in
    skimage.filters.median.
  • Parameter flatten in skimage.io.imread has been removed in
    favor of as_gray.
  • Parameters Hxx, Hxy, Hyy have been removed from
    skimage.feature.corner.hessian_matrix_eigvals in favor of H_elems.
  • Default value of order parameter has been set to rc 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 and skimage.feature.blob_dog for 3D
    images and anisotropic data (#4162)
  • Fixed skimage.exposure.adjust_gamma, skimage.exposure.adjust_log,
    and skimage.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 in skimage.measure.convex_hull_object has been
    deprecated in favor of connectivity 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 in skimage.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 of skimage.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 argument preserve_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...
Read more

scikit-image 0.14.3

23 May 02:12
a90fd22
Compare
Choose a tag to compare

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

  • morphology.local_maxima now returns a boolean array instead of uint8 (#3749,
    #3752)

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