skimage2.morphology.binary_erosion#

skimage2.morphology.binary_erosion(image, footprint=None, out=None, *, mode='ignore')[source]#

Return fast binary morphological erosion of an image.

Deprecated since version 0.26: binary_erosion is deprecated since version 0.26 and will be removed in version 0.28. Use skimage.morphology.erosion instead. Note the pixel shift by 1 for even-sized footprints (see docstring notes).

This function returns the same result as grayscale erosion but performs faster for binary images.

Morphological erosion sets a pixel at (i,j) to the minimum over all pixels in the neighborhood centered at (i,j). Erosion shrinks bright regions and enlarges dark regions.

Parameters:
imagendarray

Binary input image.

footprintndarray or tuple, optional

The neighborhood expressed as a 2-D array of 1’s and 0’s. If None, use a cross-shaped footprint (connectivity=1). The footprint can also be provided as a sequence of smaller footprints as described in the notes below.

outndarray of bool, optional

The array to store the result of the morphology. If None is passed, a new array will be allocated.

modestr, optional

The mode parameter determines how the array borders are handled. Valid modes are: ‘max’, ‘min’, ‘ignore’. If ‘max’ or ‘ignore’, pixels outside the image domain are assumed to be True, which causes them to not influence the result. Default is ‘ignore’.

Added in version 0.23: mode was added in 0.23.

Returns:
erodedndarray of bool or uint

The result of the morphological erosion taking values in [False, True].

Notes

The footprint can also be a provided as a sequence of 2-tuples where the first element of each 2-tuple is a footprint ndarray and the second element is an integer describing the number of times it should be iterated. For example footprint=[(np.ones((9, 1)), 1), (np.ones((1, 9)), 1)] would apply a 9x1 footprint followed by a 1x9 footprint resulting in a net effect that is the same as footprint=np.ones((9, 9)), but with lower computational cost. Most of the builtin footprints such as skimage.morphology.disk() provide an option to automatically generate a footprint sequence of this type.

For even-sized footprints, skimage.morphology.erosion() and this function produce an output that differs: one is shifted by one pixel compared to the other. skimage.morphology.pad_footprint() is available to account for this.