scipy.ndimage.

uniform_filter#

scipy.ndimage.uniform_filter(input, size=3, output=None, mode='reflect', cval=0.0, origin=0, *, axes=None)[source]#

多維均勻濾波器。

參數:
input陣列型 (array_like)

輸入陣列。

size整數 (int) 或整數序列,選填

均勻濾波器的大小會針對每個軸以序列或單一數字給定,若為單一數字,則所有軸的大小皆相同。

output陣列或資料型別 (dtype),選填

放置輸出的陣列,或是傳回陣列的資料型別。預設會建立與輸入相同資料型別的陣列。

mode字串 (str) 或序列,選填

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整數 (int) 或序列,選填

控制濾波器在輸入陣列像素上的位置。值 0 (預設值) 將濾波器置中於像素之上,正值將濾波器向左移動,負值則向右移動。透過傳遞長度等於輸入陣列維度數量的 origin 序列,可以沿著每個軸指定不同的位移。

axes整數 (int) 元組或 None,選填

若為 None,則輸入會沿著所有軸進行濾波。否則,輸入會沿著指定的軸進行濾波。當指定 axes 時,用於 size、origin 和/或 mode 的任何元組都必須符合 axes 的長度。這些元組中的第 i 個條目對應於 axes 中的第 i 個條目。

回傳:
uniform_filterndarray

已濾波的陣列。與輸入具有相同的形狀。

註解

多維濾波器是以 1-D 均勻濾波器序列實作的。中間陣列會以與輸出相同的資料型別儲存。因此,對於精度有限的輸出型別,結果可能會不精確,因為中間結果可能以不足的精度儲存。

範例

>>> 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.uniform_filter(ascent, size=20)
>>> ax1.imshow(ascent)
>>> ax2.imshow(result)
>>> plt.show()
../../_images/scipy-ndimage-uniform_filter-1.png