當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python SciPy ndimage.spline_filter1d用法及代碼示例

本文簡要介紹 python 語言中 scipy.ndimage.spline_filter1d 的用法。

用法:

scipy.ndimage.spline_filter1d(input, order=3, axis=-1, output=<class 'numpy.float64'>, mode='mirror')#

沿給定軸計算一維樣條濾波器。

沿給定軸的陣列線由樣條濾波器過濾。樣條的順序必須是 >= 2 和 <= 5。

參數

input array_like

輸入數組。

order 整數,可選

樣條的階數,默認為 3。

axis 整數,可選

沿其應用樣條過濾器的軸。默認是最後一個軸。

output ndarray 或 dtype,可選

放置輸出的數組,或返回數組的 dtype。默認為 numpy.float64

mode {‘reflect’、‘grid-mirror’、‘constant’、‘grid-constant’、‘nearest’、‘mirror’、‘grid-wrap’、‘wrap’},可選

模式參數確定輸入數組如何擴展到其邊界之外。默認為‘mirror’。每個有效值的行為如下(請參閱其他圖表和詳細信息邊界模式):

‘reflect’ (d c b a | a b c d | d c b a)

通過反射最後一個像素的邊來擴展輸入。此模式有時也稱為half-sample 對稱模式。

‘grid-mirror’

這是‘reflect’ 的同義詞。

‘constant’ (k k k k | a b c d |呸呸呸呸)

通過使用 cval 參數定義的相同常量值填充邊之外的所有值來擴展輸入。在輸入邊之外不執行插值。

‘grid-constant’ (k k k k | a b c d |呸呸呸呸)

通過使用 cval 參數定義的相同常量值填充邊之外的所有值來擴展輸入。插值也會發生在輸入範圍之外的樣本上。

‘nearest’ (啊啊啊啊| a b c d |嘀嘀嘀嘀)

通過複製最後一個像素來擴展輸入。

‘mirror’ (d c b | a b c d | c b a)

通過反射最後一個像素的中心來擴展輸入。此模式有時也稱為whole-sample 對稱模式。

‘grid-wrap’ (a b c d | a b c d | A B C D)

通過環繞到相對邊來擴展輸入。

‘wrap’ (d b c d | a b c d | b c a b)

輸入通過環繞到相反的邊來擴展,但是以某種方式使最後一個點和初始點完全重疊。在這種情況下,沒有很好地定義在重疊點將選擇哪個樣本。

返回

spline_filter1d ndarray

過濾後的輸入。

注意

ndimage 中的所有插值函數都對輸入圖像進行樣條插值。如果使用 B-splines of order > 1,則必須首先將輸入圖像值轉換為 B-spline 係數,這是通過沿輸入的所有軸順序應用此一維濾波器來完成的。所有需要B-spline 係數的函數都會自動過濾它們的輸入,這種行為可以通過 prefilter 關鍵字參數控製。對於接受模式參數的函數,隻有與過濾時使用的模式匹配,結果才會正確。

對於complex-valued 輸入,此函數獨立處理實部和虛部。

例子

我們可以沿給定軸使用一維樣條過濾圖像:

>>> from scipy.ndimage import spline_filter1d
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> orig_img = np.eye(20)  # create an image
>>> orig_img[10, :] = 1.0
>>> sp_filter_axis_0 = spline_filter1d(orig_img, axis=0)
>>> sp_filter_axis_1 = spline_filter1d(orig_img, axis=1)
>>> f, ax = plt.subplots(1, 3, sharex=True)
>>> for ind, data in enumerate([[orig_img, "original image"],
...             [sp_filter_axis_0, "spline filter (axis=0)"],
...             [sp_filter_axis_1, "spline filter (axis=1)"]]):
...     ax[ind].imshow(data[0], cmap='gray_r')
...     ax[ind].set_title(data[1])
>>> plt.tight_layout()
>>> plt.show()
scipy-ndimage-spline_filter1d-1.png

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.ndimage.spline_filter1d。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。