medfilt2d#
- scipy.signal.medfilt2d(входные данные, размер ядра=3)[источник]#
Медианная фильтрация двумерного массива.
Применить медианный фильтр к входные данные массив с использованием локального размера окна заданного размер ядра (должно быть нечётным). Массив автоматически дополняется нулями.
- Параметры:
- входные данныеarray_like
Входной массив размерности 2.
- размер ядраarray_like, необязательный
Скаляр или список длины 2, задающий размер окна медианного фильтра в каждом измерении. Элементы размер ядра должно быть нечётным. Если размер ядра является скаляром, тогда этот скаляр используется как размер в каждом измерении. По умолчанию ядро размера (3, 3).
- Возвращает:
- выходndarray
Массив того же размера, что и входные данные, содержащий результат медианной фильтрации.
Смотрите также
Примечания
Это быстрее, чем
medfiltкогда входной dtype равенuint8,float32, илиfloat64; для других типов это переходит кmedfilt. В некоторых ситуацияхscipy.ndimage.median_filterможет быть быстрее, чем эта функция.Примеры
>>> import numpy as np >>> from scipy import signal >>> x = np.arange(25).reshape(5, 5) >>> x array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19], [20, 21, 22, 23, 24]])
# Заменяет i,j медианой из окна 5*5
>>> signal.medfilt2d(x, kernel_size=5) array([[ 0, 0, 2, 0, 0], [ 0, 3, 7, 4, 0], [ 2, 8, 12, 9, 4], [ 0, 8, 12, 9, 0], [ 0, 0, 12, 0, 0]])
# Заменяет i,j медианой из окна по умолчанию 3*3
>>> signal.medfilt2d(x) array([[ 0, 1, 2, 3, 0], [ 1, 6, 7, 8, 4], [ 6, 11, 12, 13, 9], [11, 16, 17, 18, 14], [ 0, 16, 17, 18, 0]])
# Заменяет i,j медианой из окна 5*3 по умолчанию
>>> signal.medfilt2d(x, kernel_size=[5,3]) array([[ 0, 1, 2, 3, 0], [ 0, 6, 7, 8, 3], [ 5, 11, 12, 13, 8], [ 5, 11, 12, 13, 8], [ 0, 11, 12, 13, 0]])
# Заменяет i,j медианой из окна по умолчанию 3*5
>>> signal.medfilt2d(x, kernel_size=[3,5]) array([[ 0, 0, 2, 1, 0], [ 1, 5, 7, 6, 3], [ 6, 10, 12, 11, 8], [11, 15, 17, 16, 13], [ 0, 15, 17, 16, 0]])
# Как видно из примеров, # номера ядер должны быть нечетными и не превышать размер исходного массива