bundles / scipy latest / scipy / signal / _signaltools / wiener
function
scipy.signal._signaltools:wiener
source: build-install/usr/lib/python3.14/site-packages/scipy/signal/_signaltools.py:1707
Signature
def wiener(im, mysize = None, noise = None)Summary
Perform a Wiener filter on an N-dimensional array.
Extended Summary
Apply a Wiener filter to the N-dimensional array im.
Parameters
im: ndarrayAn N-dimensional array.
mysize: int or array_like, optionalA scalar or an N-length list giving the size of the Wiener filter window in each dimension. Elements of mysize should be odd. If mysize is a scalar, then this scalar is used as the size in each dimension.
noise: float, optionalThe noise-power to use. If None, then noise is estimated as the average of the local variance of the input.
Returns
out: ndarrayWiener filtered result with the same shape as
im.
Notes
This implementation is similar to wiener2 in Matlab/Octave. For more details see [1]
Examples
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)✗
<matplotlib.image.AxesImage object at 0x7f3f6879d450>
plt.show()
✓
Aliases
scipy.signal.wiener