1
我能够在Kinect SDK beta 3中做到这一点,但是我没有为Kinect开发过,因此似乎已经发生了很多变化。如何将kinect骨架数据保存到文件中?
我想将每个关节保存为一个变量,并将这些值写入一个.csv文件,我可以稍后解析它。 (使用C#最好,但我可以用C++的工作版本,以及)
问题
- 什么,我需要调用能够得到的数值为每个关节的?
任何帮助将appriciated!
我能够在Kinect SDK beta 3中做到这一点,但是我没有为Kinect开发过,因此似乎已经发生了很多变化。如何将kinect骨架数据保存到文件中?
我想将每个关节保存为一个变量,并将这些值写入一个.csv文件,我可以稍后解析它。 (使用C#最好,但我可以用C++的工作版本,以及)
问题
- 什么,我需要调用能够得到的数值为每个关节的?
任何帮助将appriciated!
Skeleton
数据只是一系列Joint
集合,包含X/Y/Z坐标。您可以保存它们并像其他任何类型的对象一样写入它们。
在微软为Kinect for Windows Samples提供的多个示例中显示了获取Joint
的值。请探索这些示例以获得使用最新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。