0
votes

i am trying to make the Kinect able to adjust its angle automatically to be able to detect all skeleton joints, i used loop that go through all the joint and check their value, however i don't know what is the value that stored in -for example:"skeleton.Joints[JointID.HandRight]" - if no joint was detected. Could some one help me with that using official Kinect SDK?

1
i don't remember tbh what is the value of join that isn't detected. Make a breakpoint in the loop on the line where you take value of it a check it :)Fixus

1 Answers

0
votes

Using the JointTrackingState enum on each of the joints will allow you to determine if a particular Joint is being tracked or not.

For example: skeleton.Joints[JointID.HandRight].TrackingState will tell you if the joint is:

  • Tracked: The joint is actively being tracked by the SDK and is returning data that can be trusted.
  • Inferred: The SDK is not confident on where the joint is, but can make an educated guess.
  • NotTracked: The joint is not being tracked and no data is available.

You can cycle through each of the joints and check their status. Based on if it is Tracked, Inferred or NotTracked you can take appropriate action.

The "Skeleton Basics" example in the Kinect for Windows Developer Toolkit demonstrates how to adjust a drawn skeleton based on these values.