scipy.signal.

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()
../../_images/scipy-signal-wiener-1.png