scipy.signal.wiener¶
- scipy.signal.wiener(im, mysize=None, noise=None)[源代码]¶
对N维数组执行维纳过滤。
将维纳过滤应用于N维数组 im 。
- 参数
- imndarray
N维数组。
- mysizeINT或ARRAY_LIKE,可选
给出维纳过滤窗口在每个维度中的大小的标量或N长度列表。我的尺寸元素应该是奇数。如果mysize是标量,则此标量用作每个维度中的大小。
- noise浮动,可选
要使用的噪声功率。如果没有,则将噪波估计为输入的局部方差的平均值。
- 退货
- outndarray
Wiener过滤结果的形状与 im 。
注意事项
此实现类似于Matlab/Octave中的wiener2。有关更多详细信息,请参阅 [1]
参考文献
- 1
林在胜,“二维信号与图像处理”,新泽西州恩格尔伍德·克里夫斯,普伦蒂斯·霍尔,1990,第548页。
示例
>>> from scipy.misc import face >>> from scipy.signal.signaltools 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()