如果我想使用Kinect传感器读取并存储获得的变量数据/值,实时关于骨架关节,我该怎么做?
除非我要求新值,否则如何将该数据/值保存到不会更新的变量中。我希望能够保持我在不同变量中得到的值。
任何帮助都将不胜感激。
答案 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;
}
}
}
如果要保存多个关节,可以创建一个数组。如果要将所有内容打包在一起,可以创建一个存储所有内容的类。