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