コード例 #1
0
ファイル: Form1.cs プロジェクト: JunKaiJuang/ProjectBackUp
 /// <summary>
 /// 抓取影像Thread
 /// </summary>
 private void ThreadFunc()
 {
     while (!_faceService.IsFaceDetected() || _view.IsContinued())
     {
         if (!_view.EnableByCam())
         {
             using (var imageFrame = _capture.QueryFrame().ToImage <Bgr, Byte>())
             {
                 if (imageFrame != null)
                 {
                     try
                     {
                         imageFrame.Resize(640, 480, Emgu.CV.CvEnum.Inter.Cubic);//縮小圖像來源大小
                         _mainImageBox.Image     = _faceService.FaceDetection(imageFrame);
                         _cropFaceImageBox.Image = _faceService.GetFaceImage();
                     }
                     catch (Exception ex)
                     {
                         MessageBox.Show(ex.Message, "");
                         throw;
                     }
                 }
             }
         }
     }
 }
コード例 #2
0
ファイル: Form1.cs プロジェクト: JunKaiJuang/ProjectBackUp
        public ManageForm()
        {
            InitializeComponent();
            _faceService = new FaceDP();
            _view        = new view();
            _capture     = new Capture();
            _capture.Stop();

            RefreshControl();
            _cropFaceImageBox.Image = _faceService.GetFaceImage();
            _isTraining             = false;

            //video capture thread
            //StartCaptureThread();

            //backgroundWorker
            _worker                     = new BackgroundWorker();
            _worker.DoWork             += Training;
            _worker.RunWorkerCompleted += TrainComplete;
        }
コード例 #3
0
        public ActionResult Submit(HttpPostedFileBase file)
        {
            _faceService = new FaceDP(Server.MapPath("~"));

            ViewBag.NullFile      = false;
            ViewBag.WrongFileType = false;

            if (file == null)
            {
                ViewBag.NullFile = true;
                return(View());
            }
            if (file.ContentType != "image/jpeg")
            {
                ViewBag.WrongFileType = true;
                return(View());
            }

            //翻轉處理
            //Bitmap originImg = ConvertFileToImage(files).ToBitmap();
            var originImg = FileToImageRotate(file);


            //傳入影像做臉部偵測
            //Image<Bgr, byte> newImage = _faceService.FaceDetection(ConvertFileToImage(files));
            Bitmap bitmap   = _faceService.FaceDetection(originImg).Resize(450, 800, Emgu.CV.CvEnum.Inter.Linear).ToBitmap();
            Bitmap cropFace = _faceService.GetFaceImage().ToBitmap();

            //偵測完的人臉做辨識
            int       userId = _faceService.RecognizeFace();
            DataTable user   = _faceService.GetPersonInfo(userId);

            //轉換成bitmap格式,加上辨識後結果於左上角
            //Bitmap bitmap = newImage.ToBitmap();
            //Bitmap cropFace = _faceService.GetFaceImage().ToBitmap();

            //繪製辨識資訊
            //Graphics draw = Graphics.FromImage(bitmap);
            //draw.SmoothingMode = SmoothingMode.AntiAlias;
            //draw.InterpolationMode = InterpolationMode.HighQualityBicubic;
            //draw.PixelOffsetMode = PixelOffsetMode.HighQuality;
            //draw.FillRectangle(Brushes.Black, new Rectangle(0, 0, 150, 35));
            //draw.DrawString(userNameLabel, new Font("微軟正黑體", 18, FontStyle.Bold), Brushes.Red, new RectangleF(0, 0, 150, 35));
            //draw.Flush();

            //轉換影像成Stream
            var stream = new MemoryStream();

            bitmap.Save(stream, ImageFormat.Jpeg);
            var faceStream = new MemoryStream();

            cropFace.Save(faceStream, ImageFormat.Jpeg);

            //to base64
            // Convert byte[] to Base64 String
            var    imageBytes   = stream.ToArray();
            string base64String = Convert.ToBase64String(imageBytes);

            ViewBag.Image = base64String;

            imageBytes   = faceStream.ToArray();
            base64String = Convert.ToBase64String(imageBytes);

            ViewBag.FaceImage = base64String;

            //info
            ViewBag.UserName      = user.Rows[0]["userName"].ToString();
            ViewBag.UserGender    = user.Rows[0]["gender"].ToString();
            ViewBag.UserBirthDate = Convert.ToDateTime(user.Rows[0]["birthDate"]).ToString("yyyy/MM/dd");
            ViewBag.UserTag       = user.Rows[0]["tag"].ToString();
            DataTable dt = _faceService.GetGenderCode();

            ViewBag.GenderCode = _webModel.MapCodeData(dt);
            return(View());
        }