Beispiel #1
0
 private void Window_Closing_1(object sender, System.ComponentModel.CancelEventArgs e)
 {
     if (connectdev != null && connectdev.IsAlive)
     {
         connectdev.Abort();
     }
     detector.Dispose();
 }
        private void OnFrameCaptured(object sender, EventArgs e)
        {
            lock (_locker)
                if (isReady == false)
                {
                    return;
                }

            if (isCloseRequested)
            {
                drawWindow.Close();
                resultWindow.NotifyClose();
                capture.Stop();
                capture.Dispose();
                cameraFrame.Dispose();
                grayFrame.Dispose();
                detector.Dispose();
                this.Close();
                return;
            }

            isReady = false;
            capture.Retrieve(cameraFrame, 0);
            if (captureOutput != null && isStarted)
            {
                captureOutput.Write(cameraFrame);
            }
            frameReadTime = DateTime.Now;
            if (isFirstFrame)
            {
                isFirstFrame = false;
                OnFirstFrame(cameraFrame.Width, cameraFrame.Height);
            }

            CvInvoke.CvtColor(cameraFrame, grayFrame, Emgu.CV.CvEnum.ColorConversion.Bgr2Gray);

            if (App.ShouldEqualizeHist)
            {
                CvInvoke.EqualizeHist(grayFrame, grayFrame);
            }
            // CvInvoke.GaussianBlur(_grayFrame, _grayFrame, _gaussianSize, 0);

            FindFaceFeatures();
        }