private void InvokeGesturesReceived(GestureResults gestures) { if (GesturesReceived != null) { GesturesReceived.Invoke(this, new GestureReceivedEventArgs(gestures)); } }
public void UpdateGestureDetector(string[] databasePaths) { if (databasePaths != null) { databasePaths = this.databasePaths; GestureResults.Clear(); addGesturesToResults(); } }
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); } } } } } } } }
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>(); }
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>(); }
public GestureReceivedEventArgs(GestureResults receivedGestures) { Gestures = receivedGestures; }