当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy ndimage.morphological_gradient用法及代码示例


本文简要介绍 python 语言中 scipy.ndimage.morphological_gradient 的用法。

用法:

scipy.ndimage.morphological_gradient(input, size=None, footprint=None, structure=None, output=None, mode='reflect', cval=0.0, origin=0)#

多维形态梯度。

形态梯度被计算为具有给定结构元素的输入的膨胀和腐蚀之间的差异。

参数

input array_like

计算形态梯度的数组。

size 整数元组

用于数学形态学运算的平坦且完整的结构元素的形状。如果提供了足迹或结构,则可选。更大的尺寸会产生更模糊的渐变。

footprint 整数数组,可选

用于形态学操作的平面结构元素的非无限元素的位置。较大的足迹会产生更模糊的形态梯度。

structure 整数数组,可选

用于形态学操作的结构元素。结构可以是非平面结构元素。

output 数组,可选

可以提供用于存储形态梯度的输出的阵列。

mode {‘reflect’, ‘constant’, ‘nearest’, ‘mirror’, ‘wrap’},可选

mode 参数确定如何处理数组边界,其中 cval 是 mode 等于 ‘constant’ 时的值。默认为‘reflect’

cval 标量,可选

如果模式为‘constant’,则填充过去输入边的值。默认值为 0.0。

origin 标量,可选

origin 参数控制过滤器的位置。默认 0

返回

morphological_gradient ndarray

输入的形态梯度。

注意

对于平面结构元素,在给定点计算的形态梯度对应于以该点为中心的结构元素所覆盖的元素中输入元素之间的最大差异。

参考

例子

>>> from scipy import ndimage
>>> import numpy as np
>>> a = np.zeros((7,7), dtype=int)
>>> a[2:5, 2:5] = 1
>>> ndimage.morphological_gradient(a, size=(3,3))
array([[0, 0, 0, 0, 0, 0, 0],
       [0, 1, 1, 1, 1, 1, 0],
       [0, 1, 1, 1, 1, 1, 0],
       [0, 1, 1, 0, 1, 1, 0],
       [0, 1, 1, 1, 1, 1, 0],
       [0, 1, 1, 1, 1, 1, 0],
       [0, 0, 0, 0, 0, 0, 0]])
>>> # The morphological gradient is computed as the difference
>>> # between a dilation and an erosion
>>> ndimage.grey_dilation(a, size=(3,3)) -\
...  ndimage.grey_erosion(a, size=(3,3))
array([[0, 0, 0, 0, 0, 0, 0],
       [0, 1, 1, 1, 1, 1, 0],
       [0, 1, 1, 1, 1, 1, 0],
       [0, 1, 1, 0, 1, 1, 0],
       [0, 1, 1, 1, 1, 1, 0],
       [0, 1, 1, 1, 1, 1, 0],
       [0, 0, 0, 0, 0, 0, 0]])
>>> a = np.zeros((7,7), dtype=int)
>>> a[2:5, 2:5] = 1
>>> a[4,4] = 2; a[2,3] = 3
>>> a
array([[0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0],
       [0, 0, 1, 3, 1, 0, 0],
       [0, 0, 1, 1, 1, 0, 0],
       [0, 0, 1, 1, 2, 0, 0],
       [0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0]])
>>> ndimage.morphological_gradient(a, size=(3,3))
array([[0, 0, 0, 0, 0, 0, 0],
       [0, 1, 3, 3, 3, 1, 0],
       [0, 1, 3, 3, 3, 1, 0],
       [0, 1, 3, 2, 3, 2, 0],
       [0, 1, 1, 2, 2, 2, 0],
       [0, 1, 1, 2, 2, 2, 0],
       [0, 0, 0, 0, 0, 0, 0]])

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.ndimage.morphological_gradient。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。