imgaborfilt

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

Синтаксис

[mag, phase] = imgaborfilt(A,wavelength,orientation)
[mag, phase] = imgaborfilt(A,wavelength,orientation,Name,Value,...)
[mag, phase] = imgaborfilt(A,gaborbank)

Описание

пример

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

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

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

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

свернуть все

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

Если изображение содержит Inf s или NaN s, поведение 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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