exponenta event banner

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 - массив объектов Габора, называемый банком фильтров. 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. Входные изображения типа 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/лямбда. Типичные значения для пространственно-частотной полосы пропускания находятся в диапазоне [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