我正在开发一款软件,根据从Kinect深度图像中获取的某些坐标移动鼠标。但是我有30帧/秒(每秒图像数),这些坐标会随着每一帧而改变,因此鼠标会不断移动。我的问题是,是否有一种方法可以平滑鼠标的移动?
我正在开发一款软件,根据从Kinect深度图像中获取的某些坐标移动鼠标。但是我有30帧/秒(每秒图像数),这些坐标会随着每一帧而改变,因此鼠标会不断移动。我的问题是,是否有一种方法可以平滑鼠标的移动?
是的,您可以使用一些参数开始跟踪,从而使移动更加平滑。
以下是一个示例代码:
var parameters = new TransformSmoothParameters
{
Smoothing = 0.2f,
Correction = 0.0f,
Prediction = 0.0f,
JitterRadius = 1.0f,
MaxDeviationRadius = 0.5f
};
this._sensor.SkeletonStream.Enable(parameters);
您可以将 Smoothing
、Correction
、Prediction
、JitterRadius
和 MaxDeviationRadius
更改为任何数字。
由于您想了解"将深度坐标映射到骨架点", 您可以使用 DepthImageFrame
的 MapToSkeletonPoint()
方法,它接受深度数据的X和Y值,然后创建一个SkeletonPoint
。 示例:
SkeletonPoint point = depthFrame.MapToSkeletonPoint(x, y);