SURF плохо работает в классификации с использованием Matlab - PullRequest
0 голосов
/ 01 декабря 2018

Я пытаюсь использовать 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 это мои дескрипторы ... Ясохраните их, затем вызовите их, чтобы вычислить расстояние Эклудиана между каждым изображением и тестовым изображением

Для нейронной сети я использовал эти функции в векторе, чтобы получить матрицу для всех изображений обучающего набора и то же самое для тестового набора

Спасибо и надеюсь, что вы мне поможете

...