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