scipy.ndimage.
grey_opening#
- scipy.ndimage.grey_opening(input, size=None, footprint=None, structure=None, output=None, mode='reflect', cval=0.0, origin=0)[源代码][源代码]#
多维灰度开运算。
灰度开运算包括灰度腐蚀和灰度膨胀的连续操作。
- 参数:
- 输入array_like
要计算灰度开运算的数组。
- 大小整数元组
用于灰度开运算的扁平且完整的结构元素的形状。如果提供了 footprint 或 structure,则此项可选。
- 足迹整数数组,可选
用于灰度开运算的平面结构元素中非无限元素的位置。
- 结构整数数组,可选
用于灰度开运算的结构化元素。structure 可能是一个非平面结构化元素。structure 数组对邻域中的像素应用偏移量(在膨胀期间偏移量是加性的,在腐蚀期间是减性的)。
- 输出数组,可选
可以提供一个数组来存储打开操作的输出。
- 模式{‘reflect’, ‘constant’, ‘nearest’, ‘mirror’, ‘wrap’},可选
mode 参数决定了数组边界的处理方式,其中 cval 是当 mode 等于 ‘constant’ 时的值。默认是 ‘reflect’。
- cval标量,可选
如果 mode 是 ‘constant’,则用于填充输入边缘之外的值。默认值为 0.0。
- 起源标量,可选
origin 参数控制过滤器的放置位置。默认值为 0
- 返回:
- grey_openingndarray
使用 structure 对 input 进行灰度开运算的结果。
注释
使用平坦结构元素的灰度开运算的作用是平滑局部高极大值,而二值开运算则会擦除小对象。
参考文献
[1]示例
>>> from scipy import ndimage >>> import numpy as np >>> a = np.arange(36).reshape((6,6)) >>> a[3, 3] = 50 >>> a array([[ 0, 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10, 11], [12, 13, 14, 15, 16, 17], [18, 19, 20, 50, 22, 23], [24, 25, 26, 27, 28, 29], [30, 31, 32, 33, 34, 35]]) >>> ndimage.grey_opening(a, size=(3,3)) array([[ 0, 1, 2, 3, 4, 4], [ 6, 7, 8, 9, 10, 10], [12, 13, 14, 15, 16, 16], [18, 19, 20, 22, 22, 22], [24, 25, 26, 27, 28, 28], [24, 25, 26, 27, 28, 28]]) >>> # Note that the local maximum a[3,3] has disappeared