KINECT:如何识别用户何时使用Kinect上下走动?

时间:2012-03-07 04:04:18

标签: c# kinect

我只需要创建一个控制台程序,在该程序中输出一个字符串,其中识别出该人是走路还是走路?

你知道一个用于KINECT的例子吗?

我是一个使用SDK的新手。 提前谢谢。

1 个答案:

答案 0 :(得分:7)

检查我的博客以获取骨架关节的位置(https://naokinect.wordpress.com/2012/02/06/kinectcomment-recuperer-les-coordonnees-des-joints-dun-squelette/

1 - >保存人的初始位置。当用户准备就绪时从正面取位置(为此,我要求用户将右手放在他头部的功能中),例如:

功能“checkuserisready”:

if(_coord[4] != null && _coord[0] != null && _coord[8] != null){
if (_coord[4].X <= _coord[8].X + 0.1 && _coord[4].X >= _coord[8].X - 0.1 
&& _coord[4].Y <= _coord[8].Y+0.1 && _coord[4].Y >= _coord[8].Y-0.1)
{
_initPos = _coord[9];

2 - &gt;在“checkuserisready”中创建虚拟行(实际上将在用户的正面和背面):

float _anteriorSafeLine = (float)_initPos.Z - 0.2f;
float _posteriorSafeLine = (float)_initPos.Z + 0.2f;

3 - &gt;检查用户是否超过循环中的行

if ((_anteriorControlLine <= _coord[9].Z) && (_coord[9].Z <= _anteriorSafeLine)){

//move forward

}

与后向运动相同的事情向后移动

编辑(以下评论):

每个_coord都是骨架关节。它只是一个Vector3数组。

e.g。 :

_coord[0] = new Vector3(joint.Position.X,joint.Position.Y,joint.Position.Z);

//0 -> HandLeft
//1 -> ElbowLeft
//2 -> ShoulderLeft
//3 -> hipLeft
//4 -> HandRight
//5 -> ElbowRight
//6 -> ShoulderRight
//7 -> hipRight
//8 -> Head
//9 -> FootRight