някой, който знае как да изчисли скоростта на жеста на ръката от проследяването на ръката? (използвам обработка 1.5.1 с simpleopenNI 0.27)
Благодаря за вниманието
някой, който знае как да изчисли скоростта на жеста на ръката от проследяването на ръката? (използвам обработка 1.5.1 с simpleopenNI 0.27)
Благодаря за вниманието
Скоростта е разстоянието за единица време. Следователно скоростта е:
distance_between_hand_in_consecutive_frames/(seconds_per_frame)
За да намерите разстоянието в 3d, използвайте Евклидово разстояние с позицията на ръката в последователни кадри.
РЕДАКТИРАНЕ: Пример за псевдокод.
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 Hz. Това означава, че вашето seconds_per_frame
е между 1/9 и 1/30 от секундата.
Това само ще ви даде скоростта. Вашият въпрос пита за скорост (която има само величина), но можете също така да получите скорост (която има както величина, така и посока) сравнително лесно с малко задействане.