繁体   English   中英

Emgu CV QueryFrame方法是否异步?

[英]Is Emgu CV QueryFrame method asynchronous?

我目前正在使用EmguCV QueryFrame方法捕获帧。 代码在我的processFrame方法中是这样的:

using(Image<Bgr, Byte> imgOriginal = _capture.QueryFrame()){
    if(imgOriginal == null) return;
        using(Image<Gray, Byte> grayImg = imgOriginal.Convert<Gray, Byte>()){
            //some stuff with grayImg
        }
}

我面临的问题是我不断收到OutOfMemory异常。 通过对MemProfiler进一步检查,我发现名称空间SystemByte[,,]对象使用的内存成倍增加。 我能想到的唯一的Byte[,,]是捕获的BgrimgOriginal

这使我相信,即使using块中的代码尚未完成执行, Capture对象仍会继续查询新帧。 这是真的? 还是还有其他原因? 有什么办法解决这个问题?

任何帮助,将不胜感激。 谢谢。

您正在使用哪个版本的EMGU?

尝试这个:

Mat frame = new Mat();
_capture.Retrieve(frame, 0);

转换为灰度:

Mat grayFrame = new Mat();
CvInvoke.CvtColor(frame, grayFrame, ColorConversion.Bgr2Gray);

另外,您可以尝试在EMGU的示例部分中检查其工作方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM