modefilt

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

Описание

пример

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

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

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

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

Примеры

свернуть все

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

load buildingPixelLabeled;

Просмотрите оригинальное изображение, img.

imshow(img)

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

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

imshow(label2rgb(label))

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

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

 b = modefilt(label);

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

 figure
 imshow(label2rgb(b));

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

Считайте помеченный объем MRI. Объем хранится в переменной 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);

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

свернуть все

2D изображение или 3-D объем в виде категориального, логического, или числового массива.

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

Отфильтруйте размер в виде вектора из положительных нечетных целых чисел. Для 2D изображений задайте вектор из формы [height width]. Значением по умолчанию для 2D изображений является [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'Заполните массив 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