示例#1
0
        private void BtnCaptureFace_Click(object sender, EventArgs e)
        {
            if (tracker.TrackingFaces.Count > 0)
            {
                //Rectangle cropRect = new Rectangle()
                //Rectanle cropRect = tracker.TrackingFaces.First.Value.humanFace.faceRectangle;
                ImageBoxCapturedImage.Image = tracker.TrackingFaces.First.Value.humanFace.face;
                //cropedFace = tracker.TrackingFaces.First.Value.humanFace.face.ToJpegData();

                var imageList = new ImageList
                {
                    ImageSize  = new Size(72, 72),
                    ColorDepth = ColorDepth.Depth32Bit
                };
                LvFaceList.Clear();
                int i = 0;
                LvFaceList.LargeImageList = imageList;
                foreach (FaceTracker tracker in tracker.TrackingFaces)
                {
                    imageList.Images.Add(i.ToString(), tracker.humanFace.face.Bitmap);
                    LvFaceList.Items.Add(i.ToString(), i.ToString());
                    i++;
                }
                UpdateFlow(FlowAction.CaptureFace);
                //cropedFace = tracker.TrackingFaces.First.Value.humanFace.face.Resize(RESIZE_IMAGE_WIIDTH, RESIZE_IMAGE_HEIGHT, Emgu.CV.CvEnum.Inter.Cubic).ToJpegData();
            }

            //imageBoxCapturedImage.Image = _capture.QueryFrame();
        }
示例#2
0
        private async void ListFaceFromServer()
        {
            try
            {
                TxtErrorMessage.Text = "";
                var response = await RestfulClient.ListPeople();

                if (response.ReturnCode == 200)
                {
                    var l_people  = response.Content;
                    var imageList = new ImageList
                    {
                        ImageSize  = new Size(72, 72),
                        ColorDepth = ColorDepth.Depth32Bit
                    };
                    LvFaceList.Clear();
                    people.Clear();
                    foreach (Person person in l_people)
                    {
                        if (person.Face != null && person.Face.FaceData != null)
                        {
                            people.Add(person.Face.Identify.ToString(), person);
                            imageList.Images.Add(person.Face.Identify.ToString(), Base64ToImage(person.Face.FaceData));
                            LvFaceList.LargeImageList = imageList;
                            LvFaceList.Items.Add(person.Name, person.Face.Identify.ToString());
                        }
                    }
                    LvFaceList.LargeImageList = imageList;
                    TxtErrorMessage.Text      = "Success";
                }
                else
                {
                    TxtErrorMessage.Text = response.Message;
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Error on connecting server: " + ex.Message);
                Debug.WriteLine(ex.StackTrace);
                TxtErrorMessage.Text = "Error on connecting server: " + ex.Message;
            }
        }
示例#3
0
        private void UpdateBtnStatus(CaptureImageType newStatus)
        {
            captureImageType = newStatus;
            switch (captureImageType)
            {
            case CaptureImageType.None:
                StopPreview();
                txtDetail.Text   = "";
                txtScore.Text    = "";
                txtUsrename.Text = "";
                LvFaceList.Clear();
                LvFaceList.Enabled          = true;
                ImageBoxCapturedImage.Image = null;
                BtnCancel.Enabled           = false;
                BtnStartPreview.Enabled     = true;
                BtnStartPreview.Text        = "New Person";
                BtnSaveFace.Enabled         = false;
                BtnCheckFace.Enabled        = false;
                BtnListPeople.Enabled       = true;
                BtnCaptureFace.Enabled      = false;
                if (tracker != null)
                {
                    tracker.Dispose();
                    tracker.TrackingFaces.Clear();
                }
                if (people != null)
                {
                    people.Clear();
                }
                selectedPerson = null;
                //ListFaceFromServer();
                UpdateDeleteBtn();
                break;

            case CaptureImageType.NewPerson:
                LvFaceList.Clear();
                LvFaceList.Enabled      = false;
                BtnCancel.Enabled       = true;
                BtnStartPreview.Enabled = false;
                BtnSaveFace.Enabled     = false;
                BtnCheckFace.Enabled    = false;
                BtnListPeople.Enabled   = false;
                BtnCaptureFace.Enabled  = true;
                UpdateDeleteBtn();
                break;

            case CaptureImageType.CurrentPerson:
                BtnCancel.Enabled       = true;
                BtnStartPreview.Enabled = true;
                BtnStartPreview.Text    = "Start Preview";
                UpdateSaveBtn();
                BtnCheckFace.Enabled   = false;
                BtnListPeople.Enabled  = false;
                BtnCaptureFace.Enabled = false;
                UpdateDeleteBtn();
                break;

            case CaptureImageType.UpdatePerson:
                LvFaceList.Clear();
                LvFaceList.Enabled      = false;
                BtnCancel.Enabled       = true;
                BtnStartPreview.Enabled = false;
                BtnSaveFace.Enabled     = false;
                BtnCheckFace.Enabled    = false;
                BtnListPeople.Enabled   = false;
                BtnCaptureFace.Enabled  = true;
                UpdateDeleteBtn();
                break;

            case CaptureImageType.NewPersonCaptured:
                LvFaceList.Enabled           = true;
                LvFaceList.Items[0].Selected = true;
                LvFaceList.Items[0].Checked  = true;
                BtnCancel.Enabled            = true;
                BtnStartPreview.Enabled      = false;
                UpdateSaveBtn();
                UpdateCheckImageBtn();
                BtnListPeople.Enabled  = false;
                BtnCaptureFace.Enabled = true;
                UpdateDeleteBtn();
                break;

            case CaptureImageType.UpdatePersonCaptured:
                LvFaceList.Enabled           = true;
                LvFaceList.Items[0].Selected = true;
                LvFaceList.Items[0].Checked  = true;
                BtnCancel.Enabled            = true;
                BtnStartPreview.Enabled      = false;
                UpdateSaveBtn();
                UpdateCheckImageBtn();
                BtnListPeople.Enabled  = false;
                BtnCaptureFace.Enabled = true;
                UpdateDeleteBtn();
                break;
            }
            TxtErrorMessage.Text = captureImageType.ToString();
        }