scipy.signal.

order_filter#

scipy.signal.order_filter(a, domain, rank)[source]#

對 N 維陣列執行 order filter。

對輸入陣列執行 order filter。domain 參數作為遮罩,在每個像素上居中。domain 的非零元素用於選擇每個輸入像素周圍的元素,這些元素被放置在一個列表中。列表經過排序,並且該像素的輸出是排序列表中與 rank 對應的元素。

參數:
andarray

N 維輸入陣列。

domainarray_like

a 具有相同維度的遮罩陣列。每個維度都應該有奇數個元素。

rankint

一個非負整數,用於從排序列表中選擇元素(0 對應於最小元素,1 是下一個最小元素,依此類推)。

回傳值:
outndarray

order filter 的結果,以與 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]])