Следуя инструкции MATLAB о возможностях Gabor , я могу применить банк фильтров Gabor к изображению 'kobi':
wavelengthMin = 4/sqrt(2);
wavelength = 2.^(0:4) * wavelengthMin;
deltaTheta = 45;
orientation = 0:deltaTheta:(180-deltaTheta);
g = gabor(wavelength,orientation);
A = imread('kobi.png');
Agray = rgb2gray(A);
gabormag = imgaborfilt(Agray,g);
g
содержит, в данном случае, 20 ядер фильтров (см. Документацию по gabor
). imgaborfilt
применяет каждое из этих ядер (путем свертки) к изображению Agray
, версии серого значения изображения 'kobi'. gabormag
теперь представляет собой трехмерное изображение с 20 плоскостями, каждая из которых является величиной выходного сигнала одного из фильтров Габора.
Ответ фильтра Габора иногда принимается за характеристики каждого пикселя. В руководстве MATLAB они применяют локальное усреднение, что означает, что для каждого пикселя функции Gabor являются средними значениями откликов фильтра в небольшой окрестности. Для использования с суперпикселями имеет смысл усреднить ответы фильтра в каждом суперпикселе. Давайте сначала повторим ваш код, чтобы получить суперпиксели:
[L,N] = superpixels(A,500);
L
является помеченным изображением: каждый пиксель имеет значение, соответствующее идентификатору суперпикселя. Эти метки начинаются с 1 и являются последовательными.
Используя regionprops
, мы можем вычислить среднюю интенсивность в каждой маркированной области:
K = size(gabormag,3);
gaborfeatures = zeros(N,K);
for ii=1:K
res = regionprops(L,gabormag(:,:,ii),'MeanIntensity');
gaborfeatures(:,ii) = [res.MeanIntensity]';
end
(Вы также можете использовать label2idx
и перебирать его выходные массивы, как вы делали при редактировании вашего вопроса.)
gaborfeatures
теперь содержит одну строку для каждого суперпикселя и один столбец для каждой функции Gabor. Например, gaborfeatures(294,:)
- это функции Габора для суперпикселя L==294
, который у собаки на носу:
>> gaborfeatures(294,:)
ans =
1.0e+04 *
Columns 1 through 9
0.0008 0.0040 0.0171 0.0848 1.0617 0.0009 0.0040 0.0193 0.1304
Columns 10 through 18
0.7753 0.0008 0.0040 0.0165 0.0872 1.0672 0.0010 0.0046 0.0208
Columns 19 through 20
0.0842 0.6736