private void Button_Click(object sender, RoutedEventArgs e) { // CREATE ALL THE FILES HERE! // if you are trying to reset the database, you must remove the entire folder if (!Directory.Exists(EnrollmentManager.filepath)) { Directory.CreateDirectory(EnrollmentManager.filepath); Directory.CreateDirectory(EnrollmentManager.filepath + "feed"); File.Create(EnrollmentManager.filepath + "contacts.txt"); File.Create(EnrollmentManager.filepath + "context.txt"); File.Create(EnrollmentManager.filepath + "nameDB.txt"); File.Create(EnrollmentManager.filepath + "faceDB.txt"); // no one in database EnrollmentManager.firstTime = true; EnrollmentManager.window.Content = new EnterNamePage(); } else { // no one in database if (File.ReadAllLines(EnrollmentManager.filepath + "faceDB.txt").Length == 0) { EnrollmentManager.firstTime = true; EnrollmentManager.window.Content = new EnterNamePage(); } else { EnrollmentManager.Finish(true); } } }
private void Button_Click_1(object sender, RoutedEventArgs e) { EnrollmentManager.isKinect2(); // CREATE ALL THE FILES HERE! if (!Directory.Exists(EnrollmentManager.filepath)) { EnrollmentManager.window.Content = new ErrorPage(); } else { // kinect 2 should not be doing any enrollment manager stuff EnrollmentManager.Finish(true); } }
private void Cancel_Click(object sender, RoutedEventArgs e) { EnrollmentManager.Finish(true); }
private void ReceiveFrame(BitmapSource frame, IEnumerable <Rect> faceBoxes) { Rect faceBox = Rect.Empty; PersonTrainingData person = EnrollmentManager.personToTrain; if (faceBoxes.Count() == 1) // people in the shot, only want one right now { //Debug.WriteLine("faceboxes COUNT: " + faceBoxes.Count()); Rect bounds = new Rect(new System.Windows.Size(frame.Width, frame.Height)); IEnumerable <Rect> filteredFaceBoxes = faceBoxes.Select((box) => Util.TransformFace(box)); filteredFaceBoxes = filteredFaceBoxes.Where((box) => Util.IsValidRect(box, bounds)); faceBox = filteredFaceBoxes.FirstOrDefault(); Bitmap image = Util.SourceToBitmap(frame); i++; if ((i % 4) == 0) { FaceRecognition.FaceRecognizerBridge.Preview(image, faceBox); MemoryStream ms = new MemoryStream(); BitmapImage bi = new BitmapImage(); byte[] bytArray = File.ReadAllBytes(EnrollmentManager.filepath + "preview.jpg"); ms.Write(bytArray, 0, bytArray.Length); ms.Position = 0; bi.BeginInit(); bi.StreamSource = ms; bi.EndInit(); snapshotImage.Source = bi; if (person.trainingImages.Count() == NUMBER_TO_TRAIN) { EnrollmentManager.OnFrameReceived -= ReceiveFrame; EnrollmentManager.Finish(false); } person.trainingImages.Insert(j, image); person.faceBoxes.Insert(j, faceBox); j++; } if (i == NUMBER_TO_TRAIN) { i = 0; //EnrollmentManager.OnFrameReceived -= ReceiveFrame; //EnrollmentManager.Finish(false); } // } } else if (faceBoxes.Count() > 1) { Debug.WriteLine("Too many people in the shot: " + faceBoxes.Count()); } // drawing the red boxes DrawingVisual drawingVisual = new DrawingVisual(); using (DrawingContext drawingContext = drawingGroup.Open()) { drawingContext.DrawImage(frame, new Rect(new System.Windows.Size(frame.Width, frame.Height))); var brush = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Red); var pen = new System.Windows.Media.Pen(brush, 5); drawingContext.DrawRectangle(null, pen, faceBox); } lastFrame = frame; }
private void Done_Click(object sender, RoutedEventArgs e) { EnrollmentManager.OnFrameReceived -= ReceiveFrame; EnrollmentManager.Finish(false); }