我从Kinect SDK 1.7开始,使用KinectRegion和其他控件,如工具包中的KinectTileButton和KinectScrollViewer。我的问题是:
谢谢!
答案 0 :(得分:1)
启用Kinect区域:
使用以下代码将KinectRegion添加到您的XAML中:
在xaml.cs文件中导入/使用“Microsoft.Kinect.Toolkit.Controls”:
使用Microsoft.Kinect.Toolkit;
var regionSensorBinding = new Binding(“Kinect”){Source = this.sensorChooser};
BindingOperations.SetBinding(this.kinectRegion,KinectRegion.KinectSensorProperty,
regionSensorBinding);
我不明白你对“缩放”的意思。请提供更多详细信息。
答案 1 :(得分:0)
据我所知,KinectRegion可以同时使用,并自动检测哪一个是主要的。 握把和释放检测在KinectScrollViewer控件上也是自动的。 关于缩放我不知道。
您可以在this link
上找到有关Kinect SDK 1.7交互功能的精彩教程答案 2 :(得分:0)
绝对优秀的课程在以下链接中:
first part显示了Kinect SDK的基础
第二部分类似于第一部分,但使用MS Blend
the third part是交互流教程,您可以在其中获取双手信息。
但是如果你想在Kinect地区使用这两只手,你必须编辑Microsoft.Kinect.Toolkit.Controls - > KinectRegion.cs - >第1000行(MSDN Blog question中的更多信息)
对我有帮助! (我有同样的问题)!
对于Grip检测,可在 kinectRegion - >中找到。 kinectRegion.HandPointers [手的idex(0是左,1是右)]。IsInGripInteraction - 它是bool - 我添加了一些代码:
private Skeleton []skeleton;
private void kinect_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
{
using (SkeletonFrame sf = e.OpenSkeletonFrame())
{
if (sf != null && this.skeleton != null) // check that a frame is available
{
sf.CopySkeletonDataTo(this.skeleton); // get the skeletal information in this frame
}
}
}
sensor.SkeletonFrameReady += new EventHandler<SkeletonFrameReadyEventArgs>(kinect_SkeletonFrameReady);
foreach (var sk in skeleton)
{
if (sk.TrackingId == 0) continue;
else
{
if (kinectRegion.HandPointers[0].IsInGripInteraction == true)
{
.......
}
}
}