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