Я пытаюсь использовать Surf для классификации изображений ... Я пробовал это с использованием расстояния Ecludian и с нейронной сетью, но оба они дают мне плохие результаты распознавания на 2 базах данных, поэтому я не знаю, что не так сменя Как я знаю .. Я должен использовать дескрипторы в классификации ... Я получил их от Особенности
вот мой код:
myFolder = 'E:\sherok\images of hands sherok';
if ~isdir(myFolder)
errorMessage = sprintf('Error: The following folder does not exist:\n%s', myFolder);
uiwait(warndlg(errorMessage));
return;
end
filePattern = fullfile(myFolder, '*.bmp');
jpegFiles = dir(filePattern);
a=[]
for k = 1:length(jpegFiles)
baseFileName = jpegFiles(k).name;
fullFileName = fullfile(myFolder, baseFileName);
fprintf(1, 'Now reading %s\n', fullFileName)
I1=imread(fullFileName);
I1 = rgb2gray(I1);
I1 = adapthisteq (I1);
I1 = imadjust(I1);
I1 = histeq (I1);
points1 = detectSURFFeatures(I1);
[features1, valid_points1] = extractFeatures(I1, points1.selectStrongest(10));
[filepath,name,ext] = fileparts(baseFileName);
file_name = sprintf('Surf_%s.mat',name);
save (file_name, 'features1','valid_points1', 'I1' ),
end
features1 это мои дескрипторы ... Ясохраните их, затем вызовите их, чтобы вычислить расстояние Эклудиана между каждым изображением и тестовым изображением
Для нейронной сети я использовал эти функции в векторе, чтобы получить матрицу для всех изображений обучающего набора и то же самое для тестового набора
Спасибо и надеюсь, что вы мне поможете