public void LoadDB()
        {
            using (conn = new SqlCeConnection(stringCon))
            {
                conn.Open();
                using (cmd = new SqlCeCommand(@"SELECT * FROM FaceList", conn))
                {
                    SqlCeDataReader re = cmd.ExecuteReader();
                    while (re.Read())
                    {
                        TFaceRecord fr = new TFaceRecord();
                        fr.ImageFileName = re.GetString(0);
                        fr.subjectName   = re.GetString(1);

                        fr.FacePosition       = new FSDK.TFacePosition();
                        fr.FacePosition.xc    = re.GetInt32(2);
                        fr.FacePosition.yc    = re.GetInt32(3);
                        fr.FacePosition.w     = re.GetInt32(4);
                        fr.FacePosition.angle = re.GetFloat(5);

                        fr.FacialFeatures      = new FSDK.TPoint[2];
                        fr.FacialFeatures[0]   = new FSDK.TPoint();
                        fr.FacialFeatures[0].x = re.GetInt32(6);
                        fr.FacialFeatures[0].y = re.GetInt32(7);

                        fr.FacialFeatures[1]   = new FSDK.TPoint();
                        fr.FacialFeatures[1].x = re.GetInt32(8);
                        fr.FacialFeatures[1].y = re.GetInt32(9);

                        fr.Template = new byte[FSDK.TemplateSize];
                        re.GetBytes(10, 0, fr.Template, 0, FSDK.TemplateSize);

                        Image img      = Image.FromStream(new System.IO.MemoryStream(re.GetSqlBinary(11).Value));
                        Image img_face = Image.FromStream(new System.IO.MemoryStream(re.GetSqlBinary(12).Value));
                        fr.image     = new FSDK.CImage(img);
                        fr.faceImage = new FSDK.CImage(img_face);



                        dbList.Add(fr);

                        img.Dispose();
                        img_face.Dispose();
                    }
                }
                conn.Close();
            }
        }
Exemple #2
0
        private void Subjects_Load(object sender, EventArgs e)
        {
            DBConnection db = new DBConnection();

            db.LoadDB();
            TFaceRecord tr = new TFaceRecord();

            tr = db.dbList[0];
            MessageBox.Show(tr.Template.ToString());



            FaceList = new List <TFaceRecord>();
            if (FSDK.FSDKE_OK != FSDK.ActivateLibrary("VBsVmYmHr/5JxUlk3q0KHjILz7R3Hb5OEhCQ7KdCg/tPbQqJfAaz8ok/9+iTgDp/KjGjkBi23HeCaUq8KKtKeXXN3xbe+bKfQ8q/3mfG6sad3AGUYDj6E+Qi2pzCWFgb4vqWDB3pLzUw+hnOZ7///CBV63IaB1kh7XF6VCaGtNw="))
            {
                MessageBox.Show("Please run the License Key Wizard (Start - Luxand - FaceSDK - License Key Wizard)", "Error activating FaceSDK", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Application.Exit();
            }

            if (FSDK.InitializeLibrary() != FSDK.FSDKE_OK)
            {
                MessageBox.Show("Error initializing FaceSDK!", "Error");
            }
        }
Exemple #3
0
        private void button1_Click(object sender, EventArgs e)
        {
            TFaceRecord fr = new TFaceRecord();

            FSDK.SetFaceDetectionParameters(false, true, 384);
            FSDK.SetFaceDetectionThreshold((int)FaceDetectionThreshold);

            fr.ImageFileName  = imgLoc;
            fr.FacePosition   = new FSDK.TFacePosition();
            fr.FacialFeatures = new FSDK.TPoint[2];
            fr.Template       = new byte[FSDK.TemplateSize];

            fr.image = new FSDK.CImage(imgLoc);

            fr.FacePosition = fr.image.DetectFace();
            if (0 == fr.FacePosition.w)
            {
                if (imgLoc.Length <= 1)
                {
                    MessageBox.Show("No faces found. Try to lower the Minimal Face Quality parameter in the Options dialog box.", "Enrollment error");
                }
                else
                {
                }
            }
            else
            {
                fr.faceImage      = fr.image.CopyRect((int)(fr.FacePosition.xc - Math.Round(fr.FacePosition.w * 0.5)), (int)(fr.FacePosition.yc - Math.Round(fr.FacePosition.w * 0.5)), (int)(fr.FacePosition.xc + Math.Round(fr.FacePosition.w * 0.5)), (int)(fr.FacePosition.yc + Math.Round(fr.FacePosition.w * 0.5)));
                fr.FacialFeatures = fr.image.DetectEyesInRegion(ref fr.FacePosition);
                fr.Template       = fr.image.GetFaceTemplateInRegion(ref fr.FacePosition); // get template with higher precision

                FaceList.Add(fr);
            }


            Image        img       = null;
            Image        img_face  = null;
            MemoryStream strm      = new MemoryStream();
            MemoryStream strm_face = new MemoryStream();

            img      = fr.image.ToCLRImage();
            img_face = fr.faceImage.ToCLRImage();
            img.Save(strm, System.Drawing.Imaging.ImageFormat.Jpeg);
            img_face.Save(strm_face, System.Drawing.Imaging.ImageFormat.Jpeg);
            byte[] img_array      = new byte[strm.Length];
            byte[] img_face_array = new byte[strm_face.Length];
            strm.Position = 0;
            strm.Read(img_array, 0, img_array.Length);
            strm_face.Position = 0;
            strm_face.Read(img_face_array, 0, img_face_array.Length);

            conn = new SqlCeConnection(stringCon);
            conn.Open();

            var cmd = new SqlCeCommand("insert into FaceList (ImageFileName,SubjectName,FacePositionXc,FacePositionYc,FacePositionW,FacePositionAngle,Eye1X,Eye1Y,Eye2X,Eye2Y,Template,Image,FaceImage) values (@IFName,@SName,@FPXc,@FPYc,@FPW,@FPA,@Eye1X,@Eye1Y,@Eye2X,@Eye2Y,@Template,@Image,@FaceImage)", conn);



            cmd.Parameters.Add(@"IFName", fr.ImageFileName);
            cmd.Parameters.Add(@"SName", textBox1.Text.Trim());
            cmd.Parameters.Add(@"FPXc", fr.FacePosition.xc);
            cmd.Parameters.Add(@"FPYc", fr.FacePosition.yc);
            cmd.Parameters.Add(@"FPW", fr.FacePosition.w);
            cmd.Parameters.Add(@"FPA", fr.FacePosition.angle);
            cmd.Parameters.Add(@"Eye1X", fr.FacialFeatures[0].x);
            cmd.Parameters.Add(@"Eye1Y", fr.FacialFeatures[0].y);
            cmd.Parameters.Add(@"Eye2X", fr.FacialFeatures[1].x);
            cmd.Parameters.Add(@"Eye2Y", fr.FacialFeatures[1].y);
            cmd.Parameters.Add(@"Template", fr.Template);
            cmd.Parameters.Add(@"Image", img_array);
            cmd.Parameters.Add(@"FaceImage", img_face_array);


            int x = cmd.ExecuteNonQuery();

            conn.Close();
            conn.Dispose();
            cmd.Dispose();
            MessageBox.Show(x.ToString() + "Image successfully added !!");
        }