scipy.signal.
order_filter#
- scipy.signal.order_filter(a, domain, rank)[源代码]#
对 N 维数组执行顺序滤波器。
对输入数组执行顺序滤波。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]])