コード例 #1
0
 private void InvokeGesturesReceived(GestureResults gestures)
 {
     if (GesturesReceived != null)
     {
         GesturesReceived.Invoke(this, new GestureReceivedEventArgs(gestures));
     }
 }
コード例 #2
0
 public void UpdateGestureDetector(string[] databasePaths)
 {
     if (databasePaths != null)
     {
         databasePaths = this.databasePaths;
         GestureResults.Clear();
         addGesturesToResults();
     }
 }
コード例 #3
0
        private void Reader_GestureFrameArrived(object sender, VisualGestureBuilderFrameArrivedEventArgs e)
        {
            VisualGestureBuilderFrameReference frameReference = e.FrameReference;

            lock (GestureResults)
            {
                using (VisualGestureBuilderFrame frame = frameReference.AcquireFrame())
                {
                    if (frame != null)
                    {
                        IReadOnlyDictionary <Gesture, DiscreteGestureResult> discreteResults = frame.DiscreteGestureResults;

                        if (discreteResults != null)
                        {
                            foreach (Gesture gesture in this.vgbFrameSource.Gestures)
                            {
                                if (gesture.GestureType == GestureType.Discrete)
                                {
                                    DiscreteGestureResult result = null;
                                    discreteResults.TryGetValue(gesture, out result);

                                    if (result != null)
                                    {
                                        GestureResult gr = GestureResults.FirstOrDefault(n => n.Name == gesture.Name);
                                        gr.UpdateGestureResult(gesture.Name, true, result.Detected, result.Confidence);
                                    }
                                }
                            }
                        }

                        IReadOnlyDictionary <Gesture, ContinuousGestureResult> continuousResults = frame.ContinuousGestureResults;

                        if (continuousResults != null)
                        {
                            foreach (Gesture gesture in this.vgbFrameSource.Gestures)
                            {
                                if (gesture.GestureType == GestureType.Continuous)
                                {
                                    ContinuousGestureResult result = null;
                                    continuousResults.TryGetValue(gesture, out result);

                                    if (result != null)
                                    {
                                        GestureResult gr = GestureResults.FirstOrDefault(n => n.Name == gesture.Name);
                                        gr.UpdateGestureResult(gesture.Name, true, true, result.Progress);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #4
0
        public Kinectv2()
        {
            _sensor = KinectSensor.GetDefault();

            if (_sensor == null)
            {
                return;
            }

            _sensor.Open();

            _reader = _sensor.OpenMultiSourceFrameReader(
                FrameSourceTypes.Color |
                FrameSourceTypes.Depth |
                FrameSourceTypes.Infrared |
                FrameSourceTypes.Body |
                FrameSourceTypes.BodyIndex);

            if (_sensor == null)
            {
                return;
            }

            MostRecentColorFrame      = new byte[CalculateImageByteCount(ColorFrameDescription)];
            MostRecentDepthFrame      = new byte[CalculateImageByteCount(DepthFrameDescription)];
            MostRecentInfraredFrame   = new byte[CalculateImageByteCount(InfraredFrameDescription)];
            MostRecentSilhouetteFrame = new byte[CalculateImageByteCount(SilhouetteFrameDescription)];
            MostRecentGestures        = new GestureResults(_sensor.BodyFrameSource.BodyCount);

            ColorFrameSize      = CalculateImageSize(ColorFrameDescription);
            DepthFrameSize      = CalculateImageSize(DepthFrameDescription);
            InfraredFrameSize   = CalculateImageSize(InfraredFrameDescription);
            SilhouetteFrameSize = CalculateImageSize(SilhouetteFrameDescription);

            _gestureTrackers = new List <GestureTracker>();
        }
コード例 #5
0
ファイル: Kinectv2.cs プロジェクト: persn/MotionWordPlay
        public Kinectv2()
        {
            _sensor = KinectSensor.GetDefault();

            if (_sensor == null)
            {
                return;
            }

            _sensor.Open();

            _reader = _sensor.OpenMultiSourceFrameReader(
                FrameSourceTypes.Color |
                FrameSourceTypes.Depth |
                FrameSourceTypes.Infrared |
                FrameSourceTypes.Body |
                FrameSourceTypes.BodyIndex);

            if (_sensor == null)
            {
                return;
            }

            MostRecentColorFrame = new byte[CalculateImageByteCount(ColorFrameDescription)];
            MostRecentDepthFrame = new byte[CalculateImageByteCount(DepthFrameDescription)];
            MostRecentInfraredFrame = new byte[CalculateImageByteCount(InfraredFrameDescription)];
            MostRecentSilhouetteFrame = new byte[CalculateImageByteCount(SilhouetteFrameDescription)];
            MostRecentGestures = new GestureResults(_sensor.BodyFrameSource.BodyCount);

            ColorFrameSize = CalculateImageSize(ColorFrameDescription);
            DepthFrameSize = CalculateImageSize(DepthFrameDescription);
            InfraredFrameSize = CalculateImageSize(InfraredFrameDescription);
            SilhouetteFrameSize = CalculateImageSize(SilhouetteFrameDescription);

            _gestureTrackers = new List<GestureTracker>();
        }
コード例 #6
0
 public GestureReceivedEventArgs(GestureResults receivedGestures)
 {
     Gestures = receivedGestures;
 }
コード例 #7
0
 public GestureReceivedEventArgs(GestureResults receivedGestures)
 {
     Gestures = receivedGestures;
 }