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);
            }
        }