Ejemplo n.º 1
0
        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!");
            }
        }
Ejemplo n.º 2
0
        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");
            }
        }