Emgu CV Blob Detection -Video Surveillance Example

I am trying to perform very basic flea detection without success. Just using the VideoSurveillance example ... it compiles and works fine, but doesn’t actually detect drops at all. The FGDetector seems to work well, so I seem to get a good foreground, but BlobTrackerAuto.Process hardly ever leads to blob detection ... even when a very noticeable blob appears in the foregroundMask image. Here is a code snippet showing how I capture and process an image.

void ProcessFrame(object sender, EventArgs e)
  {
     Image<Bgr, Byte> frame = _cameraCapture.QueryFrame();

     frame._SmoothGaussian(3); //filter out noises

     _detector.Update(frame);

     Image<Gray, Byte> foregroundMask = _detector.ForegroundMask;                

     _tracker.Process(frame, foregroundMask);

     foreach (MCvBlob blob in _tracker)
     {
        frame.Draw((Rectangle)blob, new Bgr(255.0, 255.0, 255.0), 2);
        frame.Draw(blob.ID.ToString(), ref _font, Point.Round(blob.Center), new Bgr(255.0, 255.0, 255.0));
     }

     Image<Bgr, Byte> frameDisplay = frame.Resize(imageBox1.Width, imageBox1.Height, INTER.CV_INTER_LINEAR, false);
     Image<Gray, Byte> fgMaskDisplay = foregroundMask.Resize(imageBox2.Width, imageBox2.Height, INTER.CV_INTER_LINEAR, false);

     imageBox1.Image = frameDisplay;
     imageBox2.Image = fgMaskDisplay;
  }

And this is a sample image from a program that shows (in my naive opinion) a very explicit blob that was not detected.

Screen shot from my program

, - blob ( ?), , .

.

+3

All Articles