CodeProject
In my previous posts about Kinect, I talked about getting started with Kinect SDK from Kinect .NET SDK–Getting Started, Kinect – Getting Started – Control Camera Angle and Kinect – Getting Started – Become The Incredible Hulk.
Kinect SDK has a lot to offer and now I’m going to talk about how to improve Kinect movement by applying TransformSmoothParameters.
Channel 9 Video
The Kinect Nui SDK allow you to apply TransformSmooth just by calling the SkeletonEngine and set it to true:
_kinectNui.SkeletonEngine.TransformSmooth = true;
But this is not enough because you need to define how smooth it’s doing to be, for that we going to use the TransformSmoothParameters.
namespace Microsoft.Research.Kinect.Nui
{
[StructLayout(LayoutKind.Sequential, Pack = 8, Size = 24)]
public struct TransformSmoothParameters
{
public float Smoothing { get; set; }
public float Correction { get; set; }
public float Prediction { get; set; }
public float JitterRadius { get; set; }
public float MaxDeviationRadius { get; set; }
}
}
Here is an example:
var parameters = new TransformSmoothParameters
{
Smoothing = 1.0f,
Correction = 0.1f,
Prediction = 0.1f,
JitterRadius = 0.05f,
MaxDeviationRadius = 0.05f
};
_kinectNui.SkeletonEngine.SmoothParameters = parameters;
Applying TransformSmoothParameters parameters will improve Kinect movement, you will be able to see the pointer isn’t jumping from place to place.