scipy.signal.
винер#
- scipy.signal.винер(im, mysize=None, шум=None)[источник]#
Выполнить фильтр Винера на N-мерном массиве.
Применить фильтр Винера к N-мерному массиву im.
- Параметры:
- imndarray
N-мерный массив.
- mysizeint или array_like, необязательно
Скаляр или список длины N, задающий размер окна фильтра Винера в каждом измерении. Элементы mysize должны быть нечётными. Если mysize — скаляр, то этот скаляр используется как размер в каждом измерении.
- шумfloat, опционально
Мощность шума для использования. Если None, то шум оценивается как среднее локальной дисперсии входа.
- Возвращает:
- выходndarray
Результат фильтра Винера с той же формой, что и im.
Примечания
Эта реализация аналогична wiener2 в Matlab/Octave. Для получения дополнительных сведений см. [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()