Skeletal Tracking Example

Today's project shows off a couple things, one that it can be pretty easy to upgrade a project to Kinect for Windows SDK Beta 2 and that there's no reason to be afraid of skeletons...

How was this project upgraded to Beta 2? Easy. The Microsoft.Research.Kinect reference was removed and then re-added (as per the Beta 2 readme guidance) and the Coding4Fun.Kinect.WPF library upgraded to v1.1 (via NuGet is by far the easiest and quick way). If you have everything installed, the Beta2 DLL referenced yet still get a runtime error like "Cannot find Microsoft.Research.Kinect.DLL v1.0.0.0..." check your third party libraries, there's a good chance one needs to be updated.

Kinect SDK – Skeletal tracking

[Translated] NUI Skeleton API provides information about the position of the two forms, located in front of the sensor Kinect (version Beta Kinect SDK is ultimately has to be 6 characters). The data collected by the sensor, provide information about the location of 20 parts of the body, they allow the determination of the coordinates relative to the sensor.

These points form the skeleton of the form (an NUI Skeleton API defines them as-Joints). By using these points you can recognize the actual position of man in relation to the sensor and its pozę. Thanks to the opisywanemu SDK, software developers are also able to determine the coordinates of the individual parts of the body and respond to change their position.

Capture an image from which to download data by NUI Skeleton API, look similarly to retrieve an image from camera RGB or the camera depth, which has been accurately described in the previous articles of this series.

By creating a software-based Kinect SDK, a developer has access to two methods of capture polling model picture frames: event model and. However, it is not possible to use these two models simultaneously.

Project Information URL: http://code.msdn.microsoft.com/Kinect-SDK-Skeletal-b90f9cd9

Project Download URL: http://code.msdn.microsoft.com/Kinect-SDK-Skeletal-b90f9cd9

Project Source URL: http://code.msdn.microsoft.com/Kinect-SDK-Skeletal-b90f9cd9

Runs with Beta 2? Yes, once the Microsoft.Research.Kinect reference is removed/re-added and the Coding4Fun.Kinect.WPF library is updated to v1.1. No code change was needed

SNAGHTML13d722a4

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    //Inicjalizacja trybu Skeletal tracking
    nui.Initialize(RuntimeOptions.UseSkeletalTracking);

    //Musi byc ustawione na true i wywolane zaraz po inicjalizacji NUI
    nui.SkeletonEngine.TransformSmooth = true;

    //Dodatkowe parametry pozwalajace na usuniecie drgan
    var parameters = new TransformSmoothParameters
    {
        Smoothing = 0.75f,
        Correction = 0.0f,
        Prediction = 0.0f,
        JitterRadius = 0.05f,
        MaxDeviationRadius = 0.04f
    };

    //Dodanie zdarzenia, przechwytujacego dane
    nui.SkeletonFrameReady += new EventHandler<SkeletonFrameReadyEventArgs>(nui_SkeletonFrameReady);
}

void nui_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
{
    SkeletonFrame allSkeletons = e.SkeletonFrame;

    SkeletonData skeleton = (from s in allSkeletons.Skeletons
                             where s.TrackingState == SkeletonTrackingState.Tracked
                             select s).FirstOrDefault();
  if (skeleton != null) {
    SetEllipsePosition(headEllipse, skeleton.Joints[JointID.Head]);
    SetEllipsePosition(leftEllipse, skeleton.Joints[JointID.HandLeft]);
    SetEllipsePosition(rightEllipse, skeleton.Joints[JointID.HandRight]);
    }
}

Contact Information:

Follow the Discussion

Comments Closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums,
or Contact Us and let us know.