示例#1
0
        /// <summary>
        /// Worker thread for recognition processing
        /// </summary>
        private void RecognizerWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            this.faceReady = this.multiSourceReady = false;
            var status = FaceModelBuilderCollectionStatus.Complete;

            if (!this.constructionInProcess && this.fmb != null)
            {
                status = this.fmb.CollectionStatus;
            }

            var result = new RecognitionResult();

            result.ColorSpaceBitmap = this.ImageToBitmap(this.colorImageBuffer, this.imageWidth, this.imageHeight);
            e.Result = result;

            if (this.faceModel != null && this.Processors.Any() && this.ProcessingEnabled)
            {
                var faceTrackingResult = new KinectFaceTrackingResult(this.faceModel, this.constructedFaceModel, status, this.faceAlignment, this.Kinect.CoordinateMapper);

                var rpResults = new List <IRecognitionProcessorResult>();

                foreach (var processor in this.Processors)
                {
                    rpResults.Add(processor.Process(result.ColorSpaceBitmap, faceTrackingResult));
                }

                result.Faces = new List <TrackedFace>
                {
                    new TrackedFace
                    {
                        ProcessorResults = rpResults,
                        TrackingResult   = faceTrackingResult
                    }
                };
            }
        }
        /// <summary>
        /// Worker thread for recognition processing
        /// </summary>
        private void RecognizerWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            this.faceReady = this.multiSourceReady = false;
            var status = FaceModelBuilderCollectionStatus.Complete;

            if (!this.constructionInProcess && this.fmb != null)
                status = this.fmb.CollectionStatus;

            var result = new RecognitionResult();
            result.ColorSpaceBitmap = this.ImageToBitmap(this.colorImageBuffer, this.imageWidth, this.imageHeight);
            e.Result = result;

            if (this.faceModel != null && this.Processors.Any() && this.ProcessingEnabled)
            {
                var faceTrackingResult = new KinectFaceTrackingResult(this.faceModel, this.constructedFaceModel, status, this.faceAlignment, this.Kinect.CoordinateMapper);

                var rpResults = new List<IRecognitionProcessorResult>();

                foreach (var processor in this.Processors)
                    rpResults.Add(processor.Process(result.ColorSpaceBitmap, faceTrackingResult));

                result.Faces = new List<TrackedFace>
                {
                    new TrackedFace
                    {
                        ProcessorResults = rpResults,
                        TrackingResult = faceTrackingResult
                    }
                };
            }
        }