scipy.signal.
order_filter#
- scipy.signal.order_filter(a, domain, rank)[source]#
对 N 维数组执行阶跃滤波。
对数组 in 执行阶跃滤波。domain 参数充当以每个像素为中心的遮罩。domain 的非零元素用于选择围绕每个输入像素的元素,这些元素被放置在一个列表中。列表被排序,输出的像素对应于排序列表中的 rank。
- 参数:
- andarray
N 维输入数组。
- domainarray_like
与 a 具有相同维数的遮罩数组。每个维度都应该有奇数个元素。
- rankint
一个非负整数,它从排序列表中选择元素(0 对应于最小元素,1 是下一个最小元素,依此类推)。
- 返回值:
- outndarray
阶跃滤波结果,以与 a 形状相同的数组形式给出。
示例
>>> import numpy as np >>> from scipy import signal >>> x = np.arange(25).reshape(5, 5) >>> domain = np.identity(3) >>> x array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19], [20, 21, 22, 23, 24]]) >>> signal.order_filter(x, domain, 0) array([[ 0., 0., 0., 0., 0.], [ 0., 0., 1., 2., 0.], [ 0., 5., 6., 7., 0.], [ 0., 10., 11., 12., 0.], [ 0., 0., 0., 0., 0.]]) >>> signal.order_filter(x, domain, 2) array([[ 6., 7., 8., 9., 4.], [ 11., 12., 13., 14., 9.], [ 16., 17., 18., 19., 14.], [ 21., 22., 23., 24., 19.], [ 20., 21., 22., 23., 24.]])