[英]Kinect paint - hand tracking c#, kinect SDK 1.7
我正在尝试制作一些简单的应用程序,使您可以用右手在画布上绘画。 幸运的是,我知道如何使绘画功能起作用,但是我在其他方面有一点问题。 众所周知,SDK为您提供了一个名为KinectRegion的控件,该控件具有KinectCursor,它是用户手的代表。
问题是我不知道为什么当我尝试绘画某些东西时,我的绘画路径开始于与KinectCursor不同的位置?
使用我自己的右手映射函数时,我没有这个问题,但是在那种情况下,由于我没有KinectRegion,因此无法使用KinectCircleButton之类的其他功能。
任何人都知道如何从KinectRegion获取或映射KinectCursor位置(x,y)吗?
我的问题的可视化:[IMG] http://i58.tinypic.com/iqgemt.png[/IMG]
我正在与Kinect进行类似的绘画项目。 实际上,您需要的位置是在HandPointer中。 您可以通过一个名为GetPosition(UIElement element)的方法来获取手相对于UIElement的位置,该方法显然以该元素为参数。
使用该方法的示例如下所示:
public partial class MainWindow
{
public Point position;
public MainWindow
{
KinectRegion.AddHandPointerMoveHandler(this, OnHandPointerMove);
}
private void OnHandPointerMove(object sender, HandPointerEventArgs e)
{
position = e.HandPointer.GetPosition(myCanvas);
}
}
现在的事情是您的手的位置,而Kinect的手的位置在X和Y上都有一个间隙。请尝试使这些间隙为零。 然后,您的手将精确绘制绘制点。 例如,同时为手形点和画笔点输出x,y坐标。 并获得x坐标和y坐标的个体间隙。 现在,这些差异应分别从x和y中扣除。 因此,您的手和画笔点将相应地映射。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.