2013-06-25 8 views
1

Я хочу классифицировать изображения на два класса по их формам. Для этого я использовал дескрипторы Fourier с SVIF classifer. Моя проблема заключается в том, что длина дескриптора Фурье зависит от количества граничных точек, поэтому длина дескрипторов разных изображений различна. Но для обучения SVM мне нужна обучающая матрица с дескрипторами в виде строк матрицы (cv :: Mat). Я реализую ее в C++ с помощью openCV. Что делать? я должен:
1.pad остальные дескрипторы к длине самого длинного дескриптора с нулями
2.sample только фиксированное число точек из границыДескрипторы Фурье с внедрением SVM для распознавания класса объектов на основе формы

Else предложить мне правильный путь.

+0

Вы могли бы рассказать, какой метод вы использовали для отбора исчисления количества очков и насколько хорошо он работал? Например, как вы выбрали, какие точки сохранить? – Kittenmittons

ответ

3

Лучшим подходом в этом случае является выборка фиксированного числа точек от границы, так что ваши входные векторы имеют одинаковую длину. Заполнение - это плохая идея, потому что при этом вы неявно изменяете определение расстояния между проложенными точками и не проложенными точками.

+0

Спасибо Marc. У меня есть еще одно сомнение. После применения dft на граничных точках (x + jy x-вещественный y-мнимый (x, y) -координаты границы) то, что у меня есть, является двухканальным Mat, который является Mat изображающих сложные значения. Но SVM принимает только одноканальную матрицу с плавающей запятой в качестве обучающих данных. Должен ли я принимать величину комплексного числа как одноканальный реальный оценочный дескриптор или мне нужно скопировать мнимую часть дескрипторов, т.е. 2-й канал, в первый, удвоив длину столбца оригинала коврик и сокращение 1 канала или что еще мне нужно сделать? – user2442331

+0

«Инвариант вращения FDs достигается путем игнорирования информации о фазе и принятия только значений величины FD». - как написано в исследовательском документе. Это подразумевает, что мне просто нужно взять значение значений дескриптора сложного числа, которое у меня есть, что также решит мою проблему преобразования 2-канального cv :: Mat в один канал для обучения SVM. – user2442331

+0

@ user2442331 Я не знаю специфики вашей проблемы, но я думаю, что игнорирование сложной части ваших данных - плохая идея. Вы могли бы использовать два входа для каждого сложного числа, как вы предлагаете, или, может быть, пойти на величину + фазу (2 входа на комплексное число). Что касается исследовательского документа: все зависит от его предположений и приложений. Вероятно, лучше всего попробовать оба подхода и посмотреть, что лучше всего подходит для вас. –

 Смежные вопросы

  • Нет связанных вопросов^_^