C#Kinect骨骼跟踪机制故障或程序错误(后者更可能)
我一直在尝试使用骨骼跟踪为Kinect编写一个程序,该程序将确定Kinect前面是否有人/人(坐着或站着) 问题是我的程序总是输出“false”(意味着它没有检测到骨架)。在查阅以下链接后 我一生都无法找出程序为什么会这样做。也许我的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
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太近。