OpenCv:u!=0 从视频文件中读取帧时出现异常
OpenCv:u!=0 Exception while reading frames from video file
我正在尝试从视频文件中获取帧,但在读取帧时,抛出了 OpenCv:u!=0 异常。我正在使用 Emgu.Cv dll。
我写的代码如下:
private void GetVideoFrames(String Filename)
{
try
{
captureFrame = new Capture(Filename);
bool Reading = true;
while (Reading)
{
using (frame = captureFrame.QueryFrame().ToImage<Bgr, Byte>())
{
if
if (frame != null)
{
imageBox1.Image = frame;
frameCount++;
}
else
{
Reading = false;
}
}
}
}
谁能提供一些帮助。
可能是你需要释放内存。前任。 frame.Release();
根据我的说法,您应该复制从相机中抓取的帧。你可以使用以下代码。它已经过测试并且没有错误。
Capture captureFrame = new Capture(Filename);
Mat frame = new Mat();
Mat frame_copy = new Mat();
//Capture Image from file
private void GetVideoFrames(String Filename)
{
try
{
captureFrame = new Capture(Filename);
captureFrame.ImageGrabbed += ShowFrame;
captureFrame.Start();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
//Show in ImageBox
private void ShowFrame(object sender, EventArgs e)
{
captureFrame.Retrieve(frame);
frame_copy = frame;
imageBox1.Image = frame_copy ;
}
我正在尝试从视频文件中获取帧,但在读取帧时,抛出了 OpenCv:u!=0 异常。我正在使用 Emgu.Cv dll。 我写的代码如下:
private void GetVideoFrames(String Filename)
{
try
{
captureFrame = new Capture(Filename);
bool Reading = true;
while (Reading)
{
using (frame = captureFrame.QueryFrame().ToImage<Bgr, Byte>())
{
if
if (frame != null)
{
imageBox1.Image = frame;
frameCount++;
}
else
{
Reading = false;
}
}
}
}
谁能提供一些帮助。
可能是你需要释放内存。前任。 frame.Release();
根据我的说法,您应该复制从相机中抓取的帧。你可以使用以下代码。它已经过测试并且没有错误。
Capture captureFrame = new Capture(Filename);
Mat frame = new Mat();
Mat frame_copy = new Mat();
//Capture Image from file
private void GetVideoFrames(String Filename)
{
try
{
captureFrame = new Capture(Filename);
captureFrame.ImageGrabbed += ShowFrame;
captureFrame.Start();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
//Show in ImageBox
private void ShowFrame(object sender, EventArgs e)
{
captureFrame.Retrieve(frame);
frame_copy = frame;
imageBox1.Image = frame_copy ;
}