scipy.ndimage.
white_tophat#
- scipy.ndimage.white_tophat(input, size=None, footprint=None, structure=None, output=None, mode='reflect', cval=0.0, origin=0, *, axes=None)[source]#
多维白顶帽(white tophat)滤波器。
- 参数:
- inputarray_like
输入数组。
- sizeint 元组
用于滤波器的平坦完整结构元素(structuring element)的形状。如果提供了 footprint 或 structure,则此参数可选。
- footprintint 数组,可选
用于白顶帽(white tophat)滤波器的平坦结构元素(structuring element)中元素的位置。
- structureint 数组,可选
用于滤波器的结构元素(structuring element)。structure 可以是非平坦的结构元素。structure 数组会对邻域中的像素应用偏移量(在膨胀(dilation)时偏移量是加性的,在腐蚀(erosion)时是减性的)。
- output数组,可选
可提供一个数组用于存储滤波器的输出。
- mode{‘reflect’, ‘constant’, ‘nearest’, ‘mirror’, ‘wrap’},可选
mode 参数决定了如何处理数组边界,其中 cval 是当 mode 等于 ‘constant’ 时的值。默认为 ‘reflect’。
- cval标量,可选
如果 mode 为 ‘constant’,则用于填充输入数组边缘之外的值。默认为 0.0。
- origin标量,可选
origin 参数控制滤波器的放置位置。默认为 0。
- axesint 元组或 None
应用滤波器的轴。如果为 None,则 input 将沿所有轴进行滤波。如果提供了 origin 元组,其长度必须与轴的数量匹配。
- 返回:
- outputndarray
使用 structure 对 input 进行滤波的结果。
另请参阅
示例
从亮峰中减去灰色背景。
>>> from scipy.ndimage import generate_binary_structure, white_tophat >>> import numpy as np >>> square = generate_binary_structure(rank=2, connectivity=3) >>> bright_on_gray = np.array([[2, 3, 3, 3, 2], ... [3, 4, 5, 4, 3], ... [3, 5, 9, 5, 3], ... [3, 4, 5, 4, 3], ... [2, 3, 3, 3, 2]]) >>> white_tophat(input=bright_on_gray, structure=square) array([[0, 0, 0, 0, 0], [0, 0, 1, 0, 0], [0, 1, 5, 1, 0], [0, 0, 1, 0, 0], [0, 0, 0, 0, 0]])