我正在开发一个项目,使用指尖移动鼠标光标,使用深度图像通过kinect跟踪。我一直在进行跟踪,但问题在于以平滑的方式移动鼠标。在我的程序中,当我移动鼠标时它不会以平滑的方式移动,而是只是从像素跳转到像素。我的问题是,有没有办法使用像骨骼跟踪的平滑参数之类的东西来平滑光标的移动?
答案 0 :(得分:0)
我认为问题在于,只有当kinect深度事件触发时(当您获得有关此人手指的新信息时),您才会移动鼠标。
Windows中没有功能,但是,您可以创建一个。尝试使用被跟踪手指的dy / dx实现P(简单),PD(稍微更难)或PID(稍微更难)控制器。这样,即使在kinect的深度事件之间,鼠标也会以一定的速度移动,并且应该看起来移动得更顺畅。
答案 1 :(得分: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);
<