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(); } }
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"); } }
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 !!"); }