void repeat1(PictureBox p, string url, int framenum) { while (true) { framenum++; WebRequest requestPic = WebRequest.Create(url); WebResponse responsePic = requestPic.GetResponse(); if (framenum % 3 == 0) { classification s = new classification(p, Image.FromStream(responsePic.GetResponseStream())); lock (this) { Thread.Sleep(3); mynewframe dm = new mynewframe(loadmyvideo); IAsyncResult m = dm.BeginInvoke(s, null, null); p.Image = dm.EndInvoke(m); } } else { p.Image = Image.FromStream(responsePic.GetResponseStream()); } } }
private Bitmap loadmyvideo(Object s) { classification n = (classification)s; currentFrame = new Image <Bgr, Byte>((Bitmap)n.myimg); if (currentFrame != null) { Image <Gray, byte> Grayframe = currentFrame.Convert <Gray, byte>();//.Flip(Emgu.CV.CvEnum.FLIP.HORIZONTAL); var faces = Grayframe.DetectHaarCascade(Haar, 1.2, 8, HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(pictureBox1.Height / 10, pictureBox1.Width / 10))[0]; var faces2 = Grayframe.DetectHaarCascade(Haar2, 1.2, 8, HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(pictureBox1.Height / 10, pictureBox1.Width / 10))[0]; var faces3 = Grayframe.DetectHaarCascade(Haar3, 1.2, 8, HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(pictureBox1.Height / 10, pictureBox1.Width / 10))[0]; bool x = false, y = false; foreach (var face in faces) { currentFrame.Draw(face.rect, new Bgr(Color.Red), 2); result = currentFrame.Copy(face.rect).Convert <Gray, byte>().Resize(50, 50, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC); x = true; } if (x) { String name = ""; foreach (MCvAvgComp f in faces) { if (trainingImages.ToArray().Length != 0) { MCvTermCriteria termCrit = new MCvTermCriteria(counter, .001); EigenObjectRecognizer recognizer = new EigenObjectRecognizer(trainingImages.ToArray(), labels.ToArray(), 2000, ref termCrit); name = recognizer.Recognize(result); currentFrame.Draw(name, ref font, new Point(f.rect.X - 2, f.rect.Y - 2), new Bgr(Color.GreenYellow)); if (name.Equals("unknown")) { player.Play(); } } } } if (!x) { foreach (var face in faces2) { currentFrame.Draw(face.rect, new Bgr(Color.Red), 2); result = currentFrame.Copy(face.rect).Convert <Gray, byte>().Resize(50, 50, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC); y = true; } if (y) { String name1 = ""; foreach (MCvAvgComp f in faces2) { if (trainingImages.ToArray().Length != 0) { MCvTermCriteria termCrit = new MCvTermCriteria(counter, .001); EigenObjectRecognizer recognizer = new EigenObjectRecognizer(trainingImages.ToArray(), labels.ToArray(), 2000, ref termCrit); name1 = recognizer.Recognize(result); currentFrame.Draw(name1, ref font, new Point(f.rect.X - 2, f.rect.Y - 2), new Bgr(Color.GreenYellow)); if (name1.Equals("unknown")) { //System.Media.SoundPlayer player = new System.Media.SoundPlayer(@"alarm.wav"); player.Play(); } } } } bool z = false; if (!y) { foreach (var face in faces3) { currentFrame.Draw(face.rect, new Bgr(Color.Red), 2); result = currentFrame.Copy(face.rect).Convert <Gray, byte>().Resize(50, 50, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC); z = true; } } if (z) { String name = ""; foreach (MCvAvgComp f in faces3) { if (trainingImages.ToArray().Length != 0) { MCvTermCriteria termCrit = new MCvTermCriteria(counter, .001); EigenObjectRecognizer recognizer = new EigenObjectRecognizer(trainingImages.ToArray(), labels.ToArray(), 2000, ref termCrit); name = recognizer.Recognize(result); currentFrame.Draw(name, ref font, new Point(f.rect.X - 2, f.rect.Y - 2), new Bgr(Color.GreenYellow)); if (name.Equals("unknown")) { // System.Media.SoundPlayer player = new System.Media.SoundPlayer(@"alarm.wav"); player.Play(); } } } } } } return(currentFrame.Bitmap); }