private void createNewPersonDataButton_Click(object sender, EventArgs e) { int viablePicsCount = 0; int notViablePicsCount = 0; if (picSelected) { string newName = nameField.Text; string birthDate = birthDateField.Text; string missingDate = missingDateField.Text; string additionalInfo = additionalInfoField.Text; DateTime dt; Regex regx = new Regex(@"^[\p{L}\p{M}' \.\-]+$"); if (regx.IsMatch(newName) && DateTime.TryParseExact(birthDate, "yyyy-MM-dd", new CultureInfo("lt-LT"), DateTimeStyles.None, out dt) && DateTime.TryParseExact(missingDate, "yyyy-MM-dd hh:mm", new CultureInfo("lt-LT"), DateTimeStyles.AssumeLocal, out dt)) { picSelected = false; string directory = newName; directory = directory.Replace(" ", "_"); if (!File.Exists(Application.StartupPath + "/data/" + directory + "/rep.bmp")) { ImageHandler.SaveRepresentativePic(tempImage.ToBitmap(), directory); } foreach (string filename in picFilenames) { tempImage = new Image <Bgr, byte>(filename); if (ImageHandler.GetFaceFromImage(tempImage) == null) { notViablePicsCount++; } else { var newFace = ImageHandler.GetFaceFromImage(tempImage); var newGrayFace = newFace.Convert <Gray, Byte>(); ImageHandler.SaveGrayFacetoFile(directory, newGrayFace); viablePicsCount++; } } if (viablePicsCount > 0) { listBox1.Items.Add(newName); FirstPageView.persons.Add(new Person(newName, birthDate, missingDate, additionalInfo)); ImageHandler.WriteDataToFile(FirstPageView.persons); MessageBox.Show(String.Format("{0} was added to database. ({1}/{2} pics was suitable.)", newName, viablePicsCount, picFilenames.Count)); pictureBox2.Image = nightOwl.Properties.Resources.NewPerson; nameField.Text = ""; missingDateField.Text = ""; birthDateField.Text = ""; additionalInfoField.Text = ""; nameField.Enabled = true; } else { MessageBox.Show("No good photos for face recognition!"); } } else { MessageBox.Show("Please insert correct information!"); } } else { MessageBox.Show("Please add some photos!"); } }
private void TrainerForm_FormClosing(object sender, FormClosingEventArgs e) { EigenFaceRecognizer eigen = Recognizer.NewEigen(); bool success = Recognizer.TrainRecognizer(eigen, ImageHandler.GetGrayFaceArrayFromFiles(), ImageHandler.GetLabelArrayFromFiles()); if (success == false) { MessageBox.Show("Corrupted data"); } }