exponenta event banner

modefilt

фильтрация в режиме 2-D и 3-D

Описание

пример

B = modefilt(A) выполняет фильтрацию режима для 2-D образа или тома 3-D A. Каждый выходной пиксель в B содержит режим (наиболее часто встречающееся значение) в окрестности вокруг соответствующего пикселя в A. Если A является 2-D, modefilt использует фильтр режима 3 на 3. Если A является 3-D, modefilt использует фильтр режима «3 на 3». modefilt подушки A путем зеркального отображения элементов границы.

Фильтрация в режиме может быть полезна для обработки категориальных данных, когда другие типы фильтрации, такие как медианная фильтрация, недоступны.

B = modefilt(A,filtsize) также указывает размер области фильтра. filtsize - вектор положительных, нечётных целых чисел. Когда A 2-D, укажите filtsize как вектор 1 на 2. Когда A 3-D, укажите filtsize как вектор 1 на 3.

B = modefilt(___,padopt) также указывает, как modefilt площадки границы массива.

Примеры

свернуть все

Загрузить изображение (img) и соответствующей категориальной помеченной версии изображения (label) в рабочее пространство.

load buildingPixelLabeled;

Просмотр исходного изображения, img.

imshow(img)

Figure contains an axes. The axes contains an object of type image.

Просмотр категориально помеченного изображения, label. На категориальном изображении отмечены четыре отдельные категории: небо, трава, здание и тротуар. Для просмотра преобразуйте эти категории в цвета с помощью label2rgb функция.

imshow(label2rgb(label))

Figure contains an axes. The axes contains an object of type image.

Выполните фильтрацию режима для категориально помеченного изображения, label, используя размер фильтра по умолчанию и метод заполнения.

 b = modefilt(label);

Просмотр отфильтрованного изображения с категориальными метками, b. В отфильтрованном изображении края между помеченными областями более различимы.

 figure
 imshow(label2rgb(b));

Figure contains an axes. The axes contains an object of type image.

Прочитайте маркированный объем МРТ. Том хранится в переменной рабочей области label.

load(fullfile(toolboxdir('images'),'imdata','BrainMRILabeled', ...
    'labels','label_001.mat'));

Отображение маркированного объема. Для ясности добавьте заголовок к экрану.

ViewPnl = uipanel(figure,'Title','Labeled Volume');
labelvolshow(label,'Parent',ViewPnl);

Выполните фильтрацию в режиме для помеченного тома, указав размер фильтра.

labelOut = modefilt(label,[5 5 5]);

Отображение отфильтрованного меченого объема. Для ясности добавьте заголовок к экрану.

ViewPnlFiltered = uipanel(figure,'Title','Mode Filtered Labeled Volume');
labelvolshow(labelOut,'Parent',ViewPnlFiltered);

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

свернуть все

2-D образ или 3-D том, указанный как категориальный, логический или числовой массив.

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

Размер фильтра, определяемый как вектор положительных нечётных чисел. Для 2-D изображений укажите вектор формы [height width]. Значение по умолчанию для 2-D изображений: [3 3]. Для 3-D объемов укажите вектор формы [height width depth]. Значение по умолчанию для 3-D томов: [3 3 3].

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

Метод заполнения, указанный как одно из следующих значений.

СтоимостьОписание
'symmetric'Массив подушек с зеркальным отражением самого себя.
'replicate'Массив площадок путем повторения граничных элементов.
'zeros'Массив Pad с 0s для числовых данных или с <undefined>s для категориальных данных.

Пример: labelOut = modefilt(label,'replicate');

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

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

свернуть все

Отфильтрованный образ или том, возвращенный в виде числового массива того же размера и класса, что и входной образ A.

Совет

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

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

    • Если центральный пиксель не является одним из значений режима в привязке, функция использует режим с наименьшим числовым значением.

    • Для категориального ввода функция выбирает первую категорию (среди категорий, связанных для режима), которая появляется в списке, возвращаемом categories(A).

  • modefilt обрабатывает образы RGB как 3-D тома. Чтобы выполнить канальную фильтрацию изображения RGB, укажите filtsize как [3 3 1], как в этом коде: b = modefilt(a,[3 3 1]); .

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

.

См. также

| | |

Представлен в R2020a