/// <summary>
 /// 设置初始值
 /// </summary>
 /// <param name="myFaceObj"></param>
 /// <param name="i">1:添加模版 2:修改模版 3:抓拍修改模版</param>
 /// <param name="image">从抓拍处添加模版,传入的图片</param>
 public void SetTempleteInfo(MyFaceObj myFaceObj, int i, byte[] image)
 {
     if (i == 2)
     {
         tIPViewModel.Id           = myFaceObj.fa_ob_tcUuid + "";
         tIPViewModel.ImportTime   = myFaceObj.fa_ob_dTm;
         tIPViewModel.Remark       = myFaceObj.fa_ob_tcRemarks;
         tIPViewModel.Age          = myFaceObj.nAge + "";
         tIPViewModel.Name         = myFaceObj.tcName;
         tIPViewModel.SelectedSex  = tIPViewModel.Sex.IndexOf(myFaceObj.nSex);
         tIPViewModel.SelectedType = tIPViewModel.Type.IndexOf(myFaceObj.nType);
         tIPViewModel._FaceObj     = myFaceObj.faceObj;
         tIPViewModel.Title        = @"..\..\Images\子菜单修改模板.png";
     }
     else
     {
         string StringName = System.Guid.NewGuid().ToString();
         StringName              = StringName.Replace("-", "");
         tIPViewModel.Id         = StringName;
         tIPViewModel.ImportTime = DateTime.Now.ToString();
         if (i == 3)
         {
             tIPViewModel._FaceObj.Tmplate = new List <FaceObjTemplate>();
             FaceObjTemplate faceObjectTemplate = new FaceObjTemplate();
             faceObjectTemplate.Img = image;
             tIPViewModel._FaceObj.Tmplate.Add(faceObjectTemplate);
         }
         tIPViewModel.Title = @"..\..\Images\子菜单添加模板.png";
     }
 }
        /// <summary>
        /// 删除模版
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnDeleteTemplate_Click(object sender, RoutedEventArgs e)
        {
            if (listViewTemplate.SelectedIndex >= 0)
            {
                var       selectedItem = listViewTemplate.SelectedItem;
                MyFaceObj myFaceObj    = selectedItem as MyFaceObj;
                int       isSuccess    = -1;
                if (myFaceObj != null)
                {
                    bool?result = MB_MODULES.Views.MyMessage.Show("是否删除模板!");
                    if (result == true)//点击确定
                    {
                        isSuccess = thirft.DelFaceObj(myFaceObj.fa_ob_tcUuid);
                        if (isSuccess == 0)
                        {
                            MB_MODULES.Views.MyMessage.showYes("删除模板 " + myFaceObj.tcName + " 成功!");

                            cetTemplateManagerDelegate.BeginInvoke(currPage, null, null);
                        }
                        if (isSuccess == -1)
                        {
                            MB_MODULES.Views.MyMessage.showYes("删除模板失败!");
                        }
                    }
                }
            }
            else
            {
                MB_MODULES.Views.MyMessage.Show("请选择要删除的模板!");
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 删除模版
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnDeleteTemplate_Click(object sender, RoutedEventArgs e)
        {
            if (listViewTemplate.SelectedIndex < 0)
            {
                MyMessage.showYes("请选中需要删除的模版!");
                return;
            }

            MyFaceObj myFaceObj = listViewTemplate.SelectedItem as MyFaceObj;
            int       nSucess   = -1;

            if (myFaceObj != null)
            {
                bool?result = MyMessage.Show("是否删除模板!");
                if (result == true)//点击确定
                {
                    nSucess = thirft.DelFaceObj(myFaceObj.fa_ob_tcUuid);
                    if (nSucess == 0)
                    {
                        MyMessage.showYes("删除模板" + myFaceObj.tcName + "成功!");
                    }
                    if (nSucess == -1)
                    {
                        MyMessage.showYes("删除模板失败!");
                    }
                }
            }
            else
            {
                return;
            }
        }
        /// <summary>
        /// 查询模版的比对记录
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnQueryTemplateCmp_Click(object sender, RoutedEventArgs e)
        {
            if (listViewTemplate.SelectedIndex < 0)
            {
                MB_MODULES.Views.MyMessage.showYes("请选中需要查询的模版!");
                return;
            }
            MyFaceObj myFaceObj = listViewTemplate.SelectedItem as MyFaceObj;

            QueryTemplateCmpDelegate(myFaceObj.tcName);
        }
        /// <summary>
        /// 修改模板
        /// </summary>
        private void UpdateTemplate()
        {
            if (listViewTemplate.SelectedIndex < 0)
            {
                MB_MODULES.Views.MyMessage.showYes("请选中需要修改的模版!");
                return;
            }
            MyFaceObj       myFaceObj = listViewTemplate.SelectedItem as MyFaceObj;
            TempleteInfoPop tIP       = new TempleteInfoPop();

            tIP.SetTempleteInfo(myFaceObj, 2, null);
            tIP.ShowDialog();
        }
        private void GotoTraceAnalysisFunc(object obj)
        {
            MyFaceObj myFaceObj = obj as MyFaceObj;

            if (MyFaceObj.imgStream.Length > 0)
            {
                this.GoToCommandFunc(obj, 5);
            }
            else
            {
                MyMessage.Show("请选中要操作的一条数据");
            }
        }
Exemplo n.º 7
0
        private void ListFaceObject_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            MyFaceObj      myFaceObj = ListFaceObject.SelectedItem as MyFaceObj;
            List <FaceObj> faceObj   = thirft.QueryFaceObj(myFaceObj.fa_ob_tcUuid);

            for (int i = 0; i < 13; i++)
            {
                CapInfo capInfo = new CapInfo();
                cCViewModel.CapInfoList.Add(capInfo);
            }
            cCViewModel.CapInfoList[0].Key   = "人脸uuidID";
            cCViewModel.CapInfoList[0].Value = faceObj[0].TcUuid.ToString();

            cCViewModel.CapInfoList[1].Key   = "姓名";
            cCViewModel.CapInfoList[1].Value = faceObj[0].TcName.ToString();
            //
            cCViewModel.CapInfoList[2].Key   = "类型";
            cCViewModel.CapInfoList[2].Value = GlobalCache.FaceTypeList.Cast <STypeInfo>().FirstOrDefault(x => x.Type == faceObj[0].NType).Description;
            //
            cCViewModel.CapInfoList[3].Key   = "性别";
            cCViewModel.CapInfoList[3].Value = cCViewModel.Sex[faceObj[0].NSex];

            cCViewModel.CapInfoList[4].Key   = "人脸对象添加时间";
            cCViewModel.CapInfoList[4].Value = faceObj[0].DTm.ToString();

            cCViewModel.CapInfoList[5].Key   = "模板识别的年龄";
            cCViewModel.CapInfoList[5].Value = faceObj[0].NAge.ToString();

            cCViewModel.CapInfoList[6].Key   = "人脸备注";
            cCViewModel.CapInfoList[6].Value = faceObj[0].TcRemarks.ToString();

            cCViewModel.CapInfoList[7].Key   = "模板uuid";
            cCViewModel.CapInfoList[7].Value = faceObj[0].Tmplate[0].TcUuid.ToString();

            cCViewModel.CapInfoList[8].Key   = "所属FaceObj的uuid";
            cCViewModel.CapInfoList[8].Value = faceObj[0].Tmplate[0].TcObjid.ToString();

            cCViewModel.CapInfoList[9].Key   = "模板标识键";
            cCViewModel.CapInfoList[9].Value = faceObj[0].Tmplate[0].TcKey.ToString();

            cCViewModel.CapInfoList[10].Key   = "模板序号";
            cCViewModel.CapInfoList[10].Value = faceObj[0].Tmplate[0].NIndex.ToString();

            cCViewModel.CapInfoList[11].Key   = "模板添加时间";
            cCViewModel.CapInfoList[11].Value = faceObj[0].Tmplate[0].DTm.ToString();

            cCViewModel.CapInfoList[12].Key   = "模板备注";
            cCViewModel.CapInfoList[12].Value = faceObj[0].Tmplate[0].TcRemarks.ToString();

            ListViewRegisterInfo.Items.Refresh();
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <returns></returns>
        //async Task<ObservableCollection<PointLatLngImg>> SearchResult(object sender, RoutedEventArgs e)
        //{
        //    return await Task<ObservableCollection<PointLatLngImg>>.Run(() =>
        //    {
        //        ObservableCollection<PointLatLngImg> Points = new ObservableCollection<PointLatLngImg>();
        //        if (Convert.ToDateTime(StartDay) <= Convert.ToDateTime(EndDay))
        //        {
        //            long start = DateTimeConvert.ToTotalSeconds(true, StartDay, StartHour, StartMinute);
        //            long end = DateTimeConvert.ToTotalSeconds(false, EndDay, EndHour, EndMinute);

        //            try
        //            {
        //                List<TrackInfo> TrackInfos = new List<TrackInfo>();
        //                if (SnapPersonInfo != null)
        //                {
        //                    TrackInfos = thirft.QueryTrackPlayback(SnapPersonInfo.SnapId, SnapPersonInfo.PhotoByteArray, start, end);
        //                }
        //                else
        //                {
        //                    comServer.SocketOpter.ExceptionMsgFromSTAThread("请添加照片");
        //                }

        //                ListItemSourceObj = new List<CameraSnapPerson>();

        //                int row = 0;
        //                foreach (TrackInfo item in TrackInfos)
        //                {
        //                    CameraSnapPerson csp = new CameraSnapPerson();

        //                    csp.RowNumber = ++row;
        //                    csp.CameraInfo = new Camera();
        //                    csp.CameraInfo.Name = item.Name;
        //                    csp.Datetime = item.Capimg != null ? DateTimeConvert.LongTimeToString(item.Capimg[0].Time) : "";
        //                    csp.CameraInfo.Location = item.Channel_address;
        //                    csp.CameraInfo.Longitude = item.Longitude;
        //                    csp.CameraInfo.Latitude = item.Latitude;
        //                    ListItemSourceObj.Add(csp);

        //                    PointLatLngImg ipoint = new PointLatLngImg();
        //                    if (!string.IsNullOrEmpty(item.Latitude) && !string.IsNullOrEmpty(item.Longitude))
        //                        ipoint.Point = new GMap.NET.PointLatLng(Convert.ToDouble(item.Latitude), Convert.ToDouble(item.Longitude));
        //                    ipoint.Img = ImageConvert.ToBitmapImage(SnapPersonInfo.PhotoByteArray);
        //                    ipoint.ImgVisibility = Visibility.Visible;
        //                    ipoint.ImgframeVisibility = Visibility.Visible;
        //                    Points.Add(ipoint);
        //                }

        //            }
        //            catch (Exception ex)
        //            {
        //                Logger<MainTraceAnalysisView>.Log.Error(ex);
        //            }
        //            OnPropertyChanged("ListItemSourceObj");
        //        }
        //        else
        //        {
        //            comServer.SocketOpter.ExceptionMsgFromSTAThread("结束时间不能大于开始时间");
        //        }

        //        return Points;
        //    }).ConfigureAwait(false);
        //}


        public void GetPersonInfo(object obj)
        {
            Type type = obj.GetType();

            SnapPersonInfo = new CameraSnapPerson();

            try
            {
                if (obj is MyCmpFaceLogWidthImgModel)//对比记录至此
                {
                    MyCmpFaceLogWidthImgModel mfl = obj as MyCmpFaceLogWidthImgModel;
                    SnapPersonInfo.Name                 = mfl.T1.UserName;
                    SnapPersonInfo.Photo                = mfl.SnapImage;
                    SnapPersonInfo.PhotoByteArray       = mfl.SnapImageBuffer;
                    SnapPersonInfo.Datetime             = mfl.date + mfl.time;
                    SnapPersonInfo.CameraInfo           = new Camera();
                    SnapPersonInfo.CameraInfo.Location  = mfl.Address;
                    SnapPersonInfo.CameraInfo.Longitude = mfl.Longitude;
                    SnapPersonInfo.CameraInfo.Latitude  = mfl.Latitude;
                    SnapPersonInfo.Score                = mfl.Score;
                    SnapPersonInfo.Source               = "抓拍库";
                }
                else if (obj is CameraSnapPerson)//静态分析至此
                {
                    SnapPersonInfo        = obj as CameraSnapPerson;
                    SnapPersonInfo.Name   = "通道:" + SnapPersonInfo.Name;
                    SnapPersonInfo.Source = "抓拍库";
                }
                else if (obj is MyFaceObj)//模板库至此
                {
                    MyFaceObj mfo = obj as MyFaceObj;
                    SnapPersonInfo.Name           = "姓名:" + mfo.tcName;
                    SnapPersonInfo.Photo          = mfo.img;
                    SnapPersonInfo.Source         = "模板库";
                    SnapPersonInfo.PhotoByteArray = mfo.imgStream; //ImageConvert.ToImageStream(mfo.img as BitmapImage);
                    SnapPersonInfo.Datetime       = mfo.fa_ob_dTm;
                }
            }
            catch (Exception ex)
            {
                Logger <MainTraceAnalysisView> .Log.Error(ex);
            }
            finally
            {
                OnPropertyChanged("SnapPersonInfo");
            }
        }
Exemplo n.º 9
0
 public void GetCmpByCapId()
 {
     try
     {
         CmpFaceList = thirft.QueryCmpByCapIdWidthImgH(cCViewModel.Id, cCViewModel.Day);
         List <FaceObj> ListFaceObj = new List <FaceObj>();
         int            i           = 0;
         foreach (var cmpFaceLogWidthImg in CmpFaceList)
         {
             List <FaceObj> listFaceObj = thirft.QueryFaceObj(cmpFaceLogWidthImg.TcUuid);
             foreach (var faceObj in listFaceObj)
             {
                 ListFaceObj.Add(faceObj);
             }
         }
         foreach (FaceObj cmpFace in ListFaceObj)
         {
             for (int j = 0; j < cmpFace.Tmplate.Count; j++)
             {
                 MyFaceObj myFaceObj = new MyFaceObj();
                 //读入MemoryStream对象
                 BitmapImage myBitmapImage = new BitmapImage();
                 myBitmapImage.BeginInit();
                 myBitmapImage.StreamSource = new System.IO.MemoryStream(cmpFace.Tmplate[j].Img);
                 myFaceObj.img = myBitmapImage;
                 myBitmapImage.EndInit();
                 myBitmapImage          = null;
                 myFaceObj.fa_ob_tcUuid = cmpFace.TcUuid;
                 myFaceObj.tcName       = cmpFace.TcName;
                 myFaceObj.nAge         = CmpFaceList[i].Score;
                 MyFaceObjListTemp.Add(myFaceObj);
                 i++;
             }
         }
         ShowFaceObject();
     }
     catch (Exception ex)
     {
         Logger <OperaExcel> .Log.Error("GetCmpByCapId", ex);
     }
 }
        /// <summary>
        /// 切换选中项
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void listViewTemplate_SelectionChanged(object sender, SelectionChangedEventArgs eventArgs)
        {
            MyFaceObj myFaceObj = listViewTemplate.SelectedItem as MyFaceObj;

            if (myFaceObj == null)
            {
                return;
            }
            //获得模板id和所属的人脸Id
            string         nTemplateFaceID = myFaceObj.fa_ob_tcUuid;
            int            nTemplateId     = myFaceObj.nMain_ftID;
            List <FaceObj> ListFaceObj     = new List <FaceObj>();

            ListFaceObj.Add(myFaceObj.faceObj);
            byte[] imageBytes = new byte[10];

            btnTemplatePhoto.Dispatcher.BeginInvoke(new Action(() =>
            {
                this.btnTemplatePhoto.Content = "";
                //遍历得到对应模板ID下的照片
                if (ListFaceObj.Count != 0)
                {
                    if (ListFaceObj[0].NMain_ftID == nTemplateId)
                    {
                        try
                        {
                            if (nTemplateId == 0)
                            {
                                nTemplateId = 1;
                            }
                            for (int i = 0; i < ListFaceObj[0].Tmplate.Count; i++)
                            {
                                if (ListFaceObj[0].Tmplate[i].NIndex == nTemplateId - 1)
                                {
                                    GridTemplatePic.Dispatcher.BeginInvoke(new Action(() =>
                                    {
                                        GridTemplatePic.Background = new ImageBrush
                                        {
                                            ImageSource = new BitmapImage(new Uri("pack://application:,,,/Images/抓拍照片纯背景.png"))
                                        };
                                        GridAfterbtnTemplatePhoto.Visibility = Visibility.Visible;
                                    }));
                                    btnTemplatePhoto.Visibility = Visibility.Visible;
                                    imageBytes = ListFaceObj[0].Tmplate[i].Img;
                                    System.IO.MemoryStream ms = new System.IO.MemoryStream(imageBytes); //img是从数据库中读取出来的字节数组
                                                                                                        //读入MemoryStream对象
                                    BitmapImage myBitmapImage = new BitmapImage();
                                    myBitmapImage.BeginInit();
                                    myBitmapImage.StreamSource = ms;
                                    myBitmapImage.EndInit();
                                    this.btnTemplatePhoto.Background = new ImageBrush {
                                        ImageSource = myBitmapImage
                                    };
                                    tMViewModel.MyFaceObj.img       = myBitmapImage;
                                    tMViewModel.MyFaceObj.imgStream = imageBytes;
                                    myBitmapImage = null;
                                }
                            }
                        }
                        catch (Exception e)
                        {
                            if (e.InnerException.Message.Contains("0x88982F72"))
                            {
                                try
                                {
                                    FileStream fs = new FileStream(System.Windows.Forms.Application.StartupPath + "\\转存的图片.jpg", FileMode.OpenOrCreate);
                                    fs.Write(imageBytes, 0, imageBytes.Length);

                                    fs.Flush();
                                    fs.Close();
                                    fs.Dispose();

                                    System.Drawing.Image img = new System.Drawing.Bitmap(System.Windows.Forms.Application.StartupPath + "\\转存的图片.jpg");
                                    MemoryStream stream      = new MemoryStream();
                                    img.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
                                    BinaryReader br = new BinaryReader(stream);
                                    byte[] photo    = stream.ToArray();
                                    stream.Close();
                                    stream.Dispose();
                                    System.IO.MemoryStream ms = new System.IO.MemoryStream(photo); //img是从数据库中读取出来的字节数组
                                                                                                   //读入MemoryStream对象
                                    BitmapImage myBitmapImage = new BitmapImage();
                                    myBitmapImage.BeginInit();
                                    myBitmapImage.StreamSource = ms;
                                    myBitmapImage.EndInit();
                                    this.btnTemplatePhoto.Background = new ImageBrush {
                                        ImageSource = myBitmapImage
                                    };
                                    tMViewModel.MyFaceObj.img = myBitmapImage;
                                    myBitmapImage             = null;
                                    //File.Delete(System.Windows.Forms.Application.StartupPath + "\\转存的图片.jpg");
                                }
                                catch (Exception ex)
                                {
                                    MB_MODULES.Views.MyMessage.showYes("您当前的操作过于频繁,请稍后重试");
                                    Logger <TemplateManager> .Log.Error("listViewTemplate_SelectionChanged", ex);
                                }
                            }
                            else
                            {
                                //imageBytes;
                                MB_MODULES.Views.MyMessage.showYes("获得数据库图片错误!" + e.InnerException.Message);
                            }
                        }
                    }
                }
            }));
        }