Skeletal Tracking Example

Sign in to queue


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:

Project Download URL:

Project Source URL:

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


private void Window_Loaded(object sender, RoutedEventArgs e)
    //Inicjalizacja trybu Skeletal tracking

    //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:

The Discussion

Add Your 2 Cents