/// <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; } }
/// <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); } }