scipy.signal.

wiener#

scipy.signal.wiener(im, mysize=None, noise=None)[原始碼]#

在 N 維陣列上執行 Wiener 濾波器。

將 Wiener 濾波器應用於 N 維陣列 im

參數:
imndarray

一個 N 維陣列。

mysizeint 或 array_like,選用

一個純量或一個 N 長度的列表,給出每個維度中 Wiener 濾波器視窗的大小。mysize 的元素應為奇數。如果 mysize 是一個純量,則此純量用作每個維度的大小。

noisefloat,選用

要使用的雜訊功率。如果為 None,則雜訊估計為輸入局部變異數的平均值。

返回:
outndarray

Wiener 濾波後的結果,形狀與 im 相同。

註解

此實作類似於 Matlab/Octave 中的 wiener2。 更多詳細資訊請參閱 [1]

參考文獻

[1]

Lim, Jae S., Two-Dimensional Signal and Image Processing, Englewood Cliffs, NJ, Prentice Hall, 1990, p. 548.

範例

>>> from scipy.datasets import face
>>> from scipy.signal import wiener
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> rng = np.random.default_rng()
>>> img = rng.random((40, 40))    #Create a random image
>>> filtered_img = wiener(img, (5, 5))  #Filter the image
>>> f, (plot1, plot2) = plt.subplots(1, 2)
>>> plot1.imshow(img)
>>> plot2.imshow(filtered_img)
>>> plt.show()
../../_images/scipy-signal-wiener-1.png