Esempio n. 1
0
        private void RemoveTracker(int trackingId)
        {
            var tracker = skeletonFaceTrackers[trackingId];

            tracker.Dispose();

            skeletonFaceTrackers.Remove(trackingId);

            FaceTrackers.Remove(tracker);
        }
Esempio n. 2
0
        public void TrackFrame(ColorImageFormat colorImageFormat, byte[] colorImage, DepthImageFormat depthImageFormat, DepthImagePixel[] depthImage, IEnumerable <Skeleton> skeletons, int frameNumber)
        {
            if (_currentColorImageFormat != colorImageFormat)
            {
                _currentColorImageFormat = colorImageFormat;
                //_colorMappedDepthPoints = CreateDepthImagePointsFromColorFormat(colorImageFormat);
            }

            //var mapper = this.Kinect.CoordinateMapper;

            //mapper.MapColorFrameToDepthFrame(colorImageFormat, depthImageFormat, depthImage, _colorMappedDepthPoints);

            foreach (var skeleton in skeletons)
            {
                if (skeleton.TrackingState == SkeletonTrackingState.Tracked ||
                    skeleton.TrackingState == SkeletonTrackingState.PositionOnly)
                {
                    // We want keep a record of any skeleton, tracked or untracked.
                    if (!this.skeletonFaceTrackers.ContainsKey(skeleton.TrackingId))
                    {
                        var tracker = new SkeletonFaceTracker();
                        this.skeletonFaceTrackers.Add(skeleton.TrackingId, tracker);
                        FaceTrackers.Add(tracker);
                    }

                    // Give each tracker the upated frame.
                    SkeletonFaceTracker skeletonFaceTracker;
                    if (this.skeletonFaceTrackers.TryGetValue(skeleton.TrackingId, out skeletonFaceTracker))
                    {
                        skeletonFaceTracker.OnFrameReady(this.Kinect, colorImageFormat, colorImage, depthImageFormat, depthImage, null, skeleton);
                        skeletonFaceTracker.LastTrackedFrame = frameNumber;
                    }
                }
            }

            this.RemoveOldTrackers(frameNumber);

            RaiseFrameUpdated();
        }