C#Kinect骨骼跟踪机制故障或程序错误(后者更可能)

C#Kinect骨骼跟踪机制故障或程序错误(后者更可能),c#,debugging,tracking,kinect-sdk,kinect.toolbox,C#,Debugging,Tracking,Kinect Sdk,Kinect.toolbox,我一直在尝试使用骨骼跟踪为Kinect编写一个程序,该程序将确定Kinect前面是否有人/人(坐着或站着) 问题是我的程序总是输出“false”(意味着它没有检测到骨架)。在查阅以下链接后 我一生都无法找出程序为什么会这样做。也许我的Kinect有一个错误的骨架跟踪机制,但我认为我的程序中更有可能存在缺陷。我真的非常感谢您的任何意见 bool TryGettingSkeleton(AllFramesReadyEventArgs e) { using (SkeletonFr

我一直在尝试使用骨骼跟踪为Kinect编写一个程序,该程序将确定Kinect前面是否有人/人(坐着或站着)

问题是我的程序总是输出“false”(意味着它没有检测到骨架)。在查阅以下链接后

我一生都无法找出程序为什么会这样做。也许我的Kinect有一个错误的骨架跟踪机制,但我认为我的程序中更有可能存在缺陷。我真的非常感谢您的任何意见

 bool TryGettingSkeleton(AllFramesReadyEventArgs e) { 
        using (SkeletonFrame skeletonFrame=e.OpenSkeletonFrame())
        {
            int playerCount=0;
            if (skeletonFrame != null)
            {
                Skeleton[] skeletonData = new Skeleton[kinectSensorChooser1.Kinect.SkeletonStream.FrameSkeletonArrayLength];
                skeletonFrame.CopySkeletonDataTo(skeletonData);


                foreach (Skeleton skeleton in skeletonData)//check all the skeletons, see which ones are tracked as sitting/standing
                {
                    if (skeleton.TrackingState == SkeletonTrackingState.Tracked || skeleton.TrackingState == SkeletonTrackingState.PositionOnly)
                        playerCount++;
                }


                if (playerCount > 0)
                    return true;//there is at least one skeleton present
                else
                    return false;
            }

            else
            {
                return false;//no skeleton frame data, thus assume no skeleton
            }
        }//ends using

    }//ends TryGettingSkeleton method

你探索过可能返回false的条件吗?那么你调试过了吗?它看到了skeletonFrame吗?非常感谢!我忽略了检查(很抱歉,对于这样一个简单的问题,我的不好),但是程序没有得到骨架帧,所以它立即输出false。我想我接下来的问题是,你是否知道为什么skeletonFrame总是返回空值,即使有人坐在Kinect的正前方?再次感谢你!更新:此人坐得离kinect太近。