读取关节和时间戳的位置

时间:2012-12-14 21:06:40

标签: c# variables kinect kinect-sdk

如果我想使用Kinect传感器读取并存储获得的变量数据/值,实时关于骨架关节,我该怎么做?

除非我要求新值,否则如何将该数据/值保存到不会更新的变量中。我希望能够保持我在不同变量中得到的值。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

保存任何其他变量类型没有什么不同。

JointCollection _savedJoint;
DateTime _savedJointTime;

private void OnSkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
{
    using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame())
    {
        if (skeletonFrame == null || skeletonFrame.SkeletonArrayLength == 0)
            return;

        // resize the skeletons array if needed
        if (_skeletons.Length != skeletonFrame.SkeletonArrayLength)
            _skeletons = new Skeleton[skeletonFrame.SkeletonArrayLength];

        // get the skeleton data
        skeletonFrame.CopySkeletonDataTo(_skeletons);

        foreach (var skeleton in _skeletons)
        {
            // skip the skeleton if it is not being tracked
            if (skeleton.TrackingState != SkeletonTrackingState.Tracked)
                continue;

            // do other checks and actions if needed...

            // save off the joint
            _savedJoint = skeleton.Joints[JointType.HandLeft];
            _savedJointTime = DateTime.Now;
        }
    }
}

如果要保存多个关节,可以创建一个数组。如果要将所有内容打包在一起,可以创建一个存储所有内容的类。