2011-12-22 4 views
1

Для некоторых программ распознавания жестов я хочу построить дерево распознавания с использованием функции matlab classregrtree.Matlab classregtree с многомерной матрицей

Когда у меня есть бинарное изображение только жестов, я создаю 2 спектра интенсивности: один для оси x и один для оси y. Из этих спектров я хочу извлечь некоторые данные и использовать их для построения classregtree. Примерами данных, которые я использую, являются ширина спектра, количество шипов и общая площадь жеста. Тем не менее, я также хочу использовать данные, которые имеют переменное количество параметров: например. Я хочу использовать высоты отдельных пиков в спектре также как параметры для classregtree. Однако classregtree требует фиксированного количества удвоений для каждого набора данных, в то время как число спайков и, следовательно, количество переменных, которые я хочу передать, являются переменными. Каков наилучший способ использования этих данных? Я мог бы просто использовать фиксированное количество параметров и передать значение 0, если я не могу создать значение (например, я всегда передаю значения 10 пиков, но когда у меня меньше 10, их значения будут 0), но я Боюсь, что это не сработает.

ответ

1

Обычным способом решения вашей проблемы является создание гистограмм. Хорошим свойством гистограмм является то, что они всегда имеют одинаковый размер.

Так, например, вы можете сделать гистограмму высот ваших шипов (с фиксированным бинированием), используя histc.

+0

Так что, по существу, передаются 0 значений для каждого значения, которое не найдено правильно? Потому что, если значение не найдено, мы получаем пустую корзину. Кстати, я забыл сказать, но количество шипов довольно мало (обычно ниже 10), но распространение ценностей довольно велико, но очень важно. Поэтому, если я создам гистограмму, я, вероятно, получу только ячейки со значениями 0 и 1. – Tiddo

+0

Не совсем, это сильно отличается. Например, если у вас есть два сигнала [0,1 0,9 0,1 0,9] и [0,1 0,1]. С вашей формулировкой они будут описаны [0,1 0,9 0,1 0,9] и [0,1 0,1 0 0]. С гистограммами (скажем, тремя ячейками [0 1/3 2/3 1]) представление будет [2 0 2] и [2 0 0] – Oli

+0

Но в моих ситуациях 2 значения редко будут близки к одному значению. Таким образом, набор [0.1 0.9 0.1 0.9], вероятно, не произойдет. Сигналы будут больше похожими на [0,1 0,4 0,9] или что-то в этом роде, и если я сгруппирую 2 из этих значений вместе, результаты будут слишком сильно изменены. Но я мог бы использовать различия в значениях (должен был подумать об этом раньше), поскольку они могут быть сгруппированы вместе. – Tiddo

0

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

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