NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #673 most downloaded on PyPI
Image processing in Python
Last release 9 months ago
20 Dec 2025
Release timing varies
gaps range from 9 days to 9 months
Some releases are documented
notes for 19 of 47 stable releases
6 versions withdrawn
withdrawn after publishing
14 years old
71 releases · first in 2012
In skimage.morphology , deprecate binary_erosion , binary_dilation , binary_opening , and binary_closing in favor of erosion , dilation , opening , an…
We're happy to announce the release of scikit-image 0.26.0!
max_step_cost to skimage.graph.MCP.find_costs which allows limiting the maximal stepping cost between points (#7625).skimage.transform, add the identity class constructor to all geometric transforms. For example, you can now use skimage.transform.PolynomialTransform(dimensionality=2) (#7754).intensity_median to skimage.measure.regionprops (#7745).binary_blobs now supports a mode parameter for the Gaussian filter, allowing periodic boundary conditions with mode="wrap" (#7909).skimage.morphology, deprecate binary_erosion, binary_dilation, binary_opening, and binary_closing in favor of erosion, dilation, opening, and closing respectively. The binary versions weren't actually significantly faster than their non-binary counterparts and sometimes significantly slower. In the future, we might add optimizations internally to the remaining (general, non-binary) functions for when they're used with binary inputs (#7665).max_cost in skimage.graph.MCP.find_costs which previously did nothing. Use the new parameter max_step_cost instead (#7625).max_cumulative_cost in skimage.graph.MCP.find_costs which did nothing (#7625).skimage.morphology.remove_small_objects, deprecate the min_size parameter in favor of the new max_size parameter to make API and behavior clearer. This new threshold removes objects smaller than or equal to its value, while the previous parameter only removed smaller ones (#7739).skimage.morphology.remove_small_holes, deprecate the area_threshold parameter in favor of the new max_size parameter to make API and behavior clearer. This new threshold removes holes smaller than or equal to its value, while the previous parameter only removed smaller ones (#7739).skimage.transform, deprecate the use of scalar scale, with dimensionality=3 where this can be passed to a geometric transform contructor. This allows us to generalize the use of the constructors to the case where the parameters must specify the dimensionality, unless you mean to construct an identity transform (#7754).skimage.transform, turn all input parameters to transform constructors keyword-only (other than matrix). This avoids confusion due to the positional parameter order being different from the order by which they are applied in AffineTransform (#7754).num_threads in skimage.restoration.rolling_ball; use workers instead (#7302).num_workers in skimage.restoration.cycle_spin; use workers instead (#7302).skimage.measure.regionprops and related functions. While we removed the documentation for these some time ago, they where still accessible as keys (via __get_item__) or attributes. Going forward, using deprecated keys or attributes, will emit an appropriate warning (#7778).skimage.measure, add a new class method and constructor from_estimate for LineModelND, CircleModel, and EllipseModel. This replaces the old API—the now deprecated estimate method—which required initalizing a model with undefined parameters before calling estimate (#7771).skimage.transform, add a new class method and constructor from_estimate for AffineTransform, EssentialMatrixTransform, EuclideanTransform, FundamentalMatrixTransform, PiecewiseAffineTransform, PolynomialTransform, ProjectiveTransform, SimilarityTransform, and ThinPlateSplineTransform. This replaces the old API—the now deprecated estimate method—which required initializing an undefined transform before calling estimate (#7771).skimage.measure.fit.BaseModel; after we expire the other *Model* deprecations, there is no work for an ancestor class to do (#7789).skimage.measure, deprecate .params attributes of the models CircleModel, EllipseModel, and LineModelND. Instead set model-specific attributes: origin, direction for LineModelND; center, radius for CircleModel, center, ax_lens, theta for EllipseModel (#7789).skimage.measure, deprecate use of model constructor calls without arguments leaving an uninitialized instance (for example CircleModel()). This applies to CircleModel, EllipseModel, and LineModelND. Instead prefer input arguments to define instances (for example CircleModel(center, radius)). This follows on from prior deprecation of the estimate method, which had implied the need for the no-argument constructor, of form cm = CircleMoldel(); cm.estimate(data) (#7789).skimage.measure, deprecate use of params arguments to predict* calls of model objects. This applies to CircleModel, EllipseModel, and LineModelND. We now ask instead that the user provide initialization equivalent to the params content in the class construction. For example, prefer cm = CircleModel((2, 3), 4); x = cm.predict_x(t) to cm = CircleMoldel(); x = cm.predict_x(t, params=(2, 3, 4))) (#7789).ValueError instead of a TypeError in CircleModel, EllipseModel, and LineModelND in skimage.measure. This applies when failing to pass a value for params (or passing params=None) to predict methods of an uninitialized transform (#7789).skimage.measure, the RegionProperties class that is returned by regionprops, now has a formatted string representation (__repr__). This representation includes the label of the region and its bounding box (#7887).skimage.measure.moments_central (#7947).skimage.filters.sobel/scharr/prewitt/farid, when mode="constant" is used ensure that cval has an effect. It didn't previously (#7826).skimage.graph.cut_normalized is deterministic when seeded with the rng parameter and when SciPy 1.17.0.dev0 or newer is installed. With earlier SciPy versions the internally used function scipy.linalg.eigsh is not deterministic and can lead to different results (#7912).skimage.morphology.reconstruction (#7938).axis_major_length and axis_minor_length properties of skimage.measure.regionprops (#7916).skimage.util.random_noise, ensure that clip argument is handled consistently for various modes (#7924).import skimage as ski in the docstrings of ski.measure.euler_number, ski.measure.perimeter and ski.measure.perimeter_crofton (#7741).skimage.metrics.normalized_mutual_information (#7750).skimage.measure.ransac in the gallery example "Assemble images with simple image stitching" deterministic. This avoids random non-deterministic failures (#7851).skimage.feature, clarify the description of the parameter num_sigma in blob_log and blob_doh (#7774).pyodide-build==0.30.0, and ensure that the correct xbuildenvs are used (#7788).cibuildwheel to build WASM/Pyodide wheels for scikit-image, push nightlies to Anaconda.org (#7440).pyproject.toml configuration (#7877).legacy_datasets, legacy_registry vars (#7677).mask argument in _generic_edge_filter (#7827).skimage.transform.FundamentalMatrixTransform, refactor scaling calculation to make algorithm clearer, and allow original Hartley algorithm if preferred (#7767)._built_utils/version.py (#7904).test_rag.py::test_reproducibility as flaky for current versions of SciPy (< 1.17.0.dev0) (#7912).divmod in montage index computation (#7914).test_wrap_around as xfail on macOS until 2026-02-01 (#7985).39 authors added to this release (alphabetically):
25 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
One column per quarter.
In skimage.morphology , deprecate binary_erosion , binary_dilation , binary_opening , and binary_closing in favor of erosion , dilation , opening , an…
We're happy to announce the release of scikit-image 0.26.0rc2!
max_step_cost to skimage.graph.MCP.find_costs which allows limiting the maximal stepping cost between points (#7625).skimage.transform, add the identity class constructor to all geometric transforms. For example, you can now use skimage.transform.PolynomialTransform(dimensionality=2) (#7754).intensity_median to skimage.measure.regionprops (#7745).binary_blobs now supports a mode parameter for the Gaussian filter, allowing periodic boundary conditions with mode="wrap" (#7909).skimage.morphology, deprecate binary_erosion, binary_dilation, binary_opening, and binary_closing in favor of erosion, dilation, opening, and closing respectively. The binary versions weren't actually significantly faster than their non-binary counterparts and sometimes significantly slower. In the future, we might add optimizations internally to the remaining (general, non-binary) functions for when they're used with binary inputs (#7665).max_cumulative_cost in skimage.graph.MCP.find_costs which did nothing (#7625).max_cost in skimage.graph.MCP.find_costs which previously did nothing. Use the new parameter max_step_cost instead (#7625).skimage.morphology.remove_small_objects, deprecate the min_size parameter in favor of the new max_size parameter to make API and behavior clearer. This new threshold removes objects smaller than or equal to its value, while the previous parameter only removed smaller ones (#7739).skimage.morphology.remove_small_holes, deprecate the area_threshold parameter in favor of the new max_size parameter to make API and behavior clearer. This new threshold removes holes smaller than or equal to its value, while the previous parameter only removed smaller ones (#7739).skimage.transform, turn all input parameters to transform constructors keyword-only (other than matrix). This avoids confusion due to the positional parameter order being different from the order by which they are applied in AffineTransform (#7754).skimage.transform, deprecate the use of scalar scale, with dimensionality=3 where this can be passed to a geometric transform contructor. This allows us to generalize the use of the constructors to the case where the parameters must specify the dimensionality, unless you mean to construct an identity transform (#7754).num_threads in skimage.restoration.rolling_ball; use workers instead (#7302).num_workers in skimage.restoration.cycle_spin; use workers instead (#7302).skimage.measure.regionprops and related functions. While we removed the documentation for these some time ago, they where still accessible as keys (via __get_item__) or attributes. Going forward, using deprecated keys or attributes, will emit an appropriate warning (#7778).skimage.transform, add a new class method and constructor from_estimate for AffineTransform, EssentialMatrixTransform, EuclideanTransform, FundamentalMatrixTransform, PiecewiseAffineTransform, PolynomialTransform, ProjectiveTransform, SimilarityTransform, and ThinPlateSplineTransform. This replaces the old API—the now deprecated estimate method—which required initializing an undefined transform before calling estimate (#7771).skimage.measure, add a new class method and constructor from_estimate for LineModelND, CircleModel, and EllipseModel. This replaces the old API—the now deprecated estimate method—which required initalizing a model with undefined parameters before calling estimate (#7771).skimage.measure, deprecate use of model constructor calls without arguments leaving an uninitialized instance (for example CircleModel()). This applies to CircleModel, EllipseModel, and LineModelND. Instead prefer input arguments to define instances (for example CircleModel(center, radius)). This follows on from prior deprecation of the estimate method, which had implied the need for the no-argument constructor, of form cm = CircleMoldel(); cm.estimate(data) (#7789).skimage.measure.fit.BaseModel; after we expire the other *Model* deprecations, there is no work for an ancestor class to do (#7789).skimage.measure, deprecate use of params arguments to predict* calls of model objects. This applies to CircleModel, EllipseModel, and LineModelND. We now ask instead that the user provide initialization equivalent to the params content in the class construction. For example, prefer cm = CircleModel((2, 3), 4); x = cm.predict_x(t) to cm = CircleMoldel(); x = cm.predict_x(t, params=(2, 3, 4))) (#7789).skimage.measure, deprecate .params attributes of the models CircleModel, EllipseModel, and LineModelND. Instead set model-specific attributes: origin, direction for LineModelND; center, radius for CircleModel, center, ax_lens, theta for EllipseModel (#7789).ValueError instead of a TypeError in CircleModel, EllipseModel, and LineModelND in skimage.measure. This applies when failing to pass a value for params (or passing params=None) to predict methods of an uninitialized transform (#7789).skimage.measure, the RegionProperties class that is returned by regionprops, now has a formatted string representation (__repr__). This representation includes the label of the region and its bounding box (#7887).skimage.measure.moments_central (#7947).skimage.filters.sobel/scharr/prewitt/farid, when mode="constant" is used ensure that cval has an effect. It didn't previously (#7826).skimage.graph.cut_normalized is deterministic when seeded with the rng parameter and when SciPy 1.17.0.dev0 or newer is installed. With earlier SciPy versions the internally used function scipy.linalg.eigsh is not deterministic and can lead to different results (#7912).skimage.morphology.reconstruction (#7938).axis_major_length and axis_minor_length properties of skimage.measure.regionprops (#7916).skimage.util.random_noise, ensure that clip argument is handled consistently for various modes (#7924).import skimage as ski in the docstrings of ski.measure.euler_number, ski.measure.perimeter and ski.measure.perimeter_crofton (#7741).skimage.metrics.normalized_mutual_information (#7750).skimage.measure.ransac in the gallery example "Assemble images with simple image stitching" deterministic. This avoids random non-deterministic failures (#7851).skimage.feature, clarify the description of the parameter num_sigma in blob_log and blob_doh (#7774).pyodide-build==0.30.0, and ensure that the correct xbuildenvs are used (#7788).cibuildwheel to build WASM/Pyodide wheels for scikit-image, push nightlies to Anaconda.org (#7440).pyproject.toml configuration (#7877).legacy_datasets, legacy_registry vars (#7677).mask argument in _generic_edge_filter (#7827).skimage.transform.FundamentalMatrixTransform, refactor scaling calculation to make algorithm clearer, and allow original Hartley algorithm if preferred (#7767)._built_utils/version.py (#7904).test_rag.py::test_reproducibility as flaky for current versions of SciPy (< 1.17.0.dev0) (#7912).divmod in montage index computation (#7914).test_wrap_around as xfail on macOS until 2026-02-01 (#7985).40 authors added to this release (alphabetically):
25 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain
duplicates.
In skimage.morphology , deprecate binary_erosion , binary_dilation , binary_opening , and binary_closing in favor of erosion , dilation , opening , an…
We're happy to announce the release of scikit-image 0.26.0rc1!
max_step_cost to skimage.graph.MCP.find_costs which allows limiting the maximal stepping cost between points (#7625).skimage.transform, add the identity class constructor to all geometric transforms. For example, you can now use skimage.transform.PolynomialTransform(dimensionality=2) (#7754).intensity_median to skimage.measure.regionprops (#7745).binary_blobs now supports a mode parameter for the Gaussian filter, allowing periodic boundary conditions with mode="wrap" (#7909).skimage.morphology, deprecate binary_erosion, binary_dilation, binary_opening, and binary_closing in favor of erosion, dilation, opening, and closing respectively. The binary versions weren't actually significantly faster than their non-binary counterparts and sometimes significantly slower. In the future, we might add optimizations internally to the remaining (general, non-binary) functions for when they're used with binary inputs (#7665).max_cumulative_cost in skimage.graph.MCP.find_costs which did nothing (#7625).max_cost in skimage.graph.MCP.find_costs which previously did nothing. Use the new parameter max_step_cost instead (#7625).skimage.morphology.remove_small_objects, deprecate the min_size parameter in favor of the new max_size parameter to make API and behavior clearer. This new threshold removes objects smaller than or equal to its value, while the previous parameter only removed smaller ones (#7739).skimage.morphology.remove_small_holes, deprecate the area_threshold parameter in favor of the new max_size parameter to make API and behavior clearer. This new threshold removes holes smaller than or equal to its value, while the previous parameter only removed smaller ones (#7739).skimage.transform, turn all input parameters to transform constructors keyword-only (other than matrix). This avoids confusion due to the positional parameter order being different from the order by which they are applied in AffineTransform (#7754).skimage.transform, deprecate the use of scalar scale, with dimensionality=3 where this can be passed to a geometric transform contructor. This allows us to generalize the use of the constructors to the case where the parameters must specify the dimensionality, unless you mean to construct an identity transform (#7754).num_threads in skimage.restoration.rolling_ball; use workers instead (#7302).num_workers in skimage.restoration.cycle_spin; use workers instead (#7302).skimage.measure.regionprops and related functions. While we removed the documentation for these some time ago, they where still accessible as keys (via __get_item__) or attributes. Going forward, using deprecated keys or attributes, will emit an appropriate warning (#7778).skimage.transform, add a new class method and constructor from_estimate for AffineTransform, EssentialMatrixTransform, EuclideanTransform, FundamentalMatrixTransform, PiecewiseAffineTransform, PolynomialTransform, ProjectiveTransform, SimilarityTransform, and ThinPlateSplineTransform. This replaces the old API—the now deprecated estimate method—which required initializing an undefined transform before calling estimate (#7771).skimage.measure, add a new class method and constructor from_estimate for LineModelND, CircleModel, and EllipseModel. This replaces the old API—the now deprecated estimate method—which required initalizing a model with undefined parameters before calling estimate (#7771).skimage.measure, deprecate use of model constructor calls without arguments leaving an uninitialized instance (for example CircleModel()). This applies to CircleModel, EllipseModel, and LineModelND. Instead prefer input arguments to define instances (for example CircleModel(center, radius)). This follows on from prior deprecation of the estimate method, which had implied the need for the no-argument constructor, of form cm = CircleMoldel(); cm.estimate(data) (#7789).skimage.measure.fit.BaseModel; after we expire the other *Model* deprecations, there is no work for an ancestor class to do (#7789).skimage.measure, deprecate use of params arguments to predict* calls of model objects. This applies to CircleModel, EllipseModel, and LineModelND. We now ask instead that the user provide initialization equivalent to the params content in the class construction. For example, prefer cm = CircleModel((2, 3), 4); x = cm.predict_x(t) to cm = CircleMoldel(); x = cm.predict_x(t, params=(2, 3, 4))) (#7789).skimage.measure, deprecate .params attributes of the models CircleModel, EllipseModel, and LineModelND. Instead set model-specific attributes: origin, direction for LineModelND; center, radius for CircleModel, center, ax_lens, theta for EllipseModel (#7789).ValueError instead of a TypeError in CircleModel, EllipseModel, and LineModelND in skimage.measure. This applies when failing to pass a value for params (or passing params=None) to predict methods of an uninitialized transform (#7789).skimage.measure, the RegionProperties class that is returned by regionprops, now has a formatted string representation (__repr__). This representation includes the label of the region and its bounding box (#7887).skimage.measure.moments_central (#7947).skimage.filters.sobel/scharr/prewitt/farid, when mode="constant" is used ensure that cval has an effect. It didn't previously (#7826).skimage.graph.cut_normalized is deterministic when seeded with the rng parameter and when SciPy 1.17.0.dev0 or newer is installed. With earlier SciPy versions the internally used function scipy.linalg.eigsh is not deterministic and can lead to different results (#7912).skimage.morphology.reconstruction (#7938).axis_major_length and axis_minor_length properties of skimage.measure.regionprops (#7916).skimage.util.random_noise, ensure that clip argument is handled consistently for various modes (#7924).import skimage as ski in the docstrings of ski.measure.euler_number, ski.measure.perimeter and ski.measure.perimeter_crofton (#7741).skimage.metrics.normalized_mutual_information (#7750).skimage.measure.ransac in the gallery example "Assemble images with simple image stitching" deterministic. This avoids random non-deterministic failures (#7851).skimage.feature, clarify the description of the parameter num_sigma in blob_log and blob_doh (#7774).pyodide-build==0.30.0, and ensure that the correct xbuildenvs are used (#7788).cibuildwheel to build WASM/Pyodide wheels for scikit-image, push nightlies to Anaconda.org (#7440).pyproject.toml configuration (#7877).legacy_datasets, legacy_registry vars (#7677).mask argument in _generic_edge_filter (#7827).skimage.transform.FundamentalMatrixTransform, refactor scaling calculation to make algorithm clearer, and allow original Hartley algorithm if preferred (#7767)._built_utils/version.py (#7904).test_rag.py::test_reproducibility as flaky for current versions of SciPy (< 1.17.0.dev0) (#7912).divmod in montage index computation (#7914).39 authors added to this release (alphabetically):
25 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain
duplicates.
In skimage.morphology , deprecate binary_erosion , binary_dilation , binary_opening , and binary_closing in favor of erosion , dilation , opening , an…
We're happy to announce the release of scikit-image 0.26.0rc0!
max_step_cost to skimage.graph.MCP.find_costs which allows limiting the maximal stepping cost between points (#7625).intensity_median to skimage.measure.regionprops (#7745).binary_blobs now supports a mode parameter for the Gaussian filter, allowing periodic boundary conditions with mode="wrap" (#7909).skimage.morphology, deprecate binary_erosion, binary_dilation, binary_opening, and binary_closing in favor of erosion, dilation, opening, and closing respectively. The binary versions weren't actually significantly faster than their non-binary counterparts and sometimes significantly slower. In the future, we might add optimizations internally to the remaining (general, non-binary) functions for when they're used with binary inputs (#7665).max_cost in skimage.graph.MCP.find_costs which previously did nothing. Use the new parameter max_step_cost instead (#7625).max_cumulative_cost in skimage.graph.MCP.find_costs which did nothing (#7625).skimage.morphology.remove_small_holes, deprecate the area_threshold parameter in favor of the new max_size parameter to make API and behavior clearer. This new threshold removes holes smaller than or equal to its value, while the previous parameter only removed smaller ones (#7739).skimage.morphology.remove_small_objects, deprecate the min_size parameter in favor of the new max_size parameter to make API and behavior clearer. This new threshold removes objects smaller than or equal to its value, while the previous parameter only removed smaller ones (#7739).scale, with dimensionality=3 where this can be passed to a geometric transform contructor. This allows us to generalize the use of the constructors to the case where the paraters must specify the dimensionality, unless you mean to construct an identity transform. Add identity class constructor to all geometric transforms. Make all input parameters to Transform constructors, other than matrix, keyword only, to work around difference in the order of parameters, from the order of application, in AffineTransform (#7754).num_threads in skimage.restoration.rolling_ball; use workers instead (#7302).num_workers in skimage.restoration.cycle_spin; use workers instead (#7302).skimage.measure.regionprops and related functions. While we removed the documentation for these some time ago, they where still accessible as keys (via __get_item__) or attributes. Going forward, using deprecated keys or attributes, will emit an appropriate warning (#7778).skimage.measure, add a new class method and constructor from_estimate for LineModelND, CircleModel, and EllipseModel. This replaces the old API—the now deprecated estimate method—which required initalizing a model with undefined parameters before calling estimate (#7771).skimage.transform, add a new class method and constructor from_estimate for AffineTransform, EssentialMatrixTransform, EuclideanTransform, FundamentalMatrixTransform, PiecewiseAffineTransform, PolynomialTransform, ProjectiveTransform, SimilarityTransform, and ThinPlateSplineTransform. This replaces the old API—the now deprecated estimatemethod—which required initializing an undefined transform before callingestimate` (#7771).CircleModel()), leaving an uninitialized instance. Instead prefer input arguments to define instance (e.g. CircleModel(center, radius)). This follows on from prior deprecation of the estimate method, which had implied the need for the no-argument constructor, of form cm = CircleMoldel(); cm.estimate(data). Deprecate .params attributes of models. Instead set model-specific attributes: origin, direction for LineModelND; center, radius for CircleModel, center, ax_lens, theta for EllipseModel. Deprecate use of params arguments to predict* calls of model objects, because we now ask instead that the user provide initialization equivalent to the params content in the class construction (i.e. prefer cm = CircleModel((2, 3), 4); x = cm.predict_x(t) to cm = CircleMoldel(); x = cm.predict_x(t, params=(2, 3, 4))). Deprecate skimage.measure.fit.BaseModel; after we expire the other *Model* deprecations, there is no work for an ancestor class to do. In a small cleanup, we now raise a ValueError instead of a TypeError when failing to pass a value for params (or passing params=None) to predict methods of an uninitialized transform (#7789).skimage.measure, the RegionProperties class that is returned by regionprops, now has a formatted string representation (__repr__). This representation includes the label of the region and its bounding box (#7887).skimage.filters.sobel/scharr/prewitt/farid, when mode="constant" is used ensure that cval has an effect. It didn't previously (#7826).skimage.graph.cut_normalized is deterministic when seeded with the rng parameter and when SciPy 1.17.0.dev0 or newer is installed. With earlier SciPy versions the internally used function scipy.linalg.eigsh is not deterministic and can lead to different results (#7912).random_noise, ensure that 'clip' argument is handled consistently for various modes (#7924).import skimage as ski in the docstrings of ski.measure.euler_number, ski.measure.perimeter and ski.measure.perimeter_crofton (#7741).skimage.metrics.normalized_mutual_information (#7750).skimage.measure.ransac in the gallery example "Assemble images with simple image stitching" deterministic. This avoids random non-deterministic failures (#7851).skimage.feature, clarify the description of the parameter num_sigma in blob_log and blob_doh (#7774).pyodide-build==0.30.0, and ensure that the correct xbuildenvs are used (#7788).cibuildwheel to build WASM/Pyodide wheels for scikit-image, push nightlies to Anaconda.org (#7440).pyproject.toml configuration (#7877).legacy_datasets, legacy_registry vars (#7677).mask argument in _generic_edge_filter (#7827)._built_utils/version.py (#7904).test_rag.py::test_reproducibility as flaky for current versions of SciPy (< 1.17.0.dev0) (#7912).divmod in montage index computation (#7914).37 authors added to this release (alphabetically):
25 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain
duplicates.
We're happy to announce the release of scikit-image 0.25.2!
We're happy to announce the release of scikit-image 0.25.2!
skimage.graph.cut_normalized gracefully (#7675).skimage.feature.BRIEF, copy keypoints if necessary to preserve contiguity (#7692).skimage.segmentation.watershed that unintentionally changed the algorithm's behavior for markers placed at maxima in the image. We decided that the behavior originally reported as a bug (gh-6632), is not actually one (#7702).skimage.restoration.rolling_ball (#7682).6 authors added to this release (alphabetically):
8 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
We're happy to announce the release of scikit-image 0.25.2rc0!
We're happy to announce the release of scikit-image 0.25.2rc0!
skimage.graph.cut_normalized gracefully (#7675).skimage.segmentation.watershed that unintentionally changed the algorithm's behavior for markers placed at maxima in the image. We decided that the behavior originally reported as a bug (gh-6632), is not actually one (#7702).6 authors added to this release (alphabetically):
8 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
We're happy to announce the release of scikit-image 0.25.1!
We're happy to announce the release of scikit-image 0.25.1!
centroid in __all__ of the PYI file in skimage.measure (#7652).blur_effect (#7643).skimage.measure.EllipseModel will now warn and return False (no fit) when fewer than 5 data points are provided (#7648).data with dtype float16 to float32 in skimage.segmentation.random_walker; this fixes passing float16 on NumPy 1.26 (#7655).QuadContourSet.collections in gallery example (#7638).skimage.segmentation.active_contour, change the type of the default argument for w_line to indicate it is a float (#7645).8 authors added to this release (alphabetically):
8 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
Complete the deprecation of and remove skimage.feature.plot_matches . Use skimage.feature.plot_matched_features going forward ( #7487 ).
We're happy to announce the release of scikit-image 0.25.0!
skimage.feature.texture.graycoprops (#7375).skimage.morphology.footprint_rectangle supporting generation of rectangular or hyper-rectangular footprints in one function (#7566).skimage.feature.plot_matches. Use skimage.feature.plot_matched_features going forward (#7487).skimage.io.imshow, skimage.io.imshow_collection and skimage.io.show. Please use matplotlib, napari, etc. to visualize images (#7508).skimage.morphology.skeletonize_3d; use skimage.morphology.skeletonize instead (#7572).skimage.io plugin infrastructure (#7353).scipy.sparse array interface. For more details, see the note about the new scipy.sparse array interface here (#7576).skimage.morphology.rectangle in favor of the new function skimage.morphology.footprint_rectangle (#7566).skimage.morphology.square in favor of the new function skimage.morphology.footprint_rectangle (#7566).skimage.morphology.cube in favor of the new function skimage.morphology.footprint_rectangle (#7566).skimage.morphology.local_minima for extremely small floats (#7534).skimage.feature.plot_matched_features uses the same random colors, if matches_color isn't provided explicitly (#7541).matches_color in skimage.feature.plot_matched_features (#7541).skimage.feature.peak_local_max will now skip unnecessary distance computations in the case of min_distance=1. This results in performance improvements to functions like skimage.feature.blob_dog, skimage.feature.blob_log, skimage.feature.blob_doh and skimage.feature.corner_peaks that call peak_local_max internally (#7548).skimage.featurepeak_local_max, skip unnecessary check for cases where min_distance > 1 is passed (#7548).skimage.morphology.remove_objects_by_distance doesn't fail if the given integer dtype cannot be safely cast to the architecture specific size of intp, e.g. on i386 architectures (#7453).skimage.draw.ellipsoid_stats when all semi-axes have the same length (#7473).skimage.morphology.thin from accidentally modifying the input image in case it is of dtype uint8 (#7469).skimage.measure.ransac. In some cases, ransac was stopping at the first iteration (#7065).skimage.measure.ransac; very small probabilities lead to -0 number of max trials (#7496).RegionProperties objects returned by skimage.measure.regionprops can be deserialized with pickle (#7569).watershed_lines=True in skimage.segmentation.watershed resulted in an incorrect solution (#7071).skimage.segmentation.watershed when the markers don't align with local minima by making sure every marker is evaluated before successive pixels (#7071).skimage.segmentation.join_segmentations if numpy.uint is used with NumPy<2 (#7292).skimage.morphology.skeletonize, clarify the expected image dtypes and how objects of different intensities are handled (#7456).skimage.feature.graycomatrix (#7297).CITATION.cff instead of CITATION.bib (#7505).spin test --coverage in contribution guide (#7515).image parameter in skimage.restoration.richardson_lucy (#7477).radius in skimage.morphology.ball from int to float (#7627).currentmodule directive again (#7492).type: label is present in PRs (#7512).s_cmp unresolved symbol error, update Emscripten CI testing (#7525).spin sdist (#7438).Rotation.from_euler to compute 3D rotation matrix (#7503).lazy_loader as private symbol in top-level namespaces (#7540).io.show and io.imshow (#7556).assert_stacklevel (#7558).changelist to v0.5 (#7601).intersphinx_registry package in conf.py to keep intersphinx urls up to date. This means that building docs now requires the intersphinx-registry package (#7611).square, cube & rectangle (#7624).skimage top module (#6892).30 authors added to this release (alphabetically):
25 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
Complete the deprecation of and remove skimage.feature.plot_matches . Use skimage.feature.plot_matched_features going forward ( #7487 ).
We're happy to announce the release of scikit-image 0.25.0rc2!
skimage.feature.texture.graycoprops (#7375).skimage.morphology.footprint_rectangle supporting generation of rectangular or hyper-rectangular footprints in one function (#7566).skimage.feature.plot_matches. Use skimage.feature.plot_matched_features going forward (#7487).skimage.io.imshow, skimage.io.imshow_collection and skimage.io.show. Please use matplotlib, napari, etc. to visualize images (#7508).skimage.morphology.skeletonize_3d; use skimage.morphology.skeletonize instead (#7572).skimage.io plugin infrastructure (#7353).scipy.sparse array interface. For more details, see the note about the new scipy.sparse array interface here (#7576).skimage.morphology.rectangle in favor of the new function skimage.morphology.footprint_rectangle (#7566).skimage.morphology.square in favor of the new function skimage.morphology.footprint_rectangle (#7566).skimage.morphology.cube in favor of the new function skimage.morphology.footprint_rectangle (#7566).skimage.morphology.local_minima for extremely small floats (#7534).matches_color in skimage.feature.plot_matched_features (#7541).skimage.feature.plot_matched_features uses the same random colors, if matches_color isn't provided explicitly (#7541).skimage.feature.peak_local_max will now skip unnecessary distance computations in the case of min_distance=1. This results in performance improvements to functions like skimage.feature.blob_dog, skimage.feature.blob_log, skimage.feature.blob_doh and skimage.feature.corner_peaks that call peak_local_max internally (#7548).skimage.featurepeak_local_max, skip unnecessary check for cases where min_distance > 1 is passed (#7548).skimage.morphology.remove_objects_by_distance doesn't fail if the given integer dtype cannot be safely cast to the architecture specific size of intp, e.g. on i386 architectures (#7453).skimage.draw.ellipsoid_stats when all semi-axes have the same length (#7473).skimage.morphology.thin from accidentally modifying the input image in case it is of dtype uint8 (#7469).skimage.measure.ransac. In some cases, ransac was stopping at the first iteration (#7065).skimage.measure.ransac; very small probabilities lead to -0 number of max trials (#7496).RegionProperties objects returned by skimage.measure.regionprops can be deserialized with pickle (#7569).skimage.segmentation.watershed when the markers don't align with local minima by making sure every marker is evaluated before successive pixels (#7071).watershed_lines=True in skimage.segmentation.watershed resulted in an incorrect solution (#7071).skimage.segmentation.join_segmentations if numpy.uint is used with NumPy<2 (#7292).skimage.morphology.skeletonize, clarify the expected image dtypes and how objects of different intensities are handled (#7456).skimage.feature.graycomatrix (#7297).CITATION.cff instead of CITATION.bib (#7505).spin test --coverage in contribution guide (#7515).image parameter in skimage.restoration.richardson_lucy (#7477).radius in skimage.morphology.ball from int to float (#7627).currentmodule directive again (#7492).type: label is present in PRs (#7512).s_cmp unresolved symbol error, update Emscripten CI testing (#7525).spin sdist (#7438).Rotation.from_euler to compute 3D rotation matrix (#7503).lazy_loader as private symbol in top-level namespaces (#7540).io.show and io.imshow (#7556).assert_stacklevel (#7558).changelist to v0.5 (#7601).intersphinx_registry package in conf.py to keep intersphinx urls up to date. This means that building docs now requires the intersphinx-registry package (#7611).square, cube & rectangle (#7624).skimage top module (#6892).30 authors added to this release (alphabetically):
25 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
Complete the deprecation of and remove skimage.feature.plot_matches . Use skimage.feature.plot_matched_features going forward ( #7487 ).
We're happy to announce the release of scikit-image 0.25.0rc1!
skimage.feature.texture.graycoprops (#7375).skimage.feature.plot_matches. Use skimage.feature.plot_matched_features going forward (#7487).skimage.io.imshow, skimage.io.imshow_collection and skimage.io.show. Please use matplotlib, napari, etc. to visualize images (#7508).skimage.morphology.local_minima for extremely small floats (#7534).skimage.morphology.remove_objects_by_distance doesn't fail if the given integer dtype cannot be safely cast to the architecture specific size of intp, e.g. on i386 architectures (#7453).skimage.draw.ellipsoid_stats when all semi-axes have the same length (#7473).skimage.morphology.thin from accidentally modifying the input image in case it is of dtype uint8 (#7469).skimage.measure.ransac. In some cases, ransac was stopping at the first iteration (#7065).skimage.measure.ransac; very small probabilities lead to -0 number of max trials (#7496).skimage.morphology.skeletonize, clarify the expected image dtypes and how objects of different intensities are handled (#7456).skimage.feature.graycomatrix (#7297).CITATION.cff instead of CITATION.bib (#7505).spin test --coverage in contribution guide (#7515).image parameter in skimage.restoration.richardson_lucy (#7477).currentmodule directive again (#7492).type: label is present in PRs (#7512).s_cmp unresolved symbol error, update Emscripten CI testing (#7525).spin sdist (#7438).Rotation.from_euler to compute 3D rotation matrix (#7503).lazy_loader as private symbol in top-level namespaces (#7540).io.show and io.imshow (#7556).assert_stacklevel (#7558).21 authors added to this release (alphabetically):
20 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
Nothing published for this version
Replace deprecated nose style setup/teardown with autouse fixtures (#7343).
We're happy to announce the release of scikit-image 0.24.0!
skimage.transform.ThinPlateSplineTransform, which can estimate and model non-linear transforms with thin-plate splines and allows image warping with skimage.transform.warp (#7040).skimage.transform.ThinPlateSplineTransform, which can estimate and model non-linear transforms with thin-plate splines and allows image warping with skimage.transform.warp (#7040).skimage.morphology.remove_objects_by_distance, which removes labeled objects, ordered by size (default), until the remaining objects are a given distance apart (#4165).skimage.feature.corner_fast, test four directions earlier, which should more than half the computation time for most cases (#7394).data_range parameter in skimage.metrics.structural_similarity (#7345).skimage.measure.regionprops (#7405).skimage.measure.find_contours (#7411).skimage.restoration.rolling_ball docstring (#7424).scikit-image (#7350).skimage.util.compare_images, deprecate the parameter image2. Instead use image0, image1 to pass the compared images. Furthermore, all other parameters will be turned into keyword-only parameters once the deprecation is complete (#7322).13 authors added to this release (alphabetically):
15 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
Replace deprecated nose style setup/teardown with autouse fixtures (#7343).
We're happy to announce the release of scikit-image 0.24.0rc1!
skimage.transform.ThinPlateSplineTransform, which can estimate and model non-linear transforms with thin-plate splines and allows image warping with skimage.transform.warp (#7040).skimage.transform.ThinPlateSplineTransform, which can estimate and model non-linear transforms with thin-plate splines and allows image warping with skimage.transform.warp (#7040).skimage.morphology.remove_objects_by_distance, which removes labeled objects, ordered by size (default), until the remaining objects are a given distance apart (#4165).skimage.feature.corner_fast, test four directions earlier, which should more than half the computation time for most cases (#7394).data_range parameter in skimage.metrics.structural_similarity (#7345).skimage.measure.regionprops (#7405).skimage.measure.find_contours (#7411).skimage.restoration.rolling_ball docstring (#7424).scikit-image (#7350).skimage.util.compare_images, deprecate the parameter image2. Instead use image0, image1 to pass the compared images. Furthermore, all other parameters will be turned into keyword-only parameters once the deprecation is complete (#7322).13 authors added to this release (alphabetically):
15 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
Use numpy.inf instead of deprecated numpy.infty (#7386).
We're happy to announce the release of scikit-image 0.23.2!
skimage.util.img_as_ubyte supports the edge case where dtype('uint64').type of the provided image is np.ulonglong instead of np.uint64 (#7392).connectivity parameter in skimage.segmentation.watershed (#7360).numpy.inf instead of deprecated numpy.infty (#7386).astype in tests (#7393).4 authors added to this release (alphabetically):
4 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
Use numpy.inf instead of deprecated numpy.infty (#7386).
[!IMPORTANT] This is a release candidate for a minor patch release!
We're happy to announce the release of scikit-image 0.23.2rc1!
skimage.util.img_as_ubyte supports the edge case where dtype('uint64').type of the provided image is np.ulonglong instead of np.uint64 (#7392).connectivity parameter in skimage.segmentation.watershed (#7360).numpy.inf instead of deprecated numpy.infty (#7386).astype in tests (#7393).4 authors added to this release (alphabetically):
3 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
Parameters shift_x and shift_y in skimage.morphology.erosion and skimage.morphology.dilation are deprecated. Use pad_footprint or modify the footprint…
We're happy to announce the release of scikit-image 0.23.1!
[!NOTE] Due to an issue with the CI system scikit-image 0.23.0 was never released. This release is identical to what 0.23.0 would have been other than the CI fix and the version number.
skimage.morphology.closing and skimage.morphology.opening are extensive and anti-extensive, respectively, if the footprint is not mirror symmetric (#6695).mode to binary_erosion, binary_dilation, binary_opening and binary_closing in skimage.morphology. These new parameters determine how array borders are handled (#6695).mode and cval to erosion, dilation, opening, closing, white_tophat, and black_tophat in skimage.morphology. These new parameters determine how array borders are handled (#6695).skimage.util.map_array by parallelization with Cython's prange (#7266).intensity_std property to skimage.measure.regionprops which computes the standard deviation of the intensity in a region (#6712).mode to binary_erosion, binary_dilation, binary_opening and binary_closing in skimage.morphology. These new parameters determine how array borders are handled (#6695).mirror_footprint and pad_footprint to skimage.morphology (#6695).mode and cval to erosion, dilation, opening, closing, white_tophat, and black_tophat in skimage.morphology. These new parameters determine how array borders are handled (#6695).spacing to segmentation.expand_labels to support anisotropic images (#7080).shift_x and shift_y in skimage.morphology.erosion and skimage.morphology.dilation are deprecated. Use pad_footprint or modify the footprint manually instead (#6695).skimage.morphology.skeletonize_3d for non-binary input images. skeletonize_3d now always returns a binary array like similar functions (#7095).skimage.feature.plot_matches in favor of skimage.feature.plot_matched_features (#7255).skimage.morphology.skeletonize_3d in favor of just skimage.morphology.skeletonize (#7094).output in skimage.filters.gaussian; use out instead (#7225).shift_x, shift_y and shift_z from False to 0 in the skimage.filters.rank functions. This has not impact on the results. Warn in case boolean shifts are provided from now on (#7320).skimage.metrics module (#7211).skimage.util.map_array by parallelization with Cython's prange (#7266).skimage.feature.hog (#7153).skimage.morphology.closing and skimage.morphology.opening are extensive and anti-extensive, respectively, if the footprint is not mirror symmetric (#6695).skimage.registration.phase_cross_correlation when the real-time shift cannot be determined (disambiguate=True). Display a warning instead (#7259).skimage.graph.pixel_graph which raised a TypeError when the parameter edge_function was provided without a mask (#7310).cache=False is passed to skimage.measure.regionprops (#7333).skimage.graph module (#7192).xarray.DataArray and pandas.DataFrame in the crash course on NumPy for images (#7159).skimage.transform.swirl (#7241).moments_normalized (#7248).skimage.registration.optical_flow_tvl1 (#7314).coordinates from docstring example of skimage.segmentation.active_contour (#7329).data_range parameter in skimage.metrics.structural_similarity (#7345).skimage.transform.EuclideanTransform (#7097).assert_stacklevel helper to check stacklevel of captured warnings (#7294).pre-commit[bot] from changelist's contributor list (#7358).version_switcher.json (#7184)._hog.py after previous merge lacking black (#7215).noexcept to address Cython 3.0 warnings (#7250).deprecate_parameter helper (#7256).skimage.registration.phase_cross_correlation (#7287).deprecate_kwarg and remove_arg; they are entirely succeeded by deprecate_parameter (#7290).numpydoc installed (#7307)._optical_flow_utils are private (#7328).test_fits.py (#7340).np.solve in NumPy 2 (#7341).ensure_python_version function (#7370).setup-python@v5, cache@v4, upload-artifact@v4, and download-artifact@v4 (#7368).29 authors added to this release (alphabetically):
21 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
> Due to an issue with the CI system scikit-image 0.23.0 was never released. This release is identical to 0.23.1 other than the CI fix and the version
[!WARNING] Due to an issue with the CI system scikit-image 0.23.0 was never released. This release is identical to 0.23.1 other than the CI fix and the version number.
Parameters shift_x and shift_y in skimage.morphology.erosion and skimage.morphology.dilation are deprecated. Use pad_footprint or modify the footprint…
We're happy to announce the release of scikit-image 0.23.0rc2!
intensity_std property to skimage.measure.regionprops which computes the standard deviation of the intensity in a region (#6712).mode and cval to erosion, dilation, opening, closing, white_tophat, and black_tophat in skimage.morphology. These new parameters determine how array borders are handled (#6695).mirror_footprint and pad_footprint to skimage.morphology (#6695).mode to binary_erosion, binary_dilation, binary_opening and binary_closing in skimage.morphology. These new parameters determine how array borders are handled (#6695).spacing to segmentation.expand_labels to support anisotropic images (#7080).shift_x and shift_y in skimage.morphology.erosion and skimage.morphology.dilation are deprecated. Use pad_footprint or modify the footprint manually instead (#6695).skimage.morphology.skeletonize_3d for non-binary input images. skeletonize_3d now always returns a binary array like similar functions (#7095).skimage.feature.plot_matches in favor of skimage.feature.plot_matched_features (#7255).skimage.morphology.skeletonize_3d in favor of just skimage.morphology.skeletonize` (#7094).output in skimage.filters.gaussian; use out instead (#7225).shift_x, shift_y and shift_z from False to 0 in the skimage.filters.rank functions. This has not impact on the results. Warn in case boolean shifts are provided from now on (#7320).skimage.metrics module (#7211).skimage.util.map_array by parallelization with Cython's prange (#7266).skimage.feature.hog (#7153).skimage.morphology.closing and skimage.morphology.opening are extensive and anti-extensive, respectively, if the footprint is not mirror symmetric (#6695).skimage.registration.phase_cross_correlation when the real-time shift cannot be determined (disambiguate=True). Display a warning instead (#7259).skimage.graph.pixel_graph which raised a TypeError when the parameter edge_function was provided without a mask (#7310).cache=False is passed to skimage.measure.regionprops (#7333).skimage.graph module (#7192).xarray.DataArray and pandas.DataFrame in the crash course on NumPy for images (#7159).skimage.transform.swirl (#7241).moments_normalized (#7248).coordinates from docstring example of skimage.segmentation.active_contour (#7329).data_range parameter in skimage.metrics.structural_similarity (#7345).assert_stacklevel helper to check stacklevel of captured warnings (#7294).pre-commit[bot] from changelist's contributor list (#7358).version_switcher.json (#7184)._hog.py after previous merge lacking black (#7215).noexcept to address Cython 3.0 warnings (#7250).deprecate_parameter helper (#7256).skimage.registration.phase_cross_correlation (#7287).deprecate_kwarg and remove_arg; they are entirely succeeded by deprecate_parameter (#7290).numpydoc installed (#7307)._optical_flow_utils are private (#7328).test_fits.py (#7340).np.solve in NumPy 2 (#7341).29 authors added to this release (alphabetically):
21 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
Nothing published for this version
Nothing published for this version
Remove deprecated skimage.filters.inverse. Use skimage.filters.filter_inverse instead (#7161).
We're happy to announce the release of scikit-image 0.22.0rc1!
skimage.data.palisades_of_vogt showing in-vivo tissue of the palisades of Vogt (#6858).skimage.feature module (#6983).skimage.graph submodule (#6985).skimage.measure submodule (#6999).skimage.transform submodule (#7009).skimage.restoration submodule (#7021).skimage.registration submodule (#7032).skimage.measure.block_resize (#7092).extra_properties of non equal lengths to be passed correctly to regionprops_table (#7136).skimage.restoration.denoise_wavelet and skimage.restoration.estimate_sigma (#7156).skimage.filters.inverse. Use skimage.filters.filter_inverse instead (#7161).skimage.filters.ridges.compute_hessian_eigenvalues. Use skimage.feature.hessian_matrix_eigvals on the results of skimage.feature.hessian_matrix instead (#7162).skimage.filters.gaussian. channel_axis=None now indicates a grayscale image. Set the color channel with channel_axis=-1 explicitly (#7164).skimage.registration.phase_cross_correlation. The function now always returns the 3 arguments shift, error, and phasediff (#7166).return_error in skimage.registration.phase_cross_correlation (#7174).np.clip as optional in tests (#7052).import skimage as ski (#7024)._build_utils/tempita.py (#7137).phase_cross_correlation (#7175).restoration.wiener's docstring (#6987).generate_release_notes.py (changelist) (#7049).SimilarityTransform docstring (#6840).skimage.segmentation (#6843).skimage.util (#6831).skimage.transform.EuclideanTransform (#7103).morphology module (#6814).skimage.draw.polygon2mask (#7131).random.js (#7015).main branch (#7018).spin docs --clean command (#7019).generate_release_notes.py and add PR summary parsing (#6961).pyproject.toml with repo-review recommendations (#7063).23 authors added to this release (alphabetically):
19 reviewers added to this release (alphabetically):
These lists are automatically generated, and may not be complete or may contain duplicates.
Fix and refactor deprecated decorator to deprecate_func (#6594).
We're happy to announce the release of scikit-image 0.21.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
In this release, we unify the way seeds are specified for algorithms that make use of pseudo-random numbers. Before, various keyword arguments (sample_seed, seed, random_seed, and random_state) served the same purpose in different places. These have all been replaced with a single rng argument, that handles both integer seeds and NumPy Generators. Please see the related SciPy discussion, as well as Scientific Python SPEC 7 that attempts to summarize the argument.
_invariant_denoise to denoise_invariant (#6660).color.get_xyz_coords in public API (#6696).join_segmentations return array maps from output to input labels (#6786).spacing parameter is tuple in regionprops (#6907).rescale_intensity with dask array (#6910).deprecated decorator to deprecate_func (#6594)._invariant_denoise to denoise_invariant (#6660).color.get_xyz_coords in public API (#6696).AffineTransform (#6717).footprints.diamond test case (#6756).segmentation.watershed (#6839).transform.resize (#6852).data_dir (#6886).area_opening (#6913).random.js in HTML output (#6935).skimage.graph._ncut (#6975).deprecated decorator to deprecate_func (#6594).footprints.diamond test case (#6756)._supported_float_type (#6847).image_fetcher and create_image_fetcher in data private (#6855).version_switcher.json URL at dev docs (#6882).data_dir (#6886).noexcept to support Cython 3 (#6936).ransac's docstring (#6938).GeometricTransform.residuals in HTML doc (#6968).draw.polygon and draw.polygon2mask (#6690).skimage.color module (#6777).docstring_add_deprecated (#6778).transform module (#6797).segmentation.watershed (#6839)._warps_cy.pyx (#6867).version_switcher.json URL at dev docs (#6882).area_opening (#6913).GeometricTransform.residuals in HTML doc (#6968).codecov dependency which disappeared from PyPI (#6887).random.js in HTML output (#6935).--install-deps flags to spin docs (#6940).type: label is present on each PR (#6960).Nothing published for this version
Nothing published for this version
…algorithms more closely. This change is backward incompatible and will lead to different output values compared to the previous implementation. The He…
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.
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 new decomposition parameter of the functions rectangle, diamond, disk, cube, octahedron, ball, and octagon in skimage.morphology. The footprint parameter of the functions binary_erosion, binary_dilation, binary_opening, binary_closing, erosion, dilation, opening, closing, white_tophat, and black_tophat in skimage.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).spacing of the following functions in skimage.measure: regionprops, regionprops_table, moments, moments_central, moments_normalized, centroid, inertia_tensor, and inertia_tensor_eigvals. Voxel spacing is taken into account for the following existing properties in skimage.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, and moments_weighted_hu. The new properties num_pixels and coords_scaled are available as well. See the respective docstrings for more details (#6296).isotropic_closing, isotropic_dilation, isotropic_erosion, and isotropic_opening in skimage.morphology. These functions return the same results as their non-isotropic counterparts but perform faster for large circular structuring elements (#6492).pearson_corr_coeff, manders_coloc_coeff, manders_overlap_coeff and intersection_coeff to skimage.measure (#6189).skimage.metrics.hausdorff_distance via the new parameter method. The MHD can be more robust against outliers than the directed Hausdorff Distance (HD) (#5581).skimage.data.protein_transport and skimage.data.nickel_solidification (#6087).use_gaussian_derivatives to skimage.feature.hessian_matrix which allows the computation of the Hessian matrix by convolving with Gaussian derivatives (#6149).squared_butterworth and npad to skimage.filters.butterworth, which support traditional or squared filtering and edge padding, respectively (#6251).skimage.io.ImageCollection from a load_pattern with an arbitrary sequence as long as a matching load_func is provided (#6276).alpha to skimage.metrics.adapted_rand_error allowing control over the weight given to precision and recall (#6472).binarize to skimage.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).include_borders to skimage.measure.convex_hull_image to optionally exclude vertices or edges from the final hull mask (#6515).offsets to skimage.measure.regionprops that optionally allows specifying the coordinates of the origin and affects the properties coords_scaled and coords (#3706).disambiguate to skimage.registration.phase_cross_correlation to optionally disambiguate periodic shifts (#6617).skimage.filters.farid (Farid & Simoncelli filter) (#6257).skimage.restoration.wiener (#6454).rotation and translation in skimage.transform.EuclideanTransform as well as for skimage.transform.SimilarityTransform.scale (#6367).skimage.morphology.flood_fill (#6236).AffineTransform, EssentialMatrixTransform, EuclideanTransform, FundamentalMatrixTransform, GeometricTransform, PiecewiseAffineTransform, PolynomialTransform, ProjectiveTransform, SimilarityTransform, estimate_transform, and matrix_transform in skimage.transform (#6270).skimage.feature.canny by porting a part of its implementation to Cython (#6387).skimage.feature.hessian_matrix_eigvals and 2D skimage.feature.structure_tensor_eigenvalues (#6441).skimage.measure.moments_central by avoiding redundant computations (#6188).skimage.io by loading the matplotlib plugin only when required (#6550).skimage.measure.ransac which decrease the number of iterations (#6046).skimage.exposure.match_histograms. (#6209, #6354).meijering, sato, frangi, and hessian in skimage.filters (#6509).blob_dog, blob_log, and blob_doh in skimage.feature (#6597).skimage.morphology.reconstruction which allows to operate the function with higher precision or on larger arrays. Previously, int32 was used. (#6342).skimage.filters.rank_order which allows to operate the function with higher precision or on larger arrays. Previously, the returned labels and original_values were always of type uint32. (#6342).skimage.filters.meijering, skimage.filters.sato, skimage.filters.frangi, and skimage.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).skimage.future.graph to skimage.graph. This affects cut_threshold, cut_normalized, merge_hierarchical, rag_mean_color, RAG, show_rag, and rag_boundary (#6674).False in skimage.measure.LineModelND.estimate instead of raising an error if the model is under-determined (#6453).False in skimage.measure.CircleModel.estimate instead of warning if the model is under-determined (#6453).skimage.filters.inverse to skimage.filters.inverse_filter. skimage.filters.inverse is deprecated and will be removed in the next release (#6418, #6701).numpy>=1.20 (#6565).scipy>=1.8 (#6564).networkx>=2.8 (#6564).pillow>=9.0.1 (#6402).setuptools 67 (#6754).matplotlib>=3.3 (#6383).skimage.feature.local_binary_pattern. Applying the function to floating-point images may give unexpected results when small numerical differences between adjacent pixels are present (#6272).skimage.registration.phase_cross_correlation returns only the shift vector. Starting with the next release this function will always return a tuple of three (shift vector, error, phase difference). Use return_error="always" to silence this warning and switch to this new behavior (#6543).skimage.metrics.structural_similarity, if data_range is not specified in case of floating point data (#6612).skimage.filters.gaussian and a warning is emitted if the parameter channel_axis is not set explicitly (#6583).skimage.viewer which was scheduled for removal in the postponed version 1.0 (#6160).indices from skimage.feature.peak_local_max (#6161).skimage.feature.structure_tensor_eigvals (it was replaced by skimage.feature.structure_tensor_eigenvalues) and change the default parameter value in skimage.feature.structure_tensor to order="rc" (#6162).array in favor of image from skimage.measure.find_contours (#6163).skivi console script (#6164).method='_lorensen' in skimage.measure.marching_cubes (#6230).multichannel; use channel_axis instead. This affects skimage.draw.random_shapes, skimage.exposure.match_histograms, skimage.feature.multiscale_basic_features, skimage.feature.hog, skimage.feature.difference_of_gaussians, skimage.filters.unsharp_mask, and skimage.metrics.structural_similarity. In skimage.restoration, this affects cycle_spin, denoise_bilateral, denoise_tv_bregman, denoise_tv_chambolle, denoise_wavelet, estimate_sigma, inpaint_biharmonic, and denoise_nl_means. In skimage.segmentation, this affects felzenszwalb, random_walker, and slic. In skimage.transform, this affects rescale, warp_polar, pyramid_reduce, pyramid_expand, pyramid_gaussian, and pyramid_laplacian. In skimage.util, this affects montage and apply_parallel (#6583).selem; use footprint instead. In skimage.filters, this affects median, autolevel_percentile, gradient_percentile, mean_percentile, subtract_mean_percentile, enhance_contrast_percentile, percentile, pop_percentile, sum_percentile, threshold_percentile, mean_bilateral, pop_bilateral, sum_bilateral, autolevel, equalize, gradient, maximum, mean, geometric_mean, subtract_mean, median, minimum, modal, enhance_contrast, pop, sum, threshold, noise_filter, entropy, otsu, windowed_histogram, and majority. In skimage.morphology, this affects flood_fill, flood, binary_erosion, binary_dilation, binary_opening, binary_closing, h_maxima, h_minima, local_maxima, local_minima, erosion, dilation, opening, closing, white_tophat, black_tophat, and reconstruction (#6583).max_iter from skimage.filters.threshold_minimum, skimage.morphology.thin, and skimage.segmentation.chan_vese; use max_num_iter instead (#6583).max_iterations from skimage.segmentation.active_contour; use max_num_iter instead (#6583).input from skimage.measure.label; use label_image instead (#6583).coordinates from skimage.measure.regionprops and skimage.segmentation.active_contour (#6583).neighbourhood from skimage.measure.perimeter; use neighborhood instead (#6583).height and width from skimage.morphology.rectangle; use ncols and nrows instead (#6583).in_place from skimage.morphology.remove_small_objects, skimage.morphology.remove_small_holes, and skimage.segmentation.clear_border; use out instead (#6583).iterations from skimage.restoration.richardson_lucy, skimage.segmentation.morphological_chan_vese, and skimage.segmentation.morphological_geodesic_active_contour; use num_iter instead (#6583)."min_iter" and "max_iter" in skimage.restoration.unsupervised_wiener's parameter user_params; use "min_num_iter" and "max_num_iter" instead (#6583).greycomatrix and greycoprops from skimage.feature (#6583).skimage.morphology.grey and skimage.morphology.greyreconstruct; use skimage.morphology instead (#6583).skimage.morphology.selem; use skimage.morphology.footprints instead (#6583).skimage.future.graph.ncut (it was replaced by skimage.graph.cut_normalized) (#6685).skimage.exposure.adjust_gamma (#6285).skimage.draw.rectangle to int even if the input coordinates use float. This fix ensures that the output can be used for indexing similar to other draw functions (#6501).skimage.feature.peak_local_max if the peak value is smaller 0 (#6502).skimage.transform.resize by default when using nearest neighbor interpolation (order == 0) with an integer input data type (#6503).skimage.segmentation.slic. Previously, the mask was ignored when rescaling the image to make choice of compactness insensitive to the image values. The new behavior makes it possible to mask values such as numpy.nan or numpy.infinity. Additionally, raise an error if the input image has two dimensions and a channel_axis is specified - indicating that the image is multi-channel (#6525).exclude_border in skimage.feature.blog_dog and skimage.feature.blob_log (#6533).skimage.segmentation.random_walker if no seeds are provided as positive values in the parameter labels (#6562).skimage.measure.regionprops when the required intensity_image is unavailable (#6584).skimage.feature.ORB.detect_and_extract by breaking early if the octave image is too small (#6590).skimage.restoration.inpaint_biharmonic for images with Fortran-ordered memory layout (#6263).skimage.filters.gaussian (this behavior is deprecated, see new deprecations) (#6583).skimage.color.lab2rgb (#6616).skimage.feature.hessian_matrix and raise an error if order='xy' is requested for images with more than 2 dimensions (#6624).skimage.filters.rank that did not mention that 2D images are also supported (#6666).skimage.graph.RAG.merge_nodes (#6692).heappush function (#6727).Cascade.detect_multi_scale (#6728).skimage.filters.butterworth (#6251)..github/SUPPORT.md) to help users from GitHub find appropriate support resources (#6171, #6575).CITATION.bib to repository to help with citing scikit-image (#6195).dev.py (#6600).weights term and rewrite docstrings of skimage.restoration.denoise_tv_bregman and skimage.restoration.denoise_tv_chambolle (#6544).skimage.io.MultiImage more precisely in its docstring (#6290, #6292).watershed_line parameter will not catch borders between adjacent marker regions in skimage.segmentation.watershed (#6280).skimage.morphology.skeletonize accepts an image of any input type (#6322).skimage.data (#6298, #6300, #6301).balance in the docstring example of skimage.restoration.wiener for a less blurry result (#6265).skimage.io.imread and skimage.io.imsave (#6361).skimage.filters.threshold_multiotsu if the discretized image cannot be thresholded (#6375).grey* to skimage.feature.graymatrix and skimage.feature.graycoprops in the release 0.19 (#6420).skimage.metricts.structural_similarity (#6595).imshow in gallery example "Measure fluorescence intensity at the nuclear envelope" (#6599).scikit-image[data] and pooch in INSTALL.rst (#6619).lab2xyz, rgb2lab, lab2lch, and lch2lab in skimage.color (#6688, #6697, #6719).skimage.feature.local_binary_pattern (#6736).skimage.measure.marching_cubes in gallery example "Marching Cubes" (#6377).connectivity parameter in the docstring of skimage.morphology.flood (#6534).skimage.metrics.hausdorff_distance (#6203).skimage.measure.moments_hu (#6016).skimage.util.random_noise (#6532).skimage.filters.sobel (#6474).skimage.morphology.footprint_from_sequence in the public API documentation (#6555).skimage.exposure.rescale_intensity (#6582).git:// connection protocol and remove references to it (#6201, #6283).doc/source/user_guide/getting_help.rst (#6575).api_changes.rst with release_dev.rst (#6495).skimage.measure.regionprops (#6545).skimage.morphology.isotropic_ functions (#6628).plot_thresholding.py (#6644).plot_equalize (#6650).plot_rank_filters (#6652).in plot_log_gamma.py (#6655).skimage.data.coffee (#6740).skimage.graph.merge_nodes (#6741).skimage.metrics.variation_of_information (#6768).cnp.float32_t and cnp.float64_t over float and double in Cython code (#6303).skimage/measure/mc_meta folder into tools/precompute/ folder to avoid its unnecessary distribution to users (#6294).getLutNames in tools/precompute/mc_meta/createluts.py (#6294).'python_to_notebook' in doc/ext/notebook_doc.py (#6307).skimage.measure.tests.test_moments (#6323).skimage.morphology.skeletonize and update code style and tests (#6327)._probabilistic_hough_line (#6373).skimage.measure._regionprops (#6389).loadtxt of NumPy 1.23 with skimage/feature/orb_descriptor_positions.txt (#6400).doc.* from package install (#6428).vertices with simplices in skimage.transform._geometric (#6430).skimage.filters.sato (#6434).TODO.txt (#6442).skimage.feature._canny (#6457).with open(...) as f instead of f = open(...) (#6458).broadcast_to instead of as_strided to generate broadcasted arrays (#6476).moving_image in docstring of skimage.registration._optical_flow._tvl1 (#6480).pyplot.get_cmap instead of deprecated cm.get_cmap in skimage.future.graph.show_rag for compatibility with matplotlib 3.3 to 3.6 (#6483, #6490).plot_euler_number.py for maplotlib 3.6 compatibility (#6522).license_file to license_files in setup.cfg (#6529).FUNDING.yml in preference of org version (#6553).tifffile.imwrite defaults and avoid test warnings (#6460).networkx.to_scipy_sparse_array (#6564).pyproject.toml to support Python 3.11 and to fix 32-bit pinned packages on Windows (#6519).pyproject.toml (#6634).>=0.11.0 (#6627).skimage.color.lab2xyz (#6613).check: true for run_command in skimage/meson.build (#6606).dev.py and setup commands (#6600).dev.py commands into sections (#6629).skimage.transform.resize (#6669).gtk_plugin.ini (#6686).skimage/__init__.py in skimage/meson.build (#6723).uintptr_t to calculate new heap ptr positions (#6734).setuptools 65.6+ (#6751).setup.cfg, use pyproject.toml instead (#6758).pyproject.toml to use meson-python>=0.13.0rc0 (#6759).morphology.local_maxima (#3255).skimage.morphology.reconstruction (#6342).actions/stale to label "dormant" issues and PRs (#6506, #6546, #6552).tools/github/before_install.sh (#6379).benchmarks.yaml workflow (#6520).azure-pipelines.yml (#6626).tools/github/before_install.sh wheels workflow (#6718).skimage._shared._warnings.expected_warnings (#6733).Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Backport PR #6261 on branch v0.19.x (Ignore sparse matrix deprecation warning)
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:
https://scikit-image.org
skimage.restoration.cycle_spin (now defaults to single channel again)tifffile release.skimage.future.manual_polygon_segmentation to work with Matplotlib 3.5.skimage.io.imread to avoid warnings when using imageio>=2.16.2.test_tifffile_kwarg_passthrough) (#6357)Backport PR #6130 on branch v0.19.x (bump deprecated Azure windows environment) (gh-6131)
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.
enforce_connectivity=True and start_label > 0) (gh-6246)We're happy to announce the release of scikit-image v0.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.
channel_axis parameter in transform functions) (gh-6100)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…
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.
channel_axis argument under the API section of the release notes.skimage.measure.blur_effect).skimage.restoration.denoise_nl_means) now supports 3D multichannel, 4D and 4D multichannel data when fast_mode=True.skimage.filters.butterworth) was added.channel_axis keyword argument that allows specification of which axis of an array corresponds to channels. For backwards compatibility, this parameter defaults to channel_axis=-1, indicating that channels are along the last axis.random_state to morphology.medial_axis and restoration.unsupervised_wiener.numpy.random.Generator.saturation parameter to skimage.color.label2rgbskimage.metrics.normalized_mutual_informationskimage.util.label_points function for assigning labels to points.skimage.metrics.hausdorff_pair to find points separated by the Hausdorff distance.illuminants and observers parameter options were added to skimage.color.lab2rgb, skimage.color.rgb2lab,
skimage.color.xyz2lab, skimage.color.lab2xyz, skimage.color.xyz2luv and skimage.color.luv2xyz.skimage.filters.threshold_multiotsu has a new hist 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)skimage.feature functions blob_dog, blob_doh and blob_log now support a threshold_rel keyword argument that can be used to specify a relative threshold (in range [0, 1]) rather than an absolute one. (gh-5517)skimage.graph: pixel_graph generates a graph (network) of pixels according to their adjacency, and central_pixel finds the geodesic center of the pixels. (gh-5602)skimage.restoration.inpaint_biharmonic) was refactored and is orders of magnitude faster than before.skimage.util.random_noise is now faster.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 for uint8 images thanks to a LUT (gh-4966).measure.label has been accelerated for boolean input images, by using scipy.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.skimage.filters.correlate_sparse.skimage.filters.try_all_threshold.skimage.filters.find_local_max when given a finite num_peaks.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.skimage.color.label2rgb performance regression was addressed.CircleModel.estimate. (gh-5190)skimage.restoration.denoise_tv_bregman, skimage.measure.block_reduce, and skimage.filters.threshold_local. (gh-5454)multichannel boolean argument has been deprecated. All functions with multichannel support now use an integer channel_axis to specify which axis corresponds to channels. Setting channel_axis to None is used to indicate that the image is grayscale. Specifically, existing code with multichannel=True should be updated to use channel_axis=-1 and code with multichannel=False should now specify channel_axis=None.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 of data.chelsea for a more descriptive name.level parameter of measure.find_contours is now a keyword argument, with a default value set to (max(image) - min(image)) / 2.p_norm argument was added to skimage.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 new dtype keyword argument can be used to override this behavior when desired.channel_axis keyword argument (see New Features section).compactness parameter has an effect that is independent of the input image's scaling.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 setting normalization=None. There is no change to the masked cross-correlation case, which uses a different algorithm.labels argument renumbering in skimage.feature.peak_local_max is avoided (gh-5047).find_bounaries with mode='subpixel' (gh-5447)._label2rgb_avg function.skimage.color.separate_stains does not return negative values.EllipseModel.skimage.transform.hough_line.skimage.filters.gaussian.skimage.segmentation.random_walker.skimage.measure.regionprops_table) dtype bugfix.skimage.transform.rescale when using a small scale factor.skimage.measure.label segfault.skimage.segmentation.watershed): consider connectivity when calculating markers.skimage.transform.warp output dtype when order=0.intensity_image extra_properties in regionprops.skimage.metric.structural_similarity when image is too small.skimage.segmentation.find_boundaries.skimage.exposure.is_low_contrast for boolean inputs.skimage.metric.structural_similarity .skimage.filters.threshold_otsu.skimage.feature.blob_dog docstring example and normalization.skimage.exposure.adjust_gamma.offsets attribute of skimage.graph.MCP is now public. (gh-5547)skimage.exposure.histogram and skimage.measure.regionprops_table. (gh-5522)skimage.register.phase_cross_correlation. (gh-5461)convex_hull) (gh-6008)measure.label, the deprecated neighbors parameter has been removed (use connectivity instead).skimage.color.rgb2grey and skimage.color.grey2rgb functions have been removed (use skimage.color.rgb2gray and
skimage.color.gray2rgb instead).skimage.color.rgb2gray no longer allows grayscale or RGBA inputs.alpha parameter of skimage.color.gray2rgb has now been removed. Use skimage.color.gray2rgba for conversion to RGBA.order > 0 now raises a ValueError.anti-aliasing=True will raise a ValueError.bg_label parameter of skimage.color.label2rgb is now 0.filter parameter of skimage.transform.iradon has now been removed (use filter_name instead).skimage.draw.circle function has been removed (use skimage.draw.disk instead).skimage.feature.register_translation function has been removed (use skimage.registration.phase_cross_correlation instead).skimage.feature.masked_register_translation function has been removed (use skimage.registration.phase_cross_correlation instead).skimage.measure.marching_cubes_classic function has been removed (use skimage.measure.marching_cubes instead).skimage.measure.marching_cubes_lewiner function has been removed (use skimage.measure.marching_cubes instead).skimage.segmentation.circle_level_set function has been removed (use skimage.segmentation.disk_level_set instead).inplace parameter of skimage.morphology.flood_fill has been removed (use in_place instead).skimage.util.pad function has been removed (use numpy.pad instead).mode in skimage.filters.hessian is now 'reflect'.mode in skimage.filters.sato is now 'reflect'.mode in skimage.measure.profile_line is now 'reflect'.preserve_range in skimage.restoration.denoise_nl_means is now False.start_label in skimage.segmentation.slic is now 1.The multichannel argument is now deprecated throughout the library and will be removed in 1.0. The new channel_axis argument should be used instead. Existing code with multichannel=True should be updated to use channel_axis=-1 and code with multichannel=False should now specify channel_axis=None.
skimage.feature.greycomatrix and skimage.feature.greycoprops are deprecated in favor of skimage.feature.graycomatrix and
skimage.feature.graycoprops.
The skimage.morphology.grey module has been renamed skimage.morphology.gray. The old name is deprecated.
The skimage.morphology.greyreconstruct module has been renamed skimage.morphology.grayreconstruct. The old name is deprecated.
see API Changes section regarding functions with deprecated argument names related to the number of iterations. num_iterations and
max_num_iter are now used throughout the library.
see API Changes section on deprecation of the selem argument in favor of footprint throughout the library
Deprecate in_place in favor of the use of an explicit out argument in skimage.morphology.remove_small_objects,
skimage.morphology.remove_small_holes and skimage.segmentation.clear_border
The input argument of skimage.measure.label has been renamed label_image. The old name is deprecated.
standardize on num_iter for paramters describing the number of iterations and max_num_iter for parameters specifying an iteration limit. Functions where the old argument names have now been deprecated are::
| Function Name |
|---|
| skimage.filters.threshold_minimum |
| skimage.morphology.thin |
| skimage.restoration.denoise_tv_bregman |
| skimage.restoration.richardson_lucy |
| skimage.segmentation.active_contour |
| skimage.segmentation.chan_vese |
| skimage.segmentation.morphological_chan_vese |
| skimage.segmentation.morphological_geodesic_active_contour |
| skimage.segmentation.slic |
The names of several parameters in skimage.measure.regionprops
have been updated so that properties are better grouped by the first
word(s) of the name. The old names will continue to work for
backwards compatibility. The specific names that were updated are:
| Old Name | New Name |
|---|---|
| max_intensity | intensity_max |
| mean_intensity | intensity_mean |
| min_intensity | intensity_min |
| bbox_area | area_bbox |
| convex_area | area_convex |
| filled_area | area_filled |
| convex_image | image_convex |
| filled_image | image_filled |
| intensity_image | image_intensity |
| local_centroid | centroid_local |
| weighted_centroid | centroid_weighted |
| weighted_local_centroid | centroid_weighted_local |
| major_axis_length | axis_major_length |
| minor_axis_length | axis_minor_length |
| weighted_moments | moments_weighted |
| weighted_moments_central | moments_weighted_central |
| weighted_moments_hu | moments_weighted_hu |
| weighted_moments_normalized | moments_weighted_normalized |
| equivalent_diameter | equivalent_diameter_area |
The selem argument has been renamed to footprint throughout the library. The selem argument is now deprecated.
Additional details at: https://raw.githubusercontent.com/scikit-image/scikit-image/v0.19.0/doc/release/release_0.19.rst
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…
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).
channel_axis argument under the API section of the release notes.skimage.measure.blur_effect).skimage.restoration.denoise_nl_means) now supports 3D multichannel, 4D and 4D multichannel data when fast_mode=True.skimage.filters.butterworth) was added.channel_axis keyword argument that allows specification of which axis of an array corresponds to channels. For backwards compatibility, this parameter defaults to channel_axis=-1, indicating that channels are along the last axis.random_state to morphology.medial_axis and restoration.unsupervised_wiener.numpy.random.Generator.saturation parameter to skimage.color.label2rgbskimage.metrics.normalized_mutual_informationskimage.util.label_points function for assigning labels to points.skimage.metrics.hausdorff_pair to find points separated by the Hausdorff distance.illuminants and observers parameter options were added to skimage.color.lab2rgb, skimage.color.rgb2lab,
skimage.color.xyz2lab, skimage.color.lab2xyz, skimage.color.xyz2luv and skimage.color.luv2xyz.skimage.filters.threshold_multiotsu has a new hist 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)skimage.feature functions blob_dog, blob_doh and blob_log now support a threshold_rel keyword argument that can be used to specify a relative threshold (in range [0, 1]) rather than an absolute one. (gh-5517)skimage.graph: pixel_graph generates a graph (network) of pixels according to their adjacency, and central_pixel finds the geodesic center of the pixels. (gh-5602)skimage.restoration.inpaint_biharmonic) was refactored and is orders of magnitude faster than before.skimage.util.random_noise is now faster.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 for uint8 images thanks to a LUT (gh-4966).measure.label has been accelerated for boolean input images, by using scipy.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.skimage.filters.correlate_sparse.skimage.filters.try_all_threshold.skimage.filters.find_local_max when given a finite num_peaks.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.skimage.color.label2rgb performance regression was addressed.CircleModel.estimate. (gh-5190)skimage.restoration.denoise_tv_bregman, skimage.measure.block_reduce, and skimage.filters.threshold_local. (gh-5454)multichannel boolean argument has been deprecated. All functions with multichannel support now use an integer channel_axis to specify which axis corresponds to channels. Setting channel_axis to None is used to indicate that the image is grayscale. Specifically, existing code with multichannel=True should be updated to use channel_axis=-1 and code with multichannel=False should now specify channel_axis=None.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 of data.chelsea for a more descriptive name.level parameter of measure.find_contours is now a keyword argument, with a default value set to (max(image) - min(image)) / 2.p_norm argument was added to skimage.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 new dtype keyword argument can be used to override this behavior when desired.channel_axis keyword argument (see New Features section).compactness parameter has an effect that is independent of the input image's scaling.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 setting normalization=None. There is no change to the masked cross-correlation case, which uses a different algorithm.labels argument renumbering in skimage.feature.peak_local_max is avoided (gh-5047).find_bounaries with mode='subpixel' (gh-5447)._label2rgb_avg function.skimage.color.separate_stains does not return negative values.EllipseModel.skimage.transform.hough_line.skimage.filters.gaussian.skimage.segmentation.random_walker.skimage.measure.regionprops_table) dtype bugfix.skimage.transform.rescale when using a small scale factor.skimage.measure.label segfault.skimage.segmentation.watershed): consider connectivity when calculating markers.skimage.transform.warp output dtype when order=0.intensity_image extra_properties in regionprops.skimage.metric.structural_similarity when image is too small.skimage.segmentation.find_boundaries.skimage.exposure.is_low_contrast for boolean inputs.skimage.metric.structural_similarity .skimage.filters.threshold_otsu.skimage.feature.blob_dog docstring example and normalization.skimage.exposure.adjust_gamma.offsets attribute of skimage.graph.MCP is now public. (gh-5547)skimage.exposure.histogram and skimage.measure.regionprops_table. (gh-5522)skimage.register.phase_cross_correlation. (gh-5461)convex_hull) (gh-6008)measure.label, the deprecated neighbors parameter has been removed (use connectivity instead).skimage.color.rgb2grey and skimage.color.grey2rgb functions have been removed (use skimage.color.rgb2gray and
skimage.color.gray2rgb instead).skimage.color.rgb2gray no longer allows grayscale or RGBA inputs.alpha parameter of skimage.color.gray2rgb has now been removed. Use skimage.color.gray2rgba for conversion to RGBA.order > 0 now raises a ValueError.anti-aliasing=True will raise a ValueError.bg_label parameter of skimage.color.label2rgb is now 0.filter parameter of skimage.transform.iradon has now been removed (use filter_name instead).skimage.draw.circle function has been removed (use skimage.draw.disk instead).skimage.feature.register_translation function has been removed (use skimage.registration.phase_cross_correlation instead).skimage.feature.masked_register_translation function has been removed (use skimage.registration.phase_cross_correlation instead).skimage.measure.marching_cubes_classic function has been removed (use skimage.measure.marching_cubes instead).skimage.measure.marching_cubes_lewiner function has been removed (use skimage.measure.marching_cubes instead).skimage.segmentation.circle_level_set function has been removed (use skimage.segmentation.disk_level_set instead).inplace parameter of skimage.morphology.flood_fill has been removed (use in_place instead).skimage.util.pad function has been removed (use numpy.pad instead).mode in skimage.filters.hessian is now 'reflect'.mode in skimage.filters.sato is now 'reflect'.mode in skimage.measure.profile_line is now 'reflect'.preserve_range in skimage.restoration.denoise_nl_means is now False.start_label in skimage.segmentation.slic is now 1.The multichannel argument is now deprecated throughout the library and will be removed in 1.0. The new channel_axis argument should be used instead. Existing code with multichannel=True should be updated to use channel_axis=-1 and code with multichannel=False should now specify channel_axis=None.
skimage.feature.greycomatrix and skimage.feature.greycoprops are deprecated in favor of skimage.feature.graycomatrix and
skimage.feature.graycoprops.
The skimage.morphology.grey module has been renamed skimage.morphology.gray. The old name is deprecated.
The skimage.morphology.greyreconstruct module has been renamed skimage.morphology.grayreconstruct. The old name is deprecated.
see API Changes section regarding functions with deprecated argument names related to the number of iterations. num_iterations and
max_num_iter are now used throughout the library.
see API Changes section on deprecation of the selem argument in favor of footprint throughout the library
Deprecate in_place in favor of the use of an explicit out argument in skimage.morphology.remove_small_objects,
skimage.morphology.remove_small_holes and skimage.segmentation.clear_border
The input argument of skimage.measure.label has been renamed label_image. The old name is deprecated.
standardize on num_iter for paramters describing the number of iterations and max_num_iter for parameters specifying an iteration limit. Functions where the old argument names have now been deprecated are::
| Function Name |
|---|
| skimage.filters.threshold_minimum |
| skimage.morphology.thin |
| skimage.restoration.denoise_tv_bregman |
| skimage.restoration.richardson_lucy |
| skimage.segmentation.active_contour |
| skimage.segmentation.chan_vese |
| skimage.segmentation.morphological_chan_vese |
| skimage.segmentation.morphological_geodesic_active_contour |
| skimage.segmentation.slic |
The names of several parameters in skimage.measure.regionprops
have been updated so that properties are better grouped by the first
word(s) of the name. The old names will continue to work for
backwards compatibility. The specific names that were updated are:
| Old Name | New Name |
|---|---|
| max_intensity | intensity_max |
| mean_intensity | intensity_mean |
| min_intensity | intensity_min |
| bbox_area | area_bbox |
| convex_area | area_convex |
| filled_area | area_filled |
| convex_image | image_convex |
| filled_image | image_filled |
| intensity_image | image_intensity |
| local_centroid | centroid_local |
| weighted_centroid | centroid_weighted |
| weighted_local_centroid | centroid_weighted_local |
| major_axis_length | axis_major_length |
| minor_axis_length | axis_minor_length |
| weighted_moments | moments_weighted |
| weighted_moments_central | moments_weighted_central |
| weighted_moments_hu | moments_weighted_hu |
| weighted_moments_normalized | moments_weighted_normalized |
| equivalent_diameter | equivalent_diameter_area |
The selem argument has been renamed to footprint throughout the library. The selem argument is now deprecated.
Additional details at: https://raw.githubusercontent.com/scikit-image/scikit-image/v0.19.0rc0/doc/release/release_0.19.rst
Do not use deprecated scipy.linalg.pinv2 in random_walker when using the multigrid solver. (#5531, backport of #5437)
This is a small bugfix release for compatibility with Pooch 1.5 and SciPy 1.7.
scipy.linalg.pinv2 in random_walker when
using the multigrid solver. (#5531, backport of #5437)Nothing published for this version
Update min req for pillow due to CVE-2020-10379 and co.
This is a bug fix release and contains the following two bug fixes:
See below for the new features and API changes in 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:
https://scikit-image.org
skimage.filters.rank.skimage.future. Try it out! (#4739)segmentation.expand_labels to dilate labels while
preventing overlap (#4795)measure.regionprops and regionprops_table (#4810)data subpackage: data.eagle
(#4922), data.human_mitosis (#4939), data.cells3d (#4951), and
data.vortex (#5041). Also note that the image for data.camera has
been changed due to copyright issues (#4913).skimage.feature.structure_tensor now supports 3D (and nD) images as input
(#5002)measure.regionprops now supports multichannel intensity images (#5037)transform.AffineTransform (#4733)visualizing 3D data <https://scikit-image.org/docs/dev/auto_examples/applications/plot_3d_image_processing.html>_ (#4850)rgb2lab (#4839) and marching_cubes (#4846)measure.marching_cubes, mentioning how to decimate a
mesh using mayavi (#4846)util.random_noise (#5001)morphology.h_maxima and morphology.h_minima
(#4929).util.img_as_int (#4888).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).benchmarking section of the developer documentation <https://scikit-image.org/docs/dev/contribute.html#benchmarks>_
has been expanded (#4905).pyramid_gaussian (#4696), Richardson-Lucy deconvolution (#4880)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.filter_epsilon keyword argument
to avoid division by very small numbers (#4823)measure.find_contours (#4862)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 for uint8 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.morphology.convex_hull_image now uses much less memory by checking hull
inequalities in sequence (#5020)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)threshold_rel in skimage.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 to threshold_rel=0.measure.label, the deprecated neighbors parameter has been
removed. (#4942)data.camera has changed because of copyright
issues (#4913).label2rgb has been fixed when the input image had np.uint8
dtype (#4661)skimage.color.separate_stains (#4725)peak_local_max (#2592, #4756, #4760,
#5047)random_walker when input labels have negative values (#4771)bg_color parameter in
label2rgb when its value is a string (#4840)metrics.variation_of_information
(#4875)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).skimage.morphology.selem.rectangle the height argument
controlled the width and the width argument controlled the height.
They have been replaced with nrow and ncol. (#4906)skimage.segmentation.flood_fill and skimage.segmentation.flood
now consistently handle negative values for seed_point.segmentation.flood have been fixed (#4948, #4972)draw.polygon for the case of 0-d input has been fixed
(#4943).registration.phase_cross_correlation, a ValueError 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).indices argument in skimage.feature.peak_local_max has been
deprecated. Indices will always be returned. (#4752)skimage.feature.structure_tensor, an order 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. Use skimage.feature.structure_tensor_eigenvalues
instead.skimage.viewer subpackage and the skivi script have been
deprecated and will be removed in version 0.20. For interactive visualization
we recommend using dedicated tools such as napari <https://napari.org>_ or
plotly <https://plotly.com>_. In a similar vein, the qt and skivi
plugins of skimage.io have been deprecated
and will be removed in version 0.20. (#4941, #4954)skimage.morphology.selem.rectangle the arguments width and
height have been deprecated. Use nrow and ncol instead.threshold_rel=0` was removed from the Examples of the following docstrings: skimage.feature.BRIEF, skimage.feature.corner_harris, skimage.feature.corner_shi_tomasi, skimage.feature.corner_foerstner, skimage.feature.corner_fast, skimage.feature.corner_subpix, skimage.feature.corner_peaks, skimage.feature.corner_orientations, and skimage.feature._detect_octave``.skimage.restoration._denoise, the warning regarding
rescale_sigma=None was removed.skimage.restoration._cycle_spin, the # doctest: +SKIP was removed.pyproject.toml has been added to the sdist.myst (#4863).io.*.py (#4845)test_ functions (#5044)indices argument from examples (#5082)A warm thank you to all contributors who added to this release. A fraction of contributors were first-time contributors to open source and a much larger fraction first-time contributors to scikit-image. It's a great feeling for maintainers to welcome new contributors, and the diversity of scikit-image contributors is surely a big strength of the package.
Update min req for pillow due to CVE-2020-10379 and co.
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:
https://scikit-image.org
skimage.filters.rank.skimage.future. Try it out! (#4739)segmentation.expand_labels to dilate labels while
preventing overlap (#4795)measure.regionprops and regionprops_table (#4810)data subpackage: data.eagle
(#4922), data.human_mitosis (#4939), data.cells3d (#4951), and
data.vortex (#5041). Also note that the image for data.camera has
been changed due to copyright issues (#4913).skimage.feature.structure_tensor now supports 3D (and nD) images as input
(#5002)measure.regionprops now supports multichannel intensity images (#5037)transform.AffineTransform (#4733)visualizing 3D data <https://scikit-image.org/docs/dev/auto_examples/applications/plot_3d_image_processing.html>_ (#4850)rgb2lab (#4839) and marching_cubes (#4846)measure.marching_cubes, mentioning how to decimate a
mesh using mayavi (#4846)util.random_noise (#5001)morphology.h_maxima and morphology.h_minima
(#4929).util.img_as_int (#4888).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).benchmarking section of the developer documentation <https://scikit-image.org/docs/dev/contribute.html#benchmarks>_
has been expanded (#4905).pyramid_gaussian (#4696), Richardson-Lucy deconvolution (#4880)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.filter_epsilon keyword argument
to avoid division by very small numbers (#4823)measure.find_contours (#4862)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 for uint8 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.morphology.convex_hull_image now uses much less memory by checking hull
inequalities in sequence (#5020)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)threshold_rel in skimage.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 to threshold_rel=0.measure.label, the deprecated neighbors parameter has been
removed. (#4942)data.camera has changed because of copyright
issues (#4913).label2rgb has been fixed when the input image had np.uint8
dtype (#4661)skimage.color.separate_stains (#4725)peak_local_max (#2592, #4756, #4760,
#5047)random_walker when input labels have negative values (#4771)bg_color parameter in
label2rgb when its value is a string (#4840)metrics.variation_of_information
(#4875)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).skimage.morphology.selem.rectangle the height argument
controlled the width and the width argument controlled the height.
They have been replaced with nrow and ncol. (#4906)skimage.segmentation.flood_fill and skimage.segmentation.flood
now consistently handle negative values for seed_point.segmentation.flood have been fixed (#4948, #4972)draw.polygon for the case of 0-d input has been fixed
(#4943).registration.phase_cross_correlation, a ValueError 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).indices argument in skimage.feature.peak_local_max has been
deprecated. Indices will always be returned. (#4752)skimage.feature.structure_tensor, an order 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. Use skimage.feature.structure_tensor_eigenvalues
instead.skimage.viewer subpackage and the skivi script have been
deprecated and will be removed in version 0.20. For interactive visualization
we recommend using dedicated tools such as napari <https://napari.org>_ or
plotly <https://plotly.com>_. In a similar vein, the qt and skivi
plugins of skimage.io have been deprecated
and will be removed in version 0.20. (#4941, #4954)skimage.morphology.selem.rectangle the arguments width and
height have been deprecated. Use nrow and ncol instead.threshold_rel=0` was removed from the Examples of the following docstrings: skimage.feature.BRIEF, skimage.feature.corner_harris, skimage.feature.corner_shi_tomasi, skimage.feature.corner_foerstner, skimage.feature.corner_fast, skimage.feature.corner_subpix, skimage.feature.corner_peaks, skimage.feature.corner_orientations, and skimage.feature._detect_octave``.skimage.restoration._denoise, the warning regarding
rescale_sigma=None was removed.skimage.restoration._cycle_spin, the # doctest: +SKIP was removed.pyproject.toml has been added to the sdist.myst (#4863).io.*.py (#4845)test_ functions (#5044)indices argument from examples (#5082)A warm thank you to all contributors who added to this release. A fraction of contributors were first-time contributors to open source and a much larger fraction first-time contributors to scikit-image. It's a great feeling for maintainers to welcome new contributors, and the diversity of scikit-image contributors is surely a big strength of the package.
Nothing published for this version
Nothing published for this version
Starting from this release, scikit-image will follow the recently introduced NumPy deprecation policy, NEP 29 __. Accordingly, scikit-image 0.16 drops…
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
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.
skimage.evaluate module containing simple metrics (mse,
nrme, psd) and segmentation metrics (adapted rand error, variation of
information) (#4025)skimage.registration.optical_flow_tvl1 (#3983)skimage.draw.line_nd
(#2043)skimage.filters.farid,
skimage.filters.farid_h, and skimage.filters.farid_v (#3775)skimage.filters.majority
(#3836, #3839)skimage.filters.threshold_multiotsu (#3872, #4174)skimage.data.shepp_logan_phantom, skimage.data.colorwheel,
skimage.data.brick, skimage.data.grass, skimage.data.roughwall, skimage.data.cell
(#3958, #3966)skimage.measure.regionprops_table (#3959)skimage.draw.poly2mask (#3971, #3977)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)skimage.transform.ProjectiveTransform (#3525,
#3967)skimage.segmentation.relabel_sequential (#3740)skimage.io.ImageCollection can now receive lists of patterns (#3928)skimage.feature.peak_local_max (#3984)kind in
skimage.color.label2rgb (#4055)skimage.drawing now supports multi-channel 2D images (#4134)skimage.novice has been removed.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.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.as_grey has been removed from skimage.data.load and
skimage.io.imread. Use as_gray instead.min_size has been removed from
skimage.morphology.remove_small_holes. Use area_threshold instead.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.behavior parameter has been set to ndimage in
skimage.filters.median.flatten in skimage.io.imread has been removed in
favor of as_gray.Hxx, Hxy, Hyy have been removed from
skimage.feature.corner.hessian_matrix_eigvals in favor of H_elems.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.skimage.transform.irandon) (#3067)
Fixed by using the Ramp filter equation in the spatial domain as described
in the referenceskimage.transform.rotate) (#3173)skimage.filters.threshold_li to prevent being stuck on stationnary
points, and thus at local minima or maxima (#3966)skimage.exposure.rescale_intensity to return input image instead of
nans when all 0 (#4015)skimage.morphology.medial_axis. A wrong indentation in Cython
caused the function to not behave as intended. (#4060)skimage.restoration.denoise_bilateral by correcting the padding in
the gaussian filter(#4080)skimage.measure.find_contours when input image contains NaN.
Contours interesting NaN will be left open (#4150)skimage.feature.blob_log and skimage.feature.blob_dog for 3D
images and anisotropic data (#4162)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)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_mseskimage.measure.compare_nrmseskimage.measure.compare_psnrskimage.measure.compare_ssimThe 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)
full parameter description in compare_ssim (#3860)skimage.filters.threshold_li (#3966)num_peaks of skimage.feature.corner_peaks (#4195)skimage.util.img_as_ (#3575)deprecated from filters.thresholding (#4069)skimage.measure.regionprops (#3884)view_as_windows incorrectly assumes that a contiguous array is needed (#4171)Starting from this release, scikit-image will follow the recently introduced NumPy deprecation policy, NEP 29 __. Accordingly, scikit-image 0.16 drops…
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.
skimage.evaluate module containing simple metrics (mse,
nrme, psd) and segmentation metrics (adapted rand error, variation of
information) (#4025)skimage.registration.optical_flow_tvl1 (#3983)skimage.draw.line_nd
(#2043)skimage.filters.farid,
skimage.filters.farid_h, and skimage.filters.farid_v (#3775)skimage.filters.majority
(#3836, #3839)skimage.filters.threshold_multiotsu (#3872, #4174)skimage.data.shepp_logan_phantom, skimage.data.colorwheel,
skimage.data.brick, skimage.data.grass, skimage.data.roughwall, skimage.data.cell
(#3958, #3966)skimage.measure.regionprops_table (#3959)skimage.draw.poly2mask (#3971, #3977)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)skimage.transform.ProjectiveTransform (#3525,
#3967)skimage.segmentation.relabel_sequential (#3740)skimage.io.ImageCollection can now receive lists of patterns (#3928)skimage.feature.peak_local_max (#3984)kind in
skimage.color.label2rgb (#4055)skimage.drawing now supports multi-channel 2D images (#4134)skimage.novice has been removed.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.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.as_grey has been removed from skimage.data.load and
skimage.io.imread. Use as_gray instead.min_size has been removed from
skimage.morphology.remove_small_holes. Use area_threshold instead.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.behavior parameter has been set to ndimage in
skimage.filters.median.flatten in skimage.io.imread has been removed in
favor of as_gray.Hxx, Hxy, Hyy have been removed from
skimage.feature.corner.hessian_matrix_eigvals in favor of H_elems.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.skimage.transform.irandon) (#3067)
Fixed by using the Ramp filter equation in the spatial domain as described
in the referenceskimage.transform.rotate) (#3173)skimage.filters.threshold_li to prevent being stuck on stationnary
points, and thus at local minima or maxima (#3966)skimage.exposure.rescale_intensity to return input image instead of
nans when all 0 (#4015)skimage.morphology.medial_axis. A wrong indentation in Cython
caused the function to not behave as intended. (#4060)skimage.restoration.denoise_bilateral by correcting the padding in
the gaussian filter(#4080)skimage.measure.find_contours when input image contains NaN.
Contours interesting NaN will be left open (#4150)skimage.feature.blob_log and skimage.feature.blob_dog for 3D
images and anisotropic data (#4162)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)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_mseskimage.measure.compare_nrmseskimage.measure.compare_psnrskimage.measure.compare_ssimThe 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)
full parameter description in compare_ssim (#3860)skimage.filters.threshold_li (#3966)num_peaks of skimage.feature.corner_peaks (#4195)skimage.util.img_as_ (#3575)deprecated from filters.thresholding (#4069)skimage.measure.regionprops (#3884)view_as_windows incorrectly assumes that a contiguous array is needed (#4171)Nothing published for this version
Nothing published for this version
Nothing published for this version
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:
wheel package (scikit-image/scikit-image-wheels#10)... and, as always, a special mention to Matthias Bussonnier's Meeseeks Box, which remains invaluable for our backports.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →