public bool SaveNewFace(string label, ref Image <Gray, Byte> detectedFace, CancellationToken token) { var trainedFacesTemp = new List <Image <Gray, byte> >(); var faceLabelsTemp = new List <String>(); var faceIDTemp = new List <int>(); int faceCountTemp = FaceCount; for (int i = 0; i < LibraryDataIO.Instance.PicturesPerUser && !token.IsCancellationRequested;) { if (detectedFace != null) { trainedFacesTemp.Add(detectedFace); faceLabelsTemp.Add(label); faceIDTemp.Add(++faceCountTemp); FacePhotoSaved?.Invoke(this, EventArgs.Empty); i++; Thread.Sleep(500); } } if (!token.IsCancellationRequested) { StoreNewFace(trainedFacesTemp, faceLabelsTemp, faceIDTemp, label); return(true); } return(false); }
public FaceCamera(int camWidth, int camHeight, IFaceRecognition faceRecognition) { faceFrame = Resources.FaceFrame; this.faceRecognition = faceRecognition; videoCapture = new VideoCapture(); camSize = new Size(camWidth, camHeight); faceRecognition.FacePhotoSaved += (object sender, EventArgs e) => FacePhotoSaved?.Invoke(sender, e); faceRecognition.LoadRecognizer(); }