Esempio n. 1
0
        /// <summary>
        /// Attempt to find a trained face in the original bitmap
        /// </summary>
        public IRecognitionProcessorResult Process(Bitmap colorSpaceBitmap, KinectFaceTrackingResult trackingResults)
        {
            lock (this.processingMutex)
            {
                using (var croppedBmp = trackingResults.GetCroppedFace(colorSpaceBitmap))
                {
                    using (var grayBmp = croppedBmp.MakeGrayscale(100, 100))
                    {
                        grayBmp.HistogramEqualize();

                        string key           = null;
                        double eigenDistance = -1;

                        if (this.Recognizer != null)
                        {
                            key = this.Recognizer.Recognize(grayBmp, out eigenDistance);
                        }

                        // Save detection info
                        return(new EigenObjectRecognitionProcessorResult
                        {
                            Score = eigenDistance,
                            Image = (Bitmap)grayBmp.Clone(),
                            Key = key
                        });
                    }
                }
            }
        }
        /// <summary>
        /// Attempt to find a trained face in the original bitmap
        /// </summary>
        public IRecognitionProcessorResult Process(Bitmap colorSpaceBitmap, KinectFaceTrackingResult trackingResults)
        {
            lock (this.processingMutex)
            {
                using (var croppedBmp = trackingResults.GetCroppedFace(colorSpaceBitmap))
                {
                    using (var grayBmp = croppedBmp.MakeGrayscale(100, 100))
                    {
                        grayBmp.HistogramEqualize();

                        string key = null;
                        double eigenDistance = -1;

                        if (this.Recognizer != null)
                            key = this.Recognizer.Recognize(grayBmp, out eigenDistance);

                        // Save detection info
                        return new EigenObjectRecognitionProcessorResult
                        {
                            Score = eigenDistance,
                            Image = (Bitmap)grayBmp.Clone(),
                            Key = key
                        };
                    }
                }
            }
        }
        /// <summary>
        /// Attempt to find a trained face
        /// </summary>
        public IRecognitionProcessorResult Process(Bitmap colorSpaceBitmap, KinectFaceTrackingResult trackingResults)
        {
            lock (this.processingMutex)
            {
                var result = new FaceModelRecognitionProcessorResult();

                if (trackingResults.ConstructedFaceModel != null)
                {
                    result.Deformations = trackingResults.ConstructedFaceModel.FaceShapeDeformations;
                    result.HairColor = this.UIntToColor(trackingResults.ConstructedFaceModel.HairColor);
                    result.SkinColor = this.UIntToColor(trackingResults.ConstructedFaceModel.SkinColor);

                    this.Process(result);
                }

                return result;
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Attempt to find a trained face
        /// </summary>
        public IRecognitionProcessorResult Process(Bitmap colorSpaceBitmap, KinectFaceTrackingResult trackingResults)
        {
            lock (this.processingMutex)
            {
                var result = new FaceModelRecognitionProcessorResult();

                if (trackingResults.ConstructedFaceModel != null)
                {
                    result.Deformations = trackingResults.ConstructedFaceModel.FaceShapeDeformations;
                    result.HairColor    = this.UIntToColor(trackingResults.ConstructedFaceModel.HairColor);
                    result.SkinColor    = this.UIntToColor(trackingResults.ConstructedFaceModel.SkinColor);

                    this.Process(result);
                }

                return(result);
            }
        }