Search code examples
c#windowskinectmsdnkinect-sdk

Kinect face tracking


Depth or Distance?

I am working on face tracking with Kinect with C# and I need to now about face's distance or depth to the Kinect camera.

Do you know how can I find the depth or distance?

Which command should I use? And in which window (main window or face tracking viewer)?


Solution

  • the answer is:

    using (var skeletonFrame= e.OpenSkeletonFrame())
    using (var depthFrame = e.OpenDepthImageFrame())
    {
    skeletonFrame.CopySkeletonDataTo(skeletons);
    var skeletons = new Skeleton[skeletonFrame.SkeletonArrayLength];
    
    foreach (var skeleton in skeletons)
    {
            if (skeleton.TrackingState != SkeletonTrackingState.Tracked)        
    continue;
    
            var head = skeleton.Joints[JointType.Head];
            if (head.TrackingState == JointTrackingState.NotTracked) continue;
    
            var depthImagePoint = depthFrame.MapFromSkeletonPoint(head.Position);
    
            int depthInMillimeters = depthImagePoint.Depth; // TADA!
    }
    }