results will appear at https://pandas.pydata.org/speed/ (#3137)
- Speed up inner loop of GLCM (#3378)
- Allow tuple to define kernel in threshold_niblack and threshold_sauvola (#3596)
- Add support for anisotropic blob detection in blob_log and blob_dog (#3690)
API Changes
-----------
-``skimage.transform.seam_carve`` has been removed because the algorithm is
patented. (#3751)
- Parameter ``dynamic_range`` in ``skimage.measure.compare_psnr`` has been
removed. Use parameter ``data_range`` instead. (#3313)
- imageio is now the preferred plugin for reading and writing images. (#3126)
- imageio is now a dependency of scikit-image. (#3126)
-``regular_grid`` now returns a tuple instead of a list for compatibility
with numpy 1.15 (#3238)
-``colorconv.separate_stains`` and ``colorconv.combine_stains`` now uses
base10 instead of the natural logarithm as discussed in issue #2995. (#3146)
- Default value of ``clip_negative`` parameter in ``skimage.util.dtype_limits``
has been set to ``False``.
- Default value of ``circle`` parameter in ``skimage.transform.radon``
has been set to ``True``.
- Default value of ``circle`` parameter in ``skimage.transform.iradon``
has been set to ``True``.
- Default value of ``mode`` parameter in ``skimage.transform.swirl``
has been set to ``reflect``.
- Deprecated ``skimage.filters.threshold_adaptive`` has been removed.
Use ``skimage.filters.threshold_local`` instead.
- Default value of ``multichannel`` parameter in
``skimage.restoration.denoise_bilateral`` has been set to ``False``.
- Default value of ``multichannel`` parameter in
``skimage.restoration.denoise_nl_means`` has been set to ``False``.
- Default value of ``mode`` parameter in ``skimage.transform.resize``
and ``skimage.transform.rescale`` has been set to ``reflect``.
- Default value of ``anti_aliasing`` parameter in ``skimage.transform.resize``
and ``skimage.transform.rescale`` has been set to ``True``.
- Removed the ``skimage.test`` function. This functionality can be achieved
by calling ``pytest`` directly.
-``morphology.local_maxima`` now returns a boolean array (#3749)
Bugfixes
--------
- Correct bright ridge detection for Frangi filter (#2700)
-``skimage.morphology.local_maxima`` and ``skimage.morphology.local_minima``
no longer raise an error if any dimension of the image is smaller 3 and
the keyword ``allow_borders`` was false.
-``skimage.morphology.local_maxima`` and ``skimage.morphology.local_minima``
will return a boolean array instead of an array of 0s and 1s if the
parameter ``indices`` was false.
- When ``compare_ssim`` is used with ``gaussian_weights`` set to True, the
boundary crop used when computing the mean structural similarity will now
exactly match the width of the Gaussian used. The Gaussian filter window is
also now truncated at 3.5 rather than 4.0 standard deviations to exactly match
the original publication on the SSIM. These changes should produce only a very
small change in the computed SSIM value. There is no change to the existing
behavior when ``gaussian_weights`` is False. (#3802)
- erroneous use of cython wrap around (#3481)
- Speed up block reduce by providing the appropriate parameters to numpy (#3522)
- Add urllib.request again (#3766)
- Repeat pixels in reflect mode when image has dimension 1 (#3174)
- Improve Li thresholding (#3402, 3622)
Deprecations
------------
- Python 2 support has been dropped. Users should have Python >= 3.5. (#3000)
-``skimage.util.montage2d`` has been removed. Use ``skimage.util.montage`` instead.
-``skimage.novice`` is deprecated and will be removed in 0.16.
-``skimage.transform.resize`` and ``skimage.transform.rescale`` option
``anti_aliasing`` has been enabled by default.
-``regionprops`` will use row-column coordinates in 0.16. You can start
using them now with ``regionprops(..., coordinates='rc')``. You can silence
warning messages, and retain the old behavior, with
``regionprops(..., coordinates='xy')``. However, that option will go away
in 0.16 and result in an error. This change has a number of consequences.
Specifically, the "orientation" region property will measure the
anticlockwise angle from a *vertical* line, i.e. from the vector (1, 0) in
row-column coordinates.
-``skimage.morphology.remove_small_holes````min_size`` argument is deprecated
and will be removed in 0.16. Use ``area_threshold`` instead.
-``skimage.filters.median`` will change behavior in the future to have an
identical behavior as ``scipy.ndimage.median_filter``. This behavior can be
set already using ``behavior='ndimage'``. In 0.16, it will be the default
behavior and removed in 0.17 as well as the parameter of the previous
behavior (i.e., ``mask``, ``shift_x``, ``shift_y``) will be removed.
Documentation improvements
--------------------------
- Correct rotate method's center parameter doc (#3341)
- Add Sphinx copybutton (#3530)
- Add glossary to the documentation (#3626)
- Add image of retina to our data (#3748)
- Add microaneurysms() to gallery (#3765)
- Better document remove_small_objects behaviour: int vs bool (#2830)
- Linking preserve_range parameter calls to docs (#3109)
- Update the documentation regarding datalocality (#3127)
- Specify conda-forge channel for scikit-image conda install (#3189)
- Turn DOIs into web links in docstrings (#3367)
- Update documentation for regionprops (#3602)
- DOC: Improve the RANSAC gallery example (#3554)
- DOC: "feature.peak_local_max" : explanation of multiple same-intensity peaks returned by the function; added details on ``exclude_border`` parameter (#3600)
Improvements
------------
- MNT: handle a deprecation warning for np.linspace and floats for the num parameter (#3453)
- TST: numpy empty arrays are not inherently Falsy (#3455)
- handle warning in scipy cdist for unused parameters (#3456)
- MNT: don't use filter_warnings in test suite. (#3459)
- Add doc notes on setting up the build environment (#3472)
- Release the GIL in numerous cython functions (#3490)
- Cython touchups to use float32 and float64 (#3493)
- rank_filters: Change how the bitdepth and max_bin are computed to ensure exact warnings. (#3501)
- Rank: Optimize OTSU filter (#3504)
- Rank - Fix rank entropy and OTSU tests (#3506)
- delay importing pyplot in manual segmentation (#3533)
- Get rid of the requirements-parser dependency (#3534)
- filter warning from ``correct_mesh_orientation`` in tests (#3549)
- cloudpickle is really a doc dependency, not a core one (#3634)
- optional dependencies on pip (#3645)
- Fewer test warnings in 3.7 (#3687)
- collections.abc nit (#3692)
- Streamlined issue template (#3697)
- Tighten the PR Template (#3701)
- Use language level to 3 in cython for future compatibility (#3707)
- Update ISSUE_TEMPLATE.md with info about numpy and skimage versions (#3730)
- Use relative imports for many cython modules (#3759)
- Pass tests that don't raise floating point exceptions on arm with soft-fp (#3337)