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()