scipy.ndimage.

grey_closing#

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

多维灰度闭运算。

灰度闭运算由灰度膨胀和灰度腐蚀相继进行组成。

参数:
inputarray_like

要进行灰度闭运算的数组。

size整数元组

用于灰度闭运算的平坦且完整的结构元素的形状。如果提供了footprintstructure,则可选。

footprint整数数组,可选

用于灰度闭运算的平坦结构元素中非无限元素的位置。

structure整数数组,可选

用于灰度闭运算的结构元素。structure可以是非平坦的结构元素。structure数组对邻域中的像素应用偏移量(在膨胀期间偏移量为加法,在腐蚀期间为减法)。

output数组,可选

可以提供一个用于存储闭运算结果的数组。

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

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

cval标量,可选

如果mode为‘constant’,则用于填充输入边缘以外的值。默认值为 0.0。

origin标量,可选

origin参数控制滤波器的放置位置。默认值为 0。

返回:
grey_closingndarray

使用structureinput进行灰度闭运算的结果。

备注

使用平坦结构元素进行灰度闭运算的作用等同于平滑深层局部最小值,而二元闭运算则填充小孔。

参考文献

示例

>>> from scipy import ndimage
>>> import numpy as np
>>> a = np.arange(36).reshape((6,6))
>>> a[3,3] = 0
>>> a
array([[ 0,  1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10, 11],
       [12, 13, 14, 15, 16, 17],
       [18, 19, 20,  0, 22, 23],
       [24, 25, 26, 27, 28, 29],
       [30, 31, 32, 33, 34, 35]])
>>> ndimage.grey_closing(a, size=(3,3))
array([[ 7,  7,  8,  9, 10, 11],
       [ 7,  7,  8,  9, 10, 11],
       [13, 13, 14, 15, 16, 17],
       [19, 19, 20, 20, 22, 23],
       [25, 25, 26, 27, 28, 29],
       [31, 31, 32, 33, 34, 35]])
>>> # Note that the local minimum a[3,3] has disappeared