gabor

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

Описание

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

Можно использовать gabor функция, чтобы создать один фильтр Габора или filter bank Габора. Набор фильтров является набором фильтров, которые представляют комбинации нескольких длин волн, ориентаций и других дополнительных параметров. Например, если вы задаете две длины волн и три ориентации, затем набор фильтров Габора состоит из шести фильтров для каждой комбинации длины волны и ориентации.

Чтобы применить фильтр Габора или набор фильтров Габора к изображению, используйте imgaborfilt функция.

Создание

Описание

пример

g = gabor(Wavelength,Orientation) создает фильтр Габора и устанавливает свойства Wavelength и Orientation с длиной волны и ориентацией фильтра.

Если вы задаете Wavelength или Orientation как векторы, затем gabor функция создает массив gabor объекты, которые содержат все уникальные комбинации Wavelength и Orientation.

g = gabor(wavelength,orientation,Name,Value) также пары "имя-значение" использования, чтобы установить один или оба из свойств SpatialFrequencyBandwidth и SpatialAspectRatio. Можно задать несколько пар "имя-значение". Заключите каждое имя свойства в кавычки.

Если вы задаете SpatialFrequencyBandwidth или SpatialAspectRatio как векторы, затем gabor функция создает массив gabor объекты, которые представляют все комбинации значений входного параметра.

Пример: gabor(wavelength,orientation,'SpatialFrequencyBandwidth',2) создает фильтр Габора с пространственной полосой пропускания частоты двух октав.

Свойства

развернуть все

Длина волны синусоидальной несущей в виде числового скаляра или числового вектора со значениями, больше, чем или равный 2, в пикселях/цикле. Типичные значения Wavelength лежите в диапазоне от 2 до длины гипотенузы входного изображения [1].

Вы не можете изменить Wavelength свойство после создания gabor объект.

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

Если вы интересуетесь только ответом величины Габора, то ограничиваете область значений Orientation к [0, 180].

Вы не можете изменить Orientation свойство после создания gabor объект.

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

Вы не можете изменить SpatialFrequencyBandwidth свойство после создания gabor объект.

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

Вы не можете изменить SpatialAspectRatio свойство после создания gabor объект.

Это свойство доступно только для чтения.

Пространственное ядро в виде числовой матрицы.

Примеры

свернуть все

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

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.');

Figure contains an axes object. The axes object with title Montage of gabor magnitude output images. contains an object of type image.

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

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

Figure contains 4 axes objects. Axes object 1 with title R e [ h ( x , y ) ] , blank lambda blank = blank 5 , blank theta blank = blank 0 contains an object of type image. Axes object 2 with title R e [ h ( x , y ) ] , blank lambda blank = blank 1 0 , blank theta blank = blank 0 contains an object of type image. Axes object 3 with title R e [ h ( x , y ) ] , blank lambda blank = blank 5 , blank theta blank = blank 9 0 contains an object of type image. Axes object 4 with title R e [ h ( x , y ) ] , blank lambda blank = blank 1 0 , blank theta blank = blank 9 0 contains an object of type image.

Ссылки

[1] Джайн, Анил К., и Фэршид Фаррокния. "Безнадзорная Сегментация Структуры Используя Фильтры Габора". Распознавание образов 24, № 12 (январь 1991): 1167–86. https://doi.org/10.1016/0031-3203 (91) 90143-S.

Введенный в R2015b