Example #1
0
        public UserImage(IFaceImage faceImage)
        {
            MemoryStream memoryStream = new MemoryStream();

            faceImage.ImageOfFace.Save(memoryStream, ImageFormat.Bmp);
            byte[] image = memoryStream.ToArray();

            Image = image;
        }
Example #2
0
        public IIdentifier GetIdentity(IFaceImage img)
        {
            IIdentifier answ   = new Identifier(int.MinValue);
            var         labels = _labelRepo.GetAll();

            foreach (var label in labels)
            {
                IEnumerable <IFaceImage>   batch     = label.Images;
                List <Image <Gray, Byte> > compBatch = new List <Image <Gray, Byte> >();
                List <int> trainingLabels            = new List <int>();

                int enumerator = 0;
                foreach (var current in batch)
                {
                    compBatch.Add(new Image <Gray, Byte>(current.ImageOfFace));
                    trainingLabels.Add(enumerator++);
                }

                FaceRecognizer recognizer = new LBPHFaceRecognizer(_recognizerRadius, _recognizerNeighbors,
                                                                   _recognizerGridX, _recognizerGridY, _recognizerThreshold);

                recognizer.Train(compBatch.ToArray(), trainingLabels.ToArray());

                PredictionResult result = recognizer.Predict(new Image <Gray, Byte>(img.ImageOfFace));
                if (result.Distance < _minDistanse)
                {
                    _minDistanse = result.Distance;
                    answ         = label.Id;
                }
            }
            if (_minDistanse < _requiredDistance)
            {
                return(answ);
            }
            else
            {
                return(new Identifier(-1));
            }
        }
Example #3
0
 public void AddImage(IFaceImage image)
 {
     _images.Add(image);
 }