wiener#
- scipy.signal.wiener(im, mysize=None, noise=None)[Quelle]#
Führt einen Wiener-Filter auf einem N-dimensionalen Array aus.
Wendet einen Wiener-Filter auf das N-dimensionale Array im an.
- Parameter:
- imndarray
Ein N-dimensionales Array.
- mysizeint oder array_like, optional
Eine Skalar- oder eine N-lange Liste, die die Größe des Wiener-Filterfensters in jeder Dimension angibt. Elemente von mysize sollten ungerade sein. Wenn mysize ein Skalar ist, wird dieser Skalar als Größe in jeder Dimension verwendet.
- noisefloat, optional
Die zu verwendende Rauschleistung. Wenn None, wird das Rauschen als Durchschnitt der lokalen Varianz des Eingangs geschätzt.
- Rückgabe:
- outndarray
Wiener-gefiltertes Ergebnis mit derselben Form wie im.
Hinweise
Diese Implementierung ähnelt wiener2 in Matlab/Octave. Weitere Details finden Sie unter [1]
Referenzen
[1]Lim, Jae S., Two-Dimensional Signal and Image Processing, Englewood Cliffs, NJ, Prentice Hall, 1990, S. 548.
Beispiele
>>> 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()