示例#1
0
        private Image <Bgr, byte> FindFacesIfNeeded(Image <Bgr, byte> img, bool isDetectorEn)
        {
            Image <Bgr, byte> imageTemp = img;

            // Если не нужно искать лица
            if (!isDetectorEn)
            {
                return(imageTemp);
            }

            using (var curCv = new EmguCv())
            {
                var grayImage = img.Convert <Gray, Byte>();

                var facesList = curCv.GetFaces(grayImage);
                if (facesList.Count > 1)
                {
                    MessageBox.Show(@"Ошибка поиска или в кадре несколько лиц!");
                    curCv.DrawRectangleOnImage(facesList, ref imageTemp, Color.Blue);
                    button_Ok.Enabled = false;
                }
                else
                {
                    button_Ok.Enabled = true;
                }
                curCv.DisposeAll();
            }
            return(imageTemp.Clone());
        }
示例#2
0
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (comboBox1.SelectedItem == null)
            {
                return;
            }

            _myCv.DisposeAll();
            _myCv = new EmguCv();

            int numCam = Int32.Parse(comboBox1.SelectedItem.ToString());


            if (!_myCv.TryInitCamera(numCam))
            {
                MessageBox.Show(@"Ошибка камеры. Попробуйте переподключить камеру");
                return;
            }
            _myCv.StartCapturing();
            _myCv.FrameChanged        += RunTimePhotoFace;
            button_TakePicture.Enabled = true;
        }
示例#3
0
 public SnapshotForm()
 {
     InitializeComponent();
     _myCv = new EmguCv();
     _capturedPersonImg = null;
 }