我在C#中使用emgu进行摄像头捕获以下代码:
//video capture
private Capture videoCapture = null; //takes images from camera as image frames
private Image<Bgr, Byte> videoCaptureImageFrame;
private Image<Bgr, Byte> videoCaptureResizedFrame;
//video capture
private void ProcessFrame(object sender, EventArgs arg)
{
try
{
videoCaptureImageFrame = videoCapture.QueryFrame().ToImage<Bgr, Byte>();
if (videoCaptureImageFrame != null)
{
videoCaptureResizedFrame = videoCaptureImageFrame.Resize(960, 540, Emgu.CV.CvEnum.Inter.Cubic);
VideoCapturePictureBox.Image = videoCaptureResizedFrame.ToBitmap();
}
}
catch (Exception ex)
{
MessageBox.Show("Video capture error #1: " + ex.Message.ToString());
}
}
public void VideoCaptureReleaseData()
{
if (videoCapture != null)
videoCapture.Dispose();
}
//video capture
private void MainForm_Load(object sender, EventArgs e)
{
//Dispose of Capture if it was created before
if (videoCapture != null) videoCapture.Dispose();
//video capture
if (videoCapture == null)
{
try
{
videoCapture = new Capture(0);
videoCapture.SetCaptureProperty(Emgu.CV.CvEnum.CapProp.FrameWidth, 1920);
videoCapture.SetCaptureProperty(Emgu.CV.CvEnum.CapProp.FrameHeight, 1080);
videoCapture.SetCaptureProperty(Emgu.CV.CvEnum.CapProp.FrameCount, 25);
Application.Idle += ProcessFrame;
}
catch (NullReferenceException excpt)
{
MessageBox.Show("Video capture error #2: " + excpt.Message);
}
}
//video capture
}
这段代码工作正常但我可以看到Visual Studio 2015不时显示进程内存消耗2GB的数据。
有时我得到以下错误:
&#34;视频捕获错误#1:opencv:u!= 0&#34;
和应用程序停止显示任何相机输出。
我认为上面的代码中有一些内存泄漏 这很奇怪,因为我根据教程编写了这段代码 你能帮我解决一下这段代码的错误吗?