medfilt2

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

Синтаксис

J = medfilt2(I)
J = medfilt2(I,[m n])
J = medfilt2(___,padopt)

Описание

пример

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

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

J = medfilt2(I,[m n]) выполняет среднюю фильтрацию, где каждый выходной пиксель содержит среднее значение в m-by-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')

Считайте изображение в gpuArray.

I = gpuArray(imread('eight.tif'));

Добавьте шум в изображение, затем выполните среднюю фильтрацию и отобразите результат.

J = imnoise(I,'salt & pepper',0.02);
K = medfilt2(J);
figure, montage({J,K})

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

свернуть все

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

Чтобы выполнить среднюю фильтрацию с помощью графического процессора, задайте I как gpuArray, который содержит 2D полутоновое или двухуровневое изображение.

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

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

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

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

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

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

Примечание

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

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

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

свернуть все

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

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

Советы

  • Средняя фильтрация является нелинейной операцией, часто используемой в обработке изображений, чтобы уменьшать "соль и перец" шум. Средний фильтр является более эффективным, чем свертка, когда цель состоит в том, чтобы одновременно уменьшать ребра заповедника и шум. Для получения информации о факторах производительности смотрите 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