0

我从 Kinect SDK 1.7 开始,使用工具包中的 KinectRegion 和其他控件,如 KinectTileButton 和 KinectScrollViewer。我的问题是:

  • 如何让 KinectRegion 左右手工作?
  • SDK 1.7 是否已准备好进行缩放?
  • 如何检测抓握和释放?
  • 网上有什么代码吗?

谢谢!

4

3 回答 3

1
  1. 要启用 Kinect 区域:

    • 将“Microsoft.Kinect.Toolkit.Controls”项目导入您的解决方案。(使用添加->现有项目
    • 将“Microsoft.Kinect.Toolkit.Controls”的引用添加到您的项目中。
    • 使用以下代码将 KinectRegion 添加到您的 XAML 中:

      在此处输入图像描述

    • 在 xaml.cs 文件中导入/使用“Microsoft.Kinect.Toolkit.Controls”:

    使用 Microsoft.Kinect.Toolkit;

    • 将传感器选择器的当前传感器绑定到 KinectRegion :

    var regionSensorBinding = new Binding("Kinect") { Source = this.sensorChooser }; BindingOperations.SetBinding(this.kinectRegion, KinectRegion.KinectSensorProperty,
    regionSensorBinding);

  2. 我不明白你所说的“缩放”是什么意思。请提供更多细节。

  3. 要检测手抓握和手释放,您可以将“AddHandPointerGripHandler”和“AddHandPointerGripReleaseHandler”添加到 KinectRegion。请查看 KinectScrollViewer.cs。
  4. 您可以从“Kinect 开发者工具包浏览器应用程序”中探索有关手指针和东西的代码。
于 2013-08-21T11:06:24.823 回答
0

绝对优秀的课程在以下链接:

第一部分介绍 Kinect SDK 的基础知识

第二部分与第一部分类似,但使用了 MS Blend

第三部分是交互流教程,可以获取双手信息。

但是,如果您想在 Kinect 区域使用双手,则必须编辑 Microsoft.Kinect.Toolkit.Controls -> KinectRegion.cs -> 第 1000 行(MSDN 博客问题中的更多信息)

它对我有帮助!(我也有同样的问题)!

对于抓地力检测可在kinectRegion -> kinectRegion.HandPointers[idex of hand(0 is left, 1 is right)].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)
             {
                .......
             }
          }
        }
于 2013-09-13T15:03:59.897 回答
0

据我所知,KinectRegion 可以用双手工作并自动检测哪一个是主要的。KinectScrollViewer 控件上的抓握和释放检测也是自动的。关于缩放我不知道。

您将在此链接上找到有关 Kinect SDK 1.7 交互功能的好教程

于 2013-07-12T19:03:33.603 回答