private void button2_Click(object sender, EventArgs e) { ClsEntAsistencia objEasis = new ClsEntAsistencia(); ClsNegReconocimientoFacial objNasis = new ClsNegReconocimientoFacial(); if (lblNumeroDetect.Text == "0" || lblNadie.Text == "") { MessageBox.Show("No esta registrado", "Debe de estar registrado"); } else { if (cont == 1) { //if metodo de busqueda si la entrada es 1 objEasis.nombres = lblNadie.Text; objEasis.fecha = lblfecha.Text; objEasis.estado = cont.ToString(); objNasis.MtdBuscar(objEasis); dgvasistencia.DataSource = objNasis.Source; objEasis.hsalida = lblhora.Text; cont = 0; objEasis.estado = cont.ToString(); objNasis.MtdModificar(objEasis); } objNasis.Listar(); dgvasistencia.DataSource = objNasis.Source; ClsConexion.Desconectar(); } }
private void FrameGrabber(object sender, EventArgs e) { // lblNumeroDetect.Text = "0"; NamePersons.Add(""); try { currentFrame = grabber.QueryFrame().Resize(320, 240, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC); //Convertir a escala de grises gray = currentFrame.Convert <Gray, Byte>(); //Detector de Rostros MCvAvgComp[][] facesDetected = gray.DetectHaarCascade(face, 1.2, 10, Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(20, 20)); //Accion para cada elemento detectado foreach (MCvAvgComp f in facesDetected[0]) { t = t + 1; result = currentFrame.Copy(f.rect).Convert <Gray, byte>().Resize(100, 100, INTER.CV_INTER_CUBIC); //Dibujar el cuadro para el rostro currentFrame.Draw(f.rect, new Bgr(Color.LightGreen), 1); if (trainingImages.ToArray().Length != 0) { //Clase para reconocimiento con el nùmero de imagenes MCvTermCriteria termCrit = new MCvTermCriteria(ContTrain, 0.001); //Clase Eigen para reconocimiento de rostro EigenObjectRecognizer recognizer = new EigenObjectRecognizer(trainingImages.ToArray(), labels.ToArray(), ref termCrit); var fa = new Image <Gray, byte> [trainingImages.Count]; //currentFrame.Convert<Bitmap>(); name = recognizer.Recognize(result); //Dibujar el nombre para cada rostro detectado y reconocido currentFrame.Draw(name, ref font, new Point(f.rect.X - 2, f.rect.Y - 2), new Bgr(Color.YellowGreen)); ClsNegReconocimientoFacial obj = new ClsNegReconocimientoFacial(); //int j = 0; //foreach (DataRow row in obj.ListarAdministrador().Rows) //{ // if (lblNadie.Text.Equals(row[j])) // { // Frm_Principal frm = new Frm_Principal(); // frm.Show(); // this.Hide(); // } //} } NamePersons[t - 1] = name; NamePersons.Add(""); //Establecer el nùmero de rostros detectados //lblNumeroDetect.Text = facesDetected[0].Length.ToString(); lblNadie.Text = name; //compara el nombre que tiene la imagen //if (lblNadie.Text == "fddxb")//si es administrador entra //{ // Frm_Principal frm = new Frm_Principal(); // frm.Show(); // this.Hide(); //} //else //{ // MessageBox.Show("No puedes Ingresar a este sistema", "No eres el Administrador"); //} } t = 0; //Nombres concatenados de todos los rostros reconocidos for (int nnn = 0; nnn < facesDetected[0].Length; nnn++) { names = names + NamePersons[nnn] + ", "; } //Mostrar los rostros procesados y reconocidos imageBoxFrameGrabber.Image = currentFrame; name = ""; //Borrar la lista de nombres NamePersons.Clear(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }