/// <summary> /// Loads the given target faces into the eigen object recognizer /// </summary> /// <param name="faces">The target faces to use for training. Faces should be 100x100 and grayscale.</param> public virtual void SetTargetFaces(IEnumerable<IEigenObjectTargetFace> faces) { lock (this.processingMutex) { if (faces != null && faces.Any()) { this.Recognizer = new EigenObjectRecognizer(faces, this.Threshold); } } }
public void ManagedRecognizerSucessfullyRecognizesMe() { var faces = new List<IEigenObjectTargetFace>(); foreach (var trainingImage in Directory.GetFiles(".", "train*.*")) { var mockFace = new Mock<IEigenObjectTargetFace>() .SetupProperty(x => x.Image, new Bitmap(trainingImage)) .SetupProperty(x => x.Key, trainingImage) .Object; faces.Add(mockFace); } var recognizer = new EigenObjectRecognizer(faces); double eigenDistance; var result = recognizer.Recognize(new Bitmap("test_mike.png"), out eigenDistance); Assert.AreEqual(734.0479, Math.Round(eigenDistance, 4)); Assert.AreEqual(@".\train_mike_2.png", result); }