将视频帧保存为图像c#,Emgu cv

时间:2017-03-12 07:05:32

标签: c# image-processing emgucv

我正在尝试将视频帧保存到文件夹但它无效。我正在为这个项目使用emgu cv图像处理库。

public void ProcessFrame(object sender, EventArgs arg)
{
    Mat mat = new Mat();

    capture.Retrieve(mat);

    FrameRate = capture.GetCaptureProperty(Emgu.CV.CvEnum.CapProp.Fps);
    Thread.Sleep((int)(1000.0 / FrameRate));          

    imageBox1.Image = mat;

    if (mat != null)
    {
        mat.Save(@"C:\Desktop\images");
    }
    else
    {
        MessageBox.Show("null image");
    }

    //GetVideoFrames1();
}

1 个答案:

答案 0 :(得分:0)

如果您使用的是EmguCV,我强烈建议您使用Emgu自己的VideoWriter(http://www.emgu.com/wiki/files/1.3.0.0/html/3fb90645-ecc4-0c4e-b238-6d0ca38f4ebc.htm),这样您就可以创建视频文件并在收到新Mat时连续写入,即

VideoWriter writer = new VideoWriter(filePath + @"\" + fileName + ".avi", yourCodec, fps, size, true);
for(;;)
{
    Mat image = getNextFrame();
    writer.Write(frame);
}