public UserImage(IFaceImage faceImage) { MemoryStream memoryStream = new MemoryStream(); faceImage.ImageOfFace.Save(memoryStream, ImageFormat.Bmp); byte[] image = memoryStream.ToArray(); Image = image; }
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)); } }
public void AddImage(IFaceImage image) { _images.Add(image); }