public ForegroundDetector(BlobImage image) { Finished = true; Stop = false; _foregroundDetector = new BackgroundSubtractorMOG2(200, 400, false); _bImage = image; }
public SalmonCounter() { InitializeComponent(); _capture = new Capture(videoOne); counter = new Counter(_capture.Width); bImage = new BlobImage(); fgDetector = new ForegroundDetector(bImage); sTracker = new SalmonTracker(bImage, counter); watch = new Stopwatch(); time = new TimeSpan(); FPS = (int)_capture.GetCaptureProperty(Emgu.CV.CvEnum.CapProp.Fps); frameCount = (int)_capture.GetCaptureProperty(Emgu.CV.CvEnum.CapProp.FrameCount); pictureBox1.Width = _capture.Width; pictureBox1.Height = _capture.Height; show.Width = _capture.Width; show.Height = _capture.Height; //msec between frames msec = (int)(1000 / FPS); //set the event handler _capture.ImageGrabbed += grabImage; _capture.Start(); watch.Start(); _frame = new Mat(); //Start foregroundSegmenter tread and salmon tracker thread backgroundSubtractorThread = new Thread(fgDetector.detect); backgroundSubtractorThread.Start(); sTrackerThread = new Thread(sTracker.updateSalmons); sTrackerThread.Start(); }