如何从emgu cv的图像框中显示的图像流制作视频(.mp4 / .avi)?

  • 本文关键字:图像 视频 mp4 avi 显示 emgu cv c# emgucv
  • 更新时间 :
  • 英文 :


我正在尝试制作具有录音功能的人脸识别应用程序。它将像闭路电视摄像机一样,但具有面部识别功能。我使用emgu的图像框来显示我的网络摄像头的图像流。我的问题是,如何将图像流转换为视频文件,然后将其保存到本地目录?谢谢。

我已经尝试了一些代码来下载图像框框架。不幸的是,我只能将其作为图像文件获取。

我使用以下代码显示来自网络摄像头的图像流:

Capture grabber; //declaration
// initialization
grabber = new Capture();
grabber.QueryFrame();
Application.Idle += new EventHandler(FrameGrabber);

我在这里得到了人脸识别的代码:https://www.codeproject.com/Articles/239849/Multiple-face-detection-and-recognition-in-real

预期的输出是一个视频文件,但我只能得到一个图像文件。

我用了视频作家类。

"我的记录"按钮中的代码:

if(grabber == null)
            {
                return;
            }
            recording = true;
            int fps = Convert.ToInt32(grabber.GetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FPS));
            int foucc = CvInvoke.CV_FOURCC('X', 'V', 'I', 'D');
            int width = Convert.ToInt32(grabber.GetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_WIDTH));
            int height = Convert.ToInt32(grabber.GetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_HEIGHT));
            writer = new VideoWriter(path+".avi", foucc, 10, 364, 293, true);

我的止损记录按钮中的代码:

        recording = false;
        if(writer != null)
        {
            writer.Dispose();
        }

"我的选择目录"按钮中的代码:

        SaveFileDialog save = new SaveFileDialog();
        if(save.ShowDialog() == DialogResult.OK)
        {
            path = save.FileName;
            btnRecord.Enabled = true;
            btnStop.Enabled = true;
        }

我发现的另一种解决方法是使用屏幕录制库。

最新更新