BetulK44 Ответов: 0

Обнаружение движения захвата кадра Emgucv


извините за мой английский, я хочу получить захват кадра при перемещении по загруженному видео, как я могу это сделать? Например, есть способ, взять кадр захвата, пока машина находится в пути, но,
не делайте кадровый захват, пока дорога пуста. мои коды выглядят следующим образом;

VideoCapture capture = null;
  List<Mat> image_array = new List<Mat>();

        private void ProcessFrame(object sender, EventArgs arg)
        {
        Mat frame = new Mat();
        capture.Retrieve(frame, 0);
        ımageBox1.Image = frame;
        Thread.Sleep((int)capture.GetCaptureProperty(Emgu.CV.CvEnum.CapProp.Fps));
        try
        {
            string time = DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_ffff");
            frame = capture.QueryFrame();
            Bitmap captureBitmap = new Bitmap(frame.Bitmap);
            captureBitmap.Save(@"D:\FrameCapture\Capture-" + time + ".jpg", ImageFormat.Jpeg);
            if (frame != null)
            {
                image_array.Add(frame);
            }
            else
            {
                Application.Idle -= ProcessFrame;
            }
        }
        catch (Exception)
        {
        }
    }


Я хочу что-то вроде этого;

if(moved)
{
captureBitmap.Save(......)
}


как я могу это сделать?

Что я уже пробовал:

for (int i = 0; i < image_array.Count; i++)
                {

                    CvInvoke.AbsDiff(image_array[i], image_array[i + 1], diffFrame);

                      if (diffFrame!=null)
                      {
                    croppedBitmap.Save(@"D:\FrameCapture\Capture-" + time + ".jpg", ImageFormat.Jpeg);

                }
                }

0 Ответов