Концепция scipy.signal.medfilt2d в Python - PullRequest
2 голосов
/ 23 мая 2011

Я пытаюсь понять, как работает scipy.signal.medfilt2d. После того, как я посмотрел документацию Scipy, его формат:

scipy.signal.medfilt2d (вход, kernel_size = 3)

Так что, если у меня есть матрица типа

1 2 3 7 2 4
3 4 2 2 6 7
1 7 3 1 2 6
3 2 3 4 3 1
2 6 7 8 2 5
3 4 2 2 1 8

Поскольку размер ядра по умолчанию равен 3. Если я применю medfilt2d к этой матрице, станет ли она такой, как показано ниже? (то, что я сделал, это взял каждый элемент внутри поля 3 x 3, сложил их все и разделил на 9 (в среднем))

2.8   2.8   2.8   4.1   4.1  4.1
2.8   2.8   2.8   4.1   4.1  4.1
2.8   2.8   2.8   4.1   4.1  4.1
3.5   3.5   3.5   3.7   3.7  3.7
3.5   3.5   3.5   3.7   3.7  3.7
3.5   3.5   3.5   3.7   3.7  3.7

Так, пожалуйста, поделитесь своими знаниями и знаниями со мной? Скажите мне, если я не прав, чтобы я мог учиться на этой ошибке. Большое спасибо

1 Ответ

1 голос
/ 23 мая 2011

Как объяснено в документации Scipy , medfilt2 - это медианный фильтр.Цитируя из документации,

The sample median is the middle array value in a sorted list of neighborhood values

Так что для вашего примера подматрица в позиции 1,1

1 2 3
3 4 2
1 7 3

будет отсортирована в

1 1 2 2 3 3 3 4 7

СредняяЭлемент 3, так что это будет выходной сигнал фильтра.Более подробная информация в Википедии .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...