C# 无法读取kinect的骨架
我是kinect编程新手,我正在尝试映射一个框架,但它无法正常工作我正在使用1.6版的kinect sdk,我的代码正在运行,但当它到达这一部分时,它停止了:C# 无法读取kinect的骨架,c#,kinect,kinect-sdk,C#,Kinect,Kinect Sdk,我是kinect编程新手,我正在尝试映射一个框架,但它无法正常工作我正在使用1.6版的kinect sdk,我的代码正在运行,但当它到达这一部分时,它停止了: void kinectsensor_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e) { SkeletonFrame skeletonSet = e.OpenSkeletonFrame(); // Skel
void kinectsensor_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
{
SkeletonFrame skeletonSet = e.OpenSkeletonFrame();
// Skeleton skeletonData = new Skeleton[kinectsensor.SkeletonStream.FrameSkeletonArrayLength];
**Skeleton skeletonData = (from s in skeletons
where s.TrackingState == SkeletonTrackingState.Tracked
select s).FirstOrDefault();**
if (skeletonData != null)
{
SetEllipsePosition(Head, skeletonData.Joints[JointType.Head]);
SetEllipsePosition(leftHand, skeletonData.Joints[JointType.HandLeft]);
SetEllipsePosition(rightHand, skeletonData.Joints[JointType.HandRight]);
ProcessGesture(skeletonData.Joints[JointType.Head], skeletonData.Joints[JointType.HandLeft], skeletonData.Joints[JointType.HandRight]);
}
}
我得到的警告信息是:
从未分配“KinectSkeletonApplication3.MainWindow.Skelets”
到,并且其默认值始终为空
我对Kinect的编程了解不多,但您需要从某些方面分配skeletons数组,可能需要使用典型的
SkeletonFrameReady
回调,如下所示:
private Skeleton[] skeletonData;
private void SkeletonsReady(object sender, SkeletonFrameReadyEventArgs e)
{
using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame())
{
if (skeletonFrame != null)
{
int skeletonSlot = 0;
if ((this.skeletonData == null) || (this.skeletonData.Length != skeletonFrame.SkeletonArrayLength))
{
this.skeletonData = new Skeleton[skeletonFrame.SkeletonArrayLength];
}
skeletonFrame.CopySkeletonDataTo(this.skeletonData);
foreach (Skeleton skeleton in this.skeletonData)
{
if (SkeletonTrackingState.Tracked == skeleton.TrackingState)
{
// `skeleton` is an actively tracked skeleton
}
}
}
}
}
您可以在和站点中找到许多这样的示例。骨骼在哪里声明?它似乎从未设置过。我在public main window()前面声明了skelton:KinectSensor KinectSensor=KinectSensor.KinectSensors[0];骨架[]骨架;您是否分配过任何内容?没有,我没有分配任何内容。我使用的是Microsoft.Kinect,而不是Microsoft.Research.Kinect reference