ordfilt2

2D статистическая порядком фильтрация

Синтаксис

B = ordfilt2(A,order,domain)
B = ordfilt2(A,order,domain,S)
B = ordfilt2(___,padopt)

Описание

пример

B = ordfilt2(A,order,domain) замены каждый элемент в A order th элемент в отсортированной группе соседей заданы ненулевыми элементами в domain.

B = ordfilt2(A,order,domain,S) A фильтров, где ordfilt2 использует значения S, соответствующего ненулевым значениям domain как аддитивные смещения. Можно использовать этот синтаксис, чтобы реализовать полутоновые морфологические операции, включая полутоновое расширение и эрозию.

B = ordfilt2(___,padopt) A фильтров, где padopt задает, как ordfilt2 заполняет матричные контуры.

Примеры

свернуть все

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

A = imread('snowflakes.png');
figure
imshow(A)

Отфильтруйте изображение и отобразите результат.

B = ordfilt2(A,25,true(5));
figure
imshow(B)

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

свернуть все

Введите матрицу, заданную как 2D, действительный, неразреженный, числовой или логический массив.

Пример: A = imread('snowflakes.png');

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

Элемент, чтобы заменить целевой пиксель, заданный как действительное скалярное целое число.

Пример: B = ordfilt2(A,25,true(5));

Типы данных: double

Окружение, заданное как числовая или логическая матрица, содержа 1 с и 0s. domain эквивалентен элементу структурирования, используемому для операций двухуровневого изображения. 1-значные элементы задают окружение для операции фильтрации. Следующая таблица дает примеры некоторых общих фильтров.

Тип фильтрации операцииКОД MATLABОкружениеДемонстрационные данные изображения, указание на выбранный элемент
Средний фильтрB = ordfilt2(A,5,ones(3,3))
Минимальный фильтрB = ordfilt2(A,1,ones(3,3))
Максимальный фильтрB = ordfilt2(A,9,ones(3,3))
Минимум севера, востока, юга и западных соседейB = ordfilt2(A,1,[0 1 0; 1 0 1; 0 1 0])

Пример: B = ordfilt2(A,25,true(5));

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический

Аддитивные смещения, заданные как матрица тот же размер как domain.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический

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

ОпцияОписание
'zeros'Заполните границы массива 0.
'symmetric'

Заполните массив зеркальными отражениями себя.

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

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

свернуть все

Выходное изображение, возвращенное как 2D массив того же класса как входное изображение A.

Советы

  • При работе с большими доменными матрицами, которые не содержат элементов с нулевым знаком, ordfilt2 может достигнуть более высокой производительности, если A находится в формате целочисленных данных (uint8, int8, uint16, int16). Усиление в скорости больше для uint8 и int8, чем для 16-битных типов данных. Для 8-битных форматов данных доменная матрица должна содержать семь или больше строк. Для 16-битных форматов данных доменная матрица должна содержать три или больше строки и 520 или больше элементов.

Ссылки

[1] Haralick, Роберт М., и Линда Г. Шапиро, компьютер и видение робота, объем I, Аддисон-Уэсли, 1992.

[2] Хуан, T.S., G.J.Yang и G.Y.Tang. "Быстрый двумерный средний алгоритм фильтрации". транзакции IEEE на Акустике, Речи и Обработке сигналов, Vol ASSP 27, № 1, февраль 1979

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

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

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