我已经实现了示例代码,并且使用了'Joint.ID‘而不是'Joint.Type',我只需要知道是否/如何在一个循环中连续地检查这个代码。如有任何建议,将不胜感激。谢谢。
备注:-
当颜色/深度/骨架同步时,
void newSensor_AllFramesReady触发。我不太确定把这个method.checkHand方法放在哪里,需要检查线程的每一轮。目前为止的代码:-
void newSensor_AllFramesReady(object sender, SkeletonFrameReadyEventArgs e)
{
//Get a skeleton
SkeletonFrame skeletonSet = e.SkeletonFrame;
SkeletonData skeleton = (from s in skeletonSet.Skeletons
where s.TrackingState == SkeletonTrackingState.Tracked
select s).FirstOrDefault();
if (skeleton == null)
{
return;
}
else if (skeleton != null)
{
checkHand(skeleton.Joints[JointID.Head], skeleton.Joints[JointID.HandRight], skeleton.Joints[JointID.HandLeft]);
}
}
public void checkHand(Joint head, Joint rhand, Joint lhand)
{
if (rhand.Position.X > head.Position.Y)
{
MessageBox.Show("Right hand up!");
}
else if (lhand.Position.Y > head.Position.Y)
{
MessageBox.Show("Left hand up!");
}
}发布于 2012-03-02 23:20:40
确保将newSensor_AllFramesReady指定为AllFramesReady事件的事件处理程序。没有必要在循环中加入其中任何一种。newSensor_AllFramesReady将被每秒调用30次(或者是kinect的刷新速率)。
Kinect.AllFramesReady += new EventHandler<AllFramesReadyEventArgs>(newSensor_AllFramesReady);https://stackoverflow.com/questions/9446465
复制相似问题