private void updateFoundPic(FaceInfo f, FaceData fd) { if (f == null || fd == null) { return; } if (PicBoxFoundPic != null) { Action d = () => { PicBoxFoundPic.Image = Data.GetFaceOrgPic(fd); }; PicBoxFoundPic.BeginInvoke(d); } //自动更新人脸字典数据结构 if (FaceAutoUpdateOn && f.userid != 0) { Data.UpdateFacePicture(f, fd); FaceDic.AddFace(f.userid, f); Console.WriteLine("FaceCamera->AutoFaceDictionaryUpdate: uid=" + f.userid + "FaceAngleType=" + f.angleType); } }
public int LoadFaceData(ProgressBar proBar) { try { if (!_isDBInitialized) { return(ERROR_NOT_INIT); } int count = 0; int total = GetFaceCount(); if (total == 0) { Console.WriteLine("LoadFace no record, exit."); return(0); } if (proBar != null) { if (proBar.InvokeRequired) { Action a = () => { proBar.Maximum = total; proBar.Value = 0; }; proBar.Invoke(a); } else { proBar.Maximum = total; proBar.Value = 0; } } //装载用户信息 LoadUserInfo(); //获取所有人脸信息 MySqlDataReader reader = MySqlHelper.ExecuteReader(conn, "SELECT id,userid,featurelength,feature,angletype FROM " + FACE_TABLE_NAME); while (reader.Read()) { int fid = reader.GetInt32(reader.GetOrdinal("id")); int userid = reader.GetInt32(reader.GetOrdinal("userid")); int featurelength = reader.GetInt32(reader.GetOrdinal("featurelength")); byte[] feature = new byte[featurelength]; reader.GetBytes(reader.GetOrdinal("feature"), 0, feature, 0, featurelength); FaceData.FaceAngleType angletype = (FaceData.FaceAngleType)reader.GetInt32(reader.GetOrdinal("angletype")); FaceData fd = new FaceData(); fd.faceid = fid; fd.userid = userid; fd.featureLenth = (short)featurelength; fd.feature = feature; fd.angleType = angletype; _FaceDic.AddFace(userid, fd); count++; if (proBar != null) { if (proBar.InvokeRequired) { Action d = () => { proBar.Value++; }; proBar.Invoke(d); } else { proBar.Value++; } } } reader.Close(); Console.WriteLine("LoadFace ok. read count={0}", count); return(count); } catch (Exception ex) { Console.WriteLine("DataAccess LoadFace Error. " + ex.Message); return(ERROR_DB_FAILED); } }