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