minimum_filter#
- scipy.ndimage.minimum_filter(input, size=None, footprint=None, output=None, mode='reflect', cval=0.0, origin=0, *, axes=None)[source]#
計算多維最小值濾波器。
- 參數:
- inputarray_like
輸入陣列。
- size純量或元組,選填
請參閱下方的 footprint。如果已指定 footprint,則會忽略此項。
- footprint陣列,選填
必須定義 size 或 footprint 其中之一。size 指定從輸入陣列中取得的形狀,在每個元素位置,以定義濾波器函數的輸入。footprint 是一個布林陣列,它(隱含地)指定形狀,以及此形狀內哪些元素將傳遞至濾波器函數。因此,
size=(n,m)
等同於footprint=np.ones((n,m))
。我們會根據輸入陣列的維度數量調整 size,因此,如果輸入陣列的形狀為 (10,10,10) 且 size 為 2,則實際使用的 size 為 (2,2,2)。當指定 footprint 時,會忽略 size。- output陣列或 dtype,選填
放置輸出的陣列,或傳回陣列的 dtype。預設情況下,將會建立與輸入相同 dtype 的陣列。
- mode字串或序列,選填
mode 參數決定當濾波器與邊界重疊時,輸入陣列如何延伸。透過傳遞長度等於輸入陣列維度數量的模式序列,可以沿著每個軸指定不同的模式。預設值為 ‘reflect’。有效值及其行為如下:
- ‘reflect’ (d c b a | a b c d | d c b a)
輸入會透過反射最後一個像素的邊緣來延伸。此模式有時也稱為半樣本對稱。
- ‘constant’ (k k k k | a b c d | k k k k)
輸入會透過以相同的常數值填滿邊緣以外的所有值來延伸,此常數值由 cval 參數定義。
- ‘nearest’ (a a a a | a b c d | d d d d)
輸入會透過複製最後一個像素來延伸。
- ‘mirror’ (d c b | a b c d | c b a)
輸入會透過反射最後一個像素的中心來延伸。此模式有時也稱為全樣本對稱。
- ‘wrap’ (a b c d | a b c d | a b c d)
輸入會透過環繞到相對邊緣來延伸。
為了與內插函數保持一致,也可以使用以下模式名稱
- ‘grid-constant’
這是 ‘constant’ 的同義詞。
- ‘grid-mirror’
這是 ‘reflect’ 的同義詞。
- ‘grid-wrap’
這是 ‘wrap’ 的同義詞。
- cval純量,選填
如果 mode 為 ‘constant’,則填滿輸入邊緣以外的值。預設值為 0.0。
- origin整數或序列,選填
控制濾波器在輸入陣列像素上的放置位置。值 0(預設值)將濾波器置於像素中心,正值將濾波器向左移動,負值向右移動。透過傳遞長度等於輸入陣列維度數量的原點序列,可以沿著每個軸指定不同的位移。
- axes整數或 None 的元組,選填
如果為 None,則沿著所有軸對 input 進行濾波。否則,沿著指定的軸對 input 進行濾波。當指定 axes 時,用於 size、origin 和/或 mode 的任何元組都必須符合 axes 的長度。這些元組中的第 i 個項目對應於 axes 中的第 i 個項目。
- 傳回:
- minimum_filterndarray
已濾波的陣列。具有與 input 相同的形狀。
註解
僅當 footprint 可分離時,才支援模式序列(每個軸一個)。否則,必須提供單一模式字串。
範例
>>> from scipy import ndimage, datasets >>> import matplotlib.pyplot as plt >>> fig = plt.figure() >>> plt.gray() # show the filtered result in grayscale >>> ax1 = fig.add_subplot(121) # left side >>> ax2 = fig.add_subplot(122) # right side >>> ascent = datasets.ascent() >>> result = ndimage.minimum_filter(ascent, size=20) >>> ax1.imshow(ascent) >>> ax2.imshow(result) >>> plt.show()