кто-нибудь, кто знает, как рассчитать скорость жеста руки по отслеживанию рук? (я использую обработку 1.5.1 с simpleopenNI 0.27)
Спасибо за внимание
кто-нибудь, кто знает, как рассчитать скорость жеста руки по отслеживанию рук? (я использую обработку 1.5.1 с simpleopenNI 0.27)
Спасибо за внимание
Скорость - это расстояние в единицу времени. Следовательно, скорость равна:
distance_between_hand_in_consecutive_frames/(seconds_per_frame)
Чтобы найти расстояние в 3D, используйте евклидово расстояние с положением руки в последовательных кадрах.
EDIT: пример псевдокода.
f1 = get_current_frame_hand_coordinates()
f0 = get_previous_frame_hand_coordinates()
Затем вам нужна функция для расчета расстояния. Ваш ввод должен быть двумя кортежами, здесь a и b, размером три, то есть (x, y, z)
e_distance(a,b):
d = square_root( (a[0]-b[0])^2 + (a[1]-b[1])^2 + (a[2]-b[2])^2 )
return d
dist = e_distance(f0,f1)
По сути, здесь вы просто подставляете значения кортежа в уравнение. Я не уверен, как устроен ваш код, он предназначен для одного набора кортежей.
Теперь, когда у вас есть расстояние, нам просто нужно рассчитать скорость.
speed = distance/seconds_per_frame
Википедия говорит, что частота кадров Kinect составляет от 9 до 30 Гц. Это означает, что ваш seconds_per_frame
находится между 1/9 и 1/30 секунды.
Это только даст вам скорость. Ваш вопрос касается скорости (которая имеет только величину), но вы также можете довольно легко получить скорость (которая имеет как величину, так и направление) с помощью небольшого триггера.