无法使用Kinect SDK示例中的“使用Kinect进行手势检测”

时间:2015-05-26 22:37:58

标签: c# kinect kinect-sdk gesture-recognition

我正在使用手势检测来检测手势,手势又触发方法调用以保存图像。以下是MainWindow的C#代码,它使用Kinect SDK中的示例中的GestureDetectGestureResult类。我想要做的是从result获取GestureDetect的更新值。

public MainWindow()
    {
           kinectSensor = KinectSensor.GetDefault();
       this.kinectSensor.IsAvailableChanged += this.Sensor_IsAvailableChanged;

        Application.Current.MainWindow.WindowState = WindowState.Maximized;

         kinectSensor.Open();
         this.StatusText = this.kinectSensor.IsAvailable ? Properties.Resources.RunningStatusText
                                                        : Properties.Resources.NoSensorStatusText;
         this.bodyFrameReader = this.kinectSensor.BodyFrameSource.OpenReader();

         this.choice = new List<bool>();
       this.bodyFrameReader.FrameArrived += this.Reader_BodyFrameArrived;
       _backgroundRemovalTool = new BackgroundRemovalTool(kinectSensor.CoordinateMapper);
       _reader = kinectSensor.OpenMultiSourceFrameReader(FrameSourceTypes.Color | FrameSourceTypes.Depth | FrameSourceTypes.BodyIndex);
       _reader.MultiSourceFrameArrived += Reader_MultiSourceFrameArrived;
       this.gestureDetectorList = new List<GestureDetect>();
        InitializeComponent();
        //GestureDetect detector = new GestureDetect(this.kinectSensor);

        // 2) Initialize the background removal tool.

        int maxBodies = this.kinectSensor.BodyFrameSource.BodyCount;
        for (int i = 0; i < maxBodies; ++i)
        {
            GestureResult result = new GestureResult(i, false, false, 0.0f);

            GestureDetect detector = new GestureDetect(this.kinectSensor, result);
            this.gestureDetectorList.Add(detector);

            this.bodyFrameReader.FrameArrived += this.Reader_BodyFrameArrived;

            choice.Add(result.detected);

        }



    }

choice[i]的值仍然为false,并且gestureDetectorList[i].result对于正文为空。我哪里错了?

1 个答案:

答案 0 :(得分:0)

好的,我还是不知道自己哪里出错了。我所做的是通过创建从'GestureDetect&#39;中更新MainWindow中的标志的方法来解决这个问题。功能和使用这些标志来呼叫我的捕获&#39;方法。

这是一个可行的解决方法。如果有人能告诉我我要去哪儿,虽然我真的很感激,因为我无法弄清楚。

感谢。