1

我能够在 Kinect SDK beta 3 中做到这一点,但从那以后我就没有为 Kinect 开发过,而且似乎发生了很多变化。

我想将每个关节保存为一个变量,并将这些值写入一个 .csv 文件,以便稍后解析。(最好使用 c#,但我也可以使用 c++ 版本)

问题

- 我需要调用什么才能获得每个关节的数值?

任何帮助将不胜感激!

4

1 回答 1

3

Skeleton数据只是一系列集合,Joint包含 X/Y/Z 坐标。您可以像任何其他类型的对象一样保存和编写它们。

Microsoft 为Kinect for Windows SamplesJoint提供的多个示例显示了获取 a 的值。请探索这些示例以获得使用最新 Kinect SDK 的基础。

这是一个基本的回调来解析SkeletonFrame和使用单个骨架:

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;

            // print the RightHand Joint position to the debug console
            Debug.Writeline(skeleton.Joints[JointType.HandRight]);
        }
    }
}

此外,Kinect Toolbox附带的功能允许您录制和回放所有 3 个流。

于 2013-03-14T21:36:14.213 回答