gabor

Создайте фильтр Габора или набор фильтров Габора

Синтаксис

g = gabor(wavelength,orientation)
g = gabor(___,Name,Value,...)

Описание

пример

g = gabor(wavelength,orientation) создает фильтр Габора с заданным wavelength (в пикселях/цикле) и orientation (в градусах). Если вы задаете wavelength или orientation как векторы, gabor возвращает массив объектов gabor, названных filter bank, которые содержат все уникальные комбинации wavelength и orientation. Например, если wavelength является вектором длины 2, и orientation является вектором длины 3, то выходной массив g является вектором длины 6. Чтобы применить фильтры Габора к изображению, используйте функцию imgaborfilt.

g = gabor(___,Name,Value,...) создает массив фильтров Габора с помощью пар "имя-значение", чтобы управлять аспектами проекта фильтра Габора. Если вы задаете вектор значений, выходной массив, g содержит все уникальные комбинации входных значений.

Примеры

свернуть все

Создайте демонстрационное изображение шахматной доски.

A = checkerboard(20);

Создайте массив фильтров Габора.

wavelength = 20;
orientation = [0 45 90 135];
g = gabor(wavelength,orientation);

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

outMag = imgaborfilt(A,g);

Отобразите результаты.

outSize = size(outMag);
outMag = reshape(outMag,[outSize(1:2),1,outSize(3)]);
figure, montage(outMag,'DisplayRange',[]);
title('Montage of gabor magnitude output images.');

Создайте массив фильтров Габора.

g = gabor([5 10],[0 90]);

Визуализируйте действительную часть пространственного ядра свертки каждого Габора, просачиваются массив.

figure;
subplot(2,2,1)
for p = 1:length(g)
    subplot(2,2,p);
    imshow(real(g(p).SpatialKernel),[]);
    lambda = g(p).Wavelength;
    theta  = g(p).Orientation;
    title(sprintf('Re[h(x,y)], \\lambda = %d, \\theta = %d',lambda,theta));
end

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

свернуть все

Длина волны синусоиды, заданной в виде числа или вектора, в пикселях/цикле.

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

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: g = gabor(4,90,'SpatialFrequencyBandwidth',1.5);

Числовой вектор, который задает пропускную способность пространственной частоты в модулях Октав. Пропускная способность пространственной частоты определяет сокращение ответа фильтра, когда содержимое частоты во входном изображении отличается от предпочтительной частоты, 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

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

свернуть все

Массив фильтра Габора, возвращенный как массив объектов gabor.

Введенный в R2015b