我正在开发一个项目,以使用由 kinect 使用深度图像跟踪的指尖移动鼠标光标。我一直在进行跟踪,但问题在于以平滑的方式移动鼠标。在我的程序中,当我移动鼠标时,它不会以平滑的方式移动,而是会从一个像素跳到另一个像素。我的问题是,有没有办法使用骨骼跟踪的平滑参数之类的东西来平滑光标的移动?
问问题
1442 次
2 回答
0
你可以使用一些东西。
您可以使用库 Coding4Fun.Kinect.Wpf 中包含的方法;称为scaleTo()
var scaledHandRight = ElgatoElegido.Joints[JointType.HandRight].ScaleTo(1366, 768, 0.5f, 0.4f); <
并帮助平滑参数骨架识别。
var parameters = new TransformSmoothParameters { Smoothing = 0.3f, Correction = 0.0f, Prediction = 0.0f, JitterRadius = 1.0f, MaxDeviationRadius = 0.5f };
newSensor.SkeletonStream.Enable(parameters);
<
于 2012-08-10T17:55:16.177 回答
0
我认为问题在于您仅在 kinect 深度事件触发时才移动鼠标(当您获得有关人手指的新信息时)。
Windows 中没有任何功能,但是,您可以创建一个。尝试使用被跟踪手指的 dy/dx 实现 P(简单)、PD(稍微难一点)或 PID(再难一点)控制器。这样,即使在 kinect 的深度事件之间,鼠标也会以一定的速度移动,并且应该看起来更平滑地移动。
于 2012-06-04T19:18:25.797 回答