计算手势的速度

时间:2014-04-13 15:12:27

标签: image-processing processing kinect motion-detection simple-openni

任何知道如何通过手部追踪计算手势速度的人? (我正在使用1.5.1 with simpleopenNI 0.27处理)

感谢您的关注

1 个答案:

答案 0 :(得分:4)

速度是每单位时间的距离。因此,速度是:

distance_between_hand_in_consecutive_frames/(seconds_per_frame)

要在3d中查找距离,请在连续帧中使用Euclidean distance和手的位置。

编辑:一个伪代码示例。

f1 = get_current_frame_hand_coordinates()
f0 = get_previous_frame_hand_coordinates()

然后你需要一个计算距离的函数。你的输入应该是两个元组,这里是a和b,大小为3,即(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

维基百科says,Kinect的帧率介于9到30赫兹之间。这意味着您的seconds_per_frame介于1/9到1/30之间。

这将为您提供速度。你的问题询问了速度(只有幅度),但你也可以通过一点点触发得到速度(它有大小和方向)。