0

我正在编写有关 Kinect 骨架跟踪程序的程序。而手势的定义是写在程序中的。我希望手势的定义由用户定义。这样做的一种方法是通过 DFA。我不知道如何从 C# 开始。任何人都可以帮忙吗?

4

1 回答 1

0

尝试使用列表来存储骨架关节的坐标(一种缓冲区),然后您可以运行 DFA。您可以将转换定义为每个方向的坐标范围,最终状态将是缓冲区中的元素大致位于同一区域时。

因此,在 C# 中,您将需要创建一个数据类型来保存手势序列,当用户添加一个手势序列时,手势序列将更新。如下所述的缓冲区列表。

保存手势时,您的代码将如下所示:

  While(!Joint_stable && (i < buffer.count() ) )
{
 While ((buffer.Joint.ElementAt(i+1).X-buffer.Joint.ElementAt(i)).X>0 && (buffer.Joint.ElementAt(i+1)-buffer.Joint.ElementAt(i).Y )>0 ) //Think about adding tolerence here
 { 
Gesture.add("Upper_Right");
 }
 ...
}

只是一个建议,kinect 传感器不是那么准确,所以尝试建立一种公差。

我希望我的回答能帮助你,或者至少能给你一些启发:)

于 2013-04-01T13:46:41.570 回答