public void KinectFrameReceivedEvent(object sender, EventArgs e)
        {
            KinectFrameEventArgs eventArgs = (KinectFrameEventArgs)e;

            Parallel.For(0, eventArgs.Faces.Count, i =>
            {
                if (eventArgs.Faces[i].IsTracked)
                {
                    if (this.people[i] == null || this.people[i].TrackingId != eventArgs.Faces[i].TrackingId)
                    {
                        this.people[i] = new Person(eventArgs.Faces[i].TrackingId);
                    }

                    Task.Factory.StartNew(() => this.UpdateDatabase(this.people[i], eventArgs.Faces[i], Sensor.CoordinateMapper, eventArgs.FramePixels));

                    //if ((bool)this.settings.GetSettingValue("General", "ManualFrameCollection"))
                    //{
                    //    Task.Factory.StartNew(() => ManualFrameSave(eventArgs.Faces[i], Sensor.CoordinateMapper, eventArgs.FramePixels));
                    //}

                    //CVFaceFrame faceFrame = new CVFaceFrame(eventArgs.Faces[i], this.Sensor.CoordinateMapper, eventArgs.FramePixels);
                    //this.people[i].Update(faceFrame, this.recModel);
                }
            });



            OnFrameReceived?.Invoke(this, eventArgs);
        }
Beispiel #2
0
        public void UpdateWindow(object sender, EventArgs e)
        {
            KinectFrameEventArgs eventArgs = (KinectFrameEventArgs)e;

            Dispatcher.BeginInvoke((Action)(() =>
            {
                if (eventArgs.FramePixels != null)
                {
                    if (eventArgs.FrameType == FrameSourceTypes.Color)
                    {
                        UpdateBitmapColor(eventArgs.FramePixels);
                    }
                    else if (eventArgs.FrameType == FrameSourceTypes.Depth || eventArgs.FrameType == FrameSourceTypes.Infrared)
                    {
                        UpdateBitmapDepth(eventArgs.FramePixels);
                    }
                }

                drawEngine.ClearCanvas();
                drawEngine.DrawBodies(eventArgs.Bodies);
                drawEngine.DrawFaces(eventArgs.Faces);
                drawEngine.DrawInfo(eventArgs.Faces, eventArgs.Bodies);
            }));
        }