Как сохранить вектор функции Sift для классификации с использованием нейронной сети - PullRequest
1 голос
/ 05 апреля 2011

Реализация функций SIFT в Matlab была найдена из http://www.cs.ubc.ca/~lowe/keypoints/. с помощью stackoverflow.Я хочу сохранить функции в файл .mat.Возможности включают округлость, цвет, отсутствие количества пикселей в двоичном изображении и просеивание.Для функций sift я взял дескрипторы в приведенном выше коде {[siftImage, descriptors, locs] = sift (FilterImg)} Так что мой вектор объектов теперь имеет FeaturesTest = [roundness, nWhite, color, descriptors, output];При сохранении этого в файл .mat с помощью save («features.mat», «Features»);это дает ошибку.Ошибка такая.

???Ошибка при использовании ==> параметров аргументов Horzcat CAT не согласована.Ошибка в ==> user_interface> extract_features в 336 FeaturesTest = [округлость, nWhite, цвет, дескрипторы, выходные данные];

Как я понимаю, я думаю, что проблема заключается в размере вектора функции дескриптора.Это <14x128 double>.14 строк предназначены для этой функции, тогда как для других только одна строка находится в файле .mat.Как сохранить вектор этой функции в файле .mat с другими моими функциями?

В ожидании ответа.Заранее спасибо.

1 Ответ

2 голосов
/ 06 апреля 2011

Из того, что я могу понять, похоже, что вы пытаетесь поместить переменные roundness, nWhite, color, descriptors и outputs в один вектор, и все переменные имеют уникальныйразмеры.

Возможно, было бы лучше использовать ячейку или структуру для хранения данных.Чтобы сохранить данные в ячейке, просто замените квадратные скобки на фигурные скобки, например, так:

FeaturesTest = {roundness, nWhite, color, descriptors, outputs};

Однако для этого потребуется помнить, какие ячейки были, когда вы извлекали данные из.Матовый файл.Структура может быть более полезной для вас:

FeaturesTest.roundness = roundness;
FeaturesTest.nWhite = nWhite;
FeaturesTest.color = color;
FeaturesTest.descriptors = descriptors;
FeaturesTest.outputs = outputs;

Затем, когда вы загрузите файл .mat, все данные будут содержаться в этой структуре, на которую вы можете легко ссылаться.Если вам нужно посмотреть только на цветовую переменную, вы должны набрать FeaturesTest.color, нажать Enter, и переменная будет отображена.Кроме того, вы можете просмотреть структуру, дважды щелкнув ее в окне рабочего пространства.

В качестве альтернативы вы можете просто использовать команду сохранения следующим образом:

save(filename,roundness, nWhite, color, descriptors, outputs)

Надеюсь, это поможет.*

...