Uninstall Opencv Emgu C #

So far, I managed to get my program to work and detect the face, and now what I want to do is extract the area and display the image in a new window, which I added and after that, I want to add photos to the database and compare the detected faces with them. Therefore please help

private void ProcessFrame(object sender, EventArgs arg) { Image<Bgr, Byte> frame = _capture.QueryFrame(); Image<Gray, Byte> gray = frame.Convert<Gray, Byte>(); //Convert it to Grayscale //normalizes brightness and increases contrast of the image gray._EqualizeHist(); //Read the HaarCascade objects HaarCascade face = new HaarCascade("haarcascade_frontalface_alt_tree.xml"); HaarCascade eye = new HaarCascade("haarcascade_eye.xml"); //Detect the faces from the gray scale image and store the locations as rectangle //The first dimensional is the channel //The second dimension is the index of the rectangle in the specific channel MCvAvgComp[][] facesDetected = gray.DetectHaarCascade( face, 1.1, 10, Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_ROUGH_SEARCH, new Size(20, 20)); foreach (MCvAvgComp f in facesDetected[0]) { //draw the face detected in the 0th (gray) channel with blue color frame.Draw(f.rect, new Bgr(Color.Blue), 2); /* //Set the region of interest on the faces gray.ROI = f.rect; MCvAvgComp[][] eyesDetected = gray.DetectHaarCascade( eye, 1.1, 10, Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_ROUGH_SEARCH, new Size(20, 20)); gray.ROI = Rectangle.Empty; foreach (MCvAvgComp e in eyesDetected[0]) { Rectangle eyeRect = e.rect; eyeRect.Offset(f.rect.X, f.rect.Y); frame.Draw(eyeRect, new Bgr(Color.Red), 2); }*/ } pictureBox1.Image = frame.ToBitmap();Application.DoEvents(); } private void button1_Click(object sender, EventArgs e) { #region if capture is not created, create it now if (_capture == null) { try { _capture = new Capture(); } catch (NullReferenceException excpt) { MessageBox.Show(excpt.Message); } } #endregion if (_capture != null) { if (_captureInProgress) { //stop the capture button1.Text = "Start Capture"; Application.Idle -= ProcessFrame; } else { //start the capture button1.Text = "Stop"; Application.Idle += ProcessFrame; } _captureInProgress = !_captureInProgress; } } 
+4
source share
1 answer

I managed to do this, but I am posting this answer to help others if they are in the same problem.

 gray.ROI = f.rect; 

and then you can assign gray to any image window, this will only show the detected area

+5
source

All Articles