Source code for dask_image.ndmorph

# -*- coding: utf-8 -*-
import scipy.ndimage

from ..dispatch._dispatch_ndmorph import (dispatch_binary_dilation,
                                          dispatch_binary_erosion)
from . import _ops, _utils

__all__ = [
    "binary_closing",
    "binary_dilation",
    "binary_erosion",
    "binary_opening",
]


[docs]@_utils._update_wrapper(scipy.ndimage.binary_closing) def binary_closing(image, structure=None, iterations=1, origin=0, mask=None, border_value=0, brute_force=False): image = (image != 0) structure = _utils._get_structure(image, structure) iterations = _utils._get_iterations(iterations) origin = _utils._get_origin(structure.shape, origin) kwargs = dict( structure=structure, iterations=iterations, origin=origin, mask=mask, border_value=border_value, brute_force=brute_force ) result = image result = binary_dilation(result, **kwargs) result = binary_erosion(result, **kwargs) return result
[docs]@_utils._update_wrapper(scipy.ndimage.binary_dilation) def binary_dilation(image, structure=None, iterations=1, mask=None, border_value=0, origin=0, brute_force=False): border_value = _utils._get_border_value(border_value) result = _ops._binary_op( dispatch_binary_dilation(image), image, structure=structure, iterations=iterations, mask=mask, origin=origin, brute_force=brute_force, border_value=border_value ) return result
[docs]@_utils._update_wrapper(scipy.ndimage.binary_erosion) def binary_erosion(image, structure=None, iterations=1, mask=None, border_value=0, origin=0, brute_force=False): border_value = _utils._get_border_value(border_value) result = _ops._binary_op( dispatch_binary_erosion(image), image, structure=structure, iterations=iterations, mask=mask, origin=origin, brute_force=brute_force, border_value=border_value ) return result
[docs]@_utils._update_wrapper(scipy.ndimage.binary_opening) def binary_opening(image, structure=None, iterations=1, origin=0, mask=None, border_value=0, brute_force=False): image = (image != 0) structure = _utils._get_structure(image, structure) iterations = _utils._get_iterations(iterations) origin = _utils._get_origin(structure.shape, origin) kwargs = dict( structure=structure, iterations=iterations, origin=origin, mask=mask, border_value=border_value, brute_force=brute_force ) result = image result = binary_erosion(result, **kwargs) result = binary_dilation(result, **kwargs) return result