medfilt2

2D медианная фильтрация

Описание

пример

J = medfilt2(I) выполняет медианную фильтрацию изображения I в двух измерениях. Каждый выходной пиксель содержит среднее значение в 3х3 окружении вокруг соответствующего пикселя во входном изображении.

Опционально можно вычислить нормированную взаимную корреляцию с помощью графического процессора (требует Parallel Computing Toolbox™).

J = medfilt2(I,[m n]) выполняет медианную фильтрацию, где каждый выходной пиксель содержит среднее значение в m- n окружение вокруг соответствующего пикселя во входном изображении.

J = medfilt2(___,padopt) средства управления, как medfilt2 заполняет границы изображения.

Этот синтаксис не поддержан на графическом процессоре.

Примеры

свернуть все

Считайте изображение в рабочую область и отобразите его.

I = imread('eight.tif');
figure, imshow(I)

Добавьте перечный шум и соль.

J = imnoise(I,'salt & pepper',0.02);

Используйте средний фильтр, чтобы отфильтровать шум.

K = medfilt2(J);

Отобразите результаты, рядом друг с другом.

imshowpair(J,K,'montage')

Входные параметры

свернуть все

Введите изображение, заданное как 2D полутоновое или двухуровневое изображение.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

Размер окружения, заданный как вектор с 2 элементами действительных положительных целых чисел.

Если вы выполняете медианную фильтрацию с помощью графического процессора, то окружение должно быть квадратным со сторонами нечетной длины между 3 и 15.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Дополнение опции, заданной как одно из следующих значений.

ЗначениеОписание
'zeros' (значение по умолчанию)Заполните изображение 0s.
'symmetric'Симметрично расширьте изображение на контурах.
'indexed'Если класс I double, затем заполните изображение 1s; в противном случае заполните 0s.

Типы данных: char | string

Выходные аргументы

свернуть все

Выходное изображение, возвращенное как числовая матрица того же класса как входное изображение I.

Советы

  • Медианная фильтрация является нелинейной операцией, часто используемой в обработке изображений, чтобы уменьшать "соль и перец" шум. Средний фильтр является более эффективным, чем свертка, когда цель состоит в том, чтобы одновременно уменьшать ребра заповедника и шум. Для получения информации о факторах производительности смотрите ordfilt2.

  • Если входное изображение I имеет целочисленный класс, затем все выходные значения возвращены как целые числа. Если количество пикселей в окружении (т.е. m*n) даже, затем некоторые средние значения не могут быть целыми числами. В этих случаях отбрасываются дробные части. Логический вход обработан так же. Например, истинная медиана для следующего окружения 2 на 2 в uint8 массив 4.5, но medfilt2 отбрасывает дробную часть и возвращается 4.

    1 5
    4 8
  • Если вы задаете padopt как 'zeros' или 'indexed', затем дополнение может скосить медиану около границы изображения. Пиксели в половине ширины окружения ([m n]/2) из ребер может казаться искаженным.

Алгоритмы

На центральном процессоре, medfilt2 использование ordfilt2 выполнять фильтрацию.

Ссылки

[1] Лим, Джэ С., Двумерная Обработка сигналов и Обработка изображений, Englewood Cliffs, NJ, Prentice Hall, 1990, стр 469-476.

Расширенные возможности

Смотрите также

| | |

Представлено до R2006a