imgaborfilt

Примените фильтр Габора или набор фильтров к 2-D изображения

Описание

пример

[mag,phase] = imgaborfilt(A,wavelength,orientation) вычисляет величину и фазовый отклик фильтра Габора для входа полутонового изображения A. wavelength описывает длину волны в пикселях/цикле синусоидальной несущей. orientation - ориентация фильтра в степенях. Область выхода mag и phase являются величиной и фазовыми откликами фильтра Габора.

[mag,phase] = imgaborfilt(A,wavelength,orientation,Name,Value) применяет один фильтр Габора, используя пары "имя-значение", для управления различными аспектами фильтрации.

пример

[mag,phase] = imgaborfilt(A,gaborbank) применяет массив фильтров Габора, gaborbank, к входу изображению A. gaborbank является 1-байт- p массивом объектов Габора, называемым filter bank. mag и phase являются стеками изображений, где каждая плоскость в стеке соответствует одному из выходов набора фильтров. Для входов размера A, выходы mag и phase содержать величину и фазовый отклик для каждого фильтра в gaborbank и имеют размер m -by- n -by- p. Каждая плоскость в величине и фазовых откликах, mag(:,:,ind),phase(:,:,ind), является результатом применения фильтра Габора того же индекса, gaborBank(ind).

Примеры

свернуть все

Чтение изображения в рабочую область.

I = imread('board.tif');

Преобразуйте изображение в полутоновое.

I = rgb2gray(I);

Применить фильтр Габора к изображению.

wavelength = 4;
orientation = 90;
[mag,phase] = imgaborfilt(I,wavelength,orientation);

Отобразите оригинальное изображение с графиками величины и фазы, вычисленными фильтром Габора.

figure
subplot(1,3,1);
imshow(I);
title('Original Image');
subplot(1,3,2);
imshow(mag,[])
title('Gabor magnitude');
subplot(1,3,3);
imshow(phase,[]);
title('Gabor phase');

Figure contains 3 axes. Axes 1 with title Original Image contains an object of type image. Axes 2 with title Gabor magnitude contains an object of type image. Axes 3 with title Gabor phase contains an object of type image.

Чтение изображения в рабочую область.

I = imread('cameraman.tif');

Создайте массив фильтров Габора, называемый банком фильтров. Эта группа фильтров содержит две ориентации и две длины волн.

gaborArray = gabor([4 8],[0 90]);

Применить фильтры к входному изображению.

gaborMag = imgaborfilt(I,gaborArray);

Отобразите результаты. Рисунок показывает величине ответ для каждого фильтра.

figure
subplot(2,2,1);
for p = 1:4
    subplot(2,2,p)
    imshow(gaborMag(:,:,p),[]);
    theta = gaborArray(p).Orientation;
    lambda = gaborArray(p).Wavelength;
    title(sprintf('Orientation=%d, Wavelength=%d',theta,lambda));
end

Figure contains 4 axes. Axes 1 with title Orientation=0, Wavelength=4 contains an object of type image. Axes 2 with title Orientation=0, Wavelength=8 contains an object of type image. Axes 3 with title Orientation=90, Wavelength=4 contains an object of type image. Axes 4 with title Orientation=90, Wavelength=8 contains an object of type image.

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

свернуть все

2-D полутоновое изображение, заданное как числовая матрица.

Если изображение содержит Infs или NaNs, поведение imgaborfilt не определено, потому что фильтрация Габора выполняется в частотный диапазон.

Для всех входных типов данных, кроме single, imgaborfilt выполняет расчет в double. Входные изображения type single фильтруются в типах single. Эффективность оптимизация может быть результатом приведения входа изображения к single перед вызовом imgaborfilt.

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

Длина волны синусоидального носителя, заданная как числовой скаляр в область значений [2,Inf), в пикселях/цикле.

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

Ориентация фильтра в степени, заданная как числовой скаляр в область значений [0 360], где ориентация задана как нормальное направление к синусоидальной плоской волне.

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

Массив фильтров Габора, заданный как gabor объект. Вы должны использовать gabor функция для создания массива фильтров Габора.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: [mag,phase] = imgaborfilt(I,4,90,'SpatialFrequencyBandwidth',2);

Пространственная полоса частот, заданная как числовой скаляр в модули октав. Пространственная полоса частот определяет срез характеристики фильтра, когда частота, содержимое в вход изображении, изменяется от предпочтительной частоты, 1/lambda. Типичные значения для пространственно-частотной полосы находятся в области значений [0.5 2.5].

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

Отношение большой и малой полуосей осей Гауссовой огибающей (semi-minor/semi-major), заданная как числовой скаляр. Этот параметр управляет эллиптичностью Гауссовой огибающей. Типичные значения для пространственных соотношений сторон находятся в области значений [0.23 0.92].

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

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

свернуть все

Величина для фильтра Габора, возвращенная в виде числового массива.

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

Фазовый отклик для фильтра Габора, возвращенная как числовой массив.

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

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

.
Введенный в R2015b