将umat与BackgroundSubtractor结合使用会导致停止从相机接收帧

时间:2018-07-02 18:49:52

标签: c# .net opencv emgucv

我正在使用Emgu CV,我有一个程序可以从有线IP摄像机接收帧,并使用BackgroundSubtractor类减去背景。

过一会儿(这是随机的),它停止接收帧,这可能在5分钟内或几个小时后发生。

我已经从apply类中追溯到BackgroundSubtractor方法的问题。

这样称呼:_fgDetector.Apply(smoothedFrame, forgroundMask);两个参数都是Umats

当我使用相同的代码但使用 Mat 而不是Umat时,代码可以工作几天。

在Visual Studio诊断中发现使用Umat时,CPU使用率很低,这是由于卸载到GPU所预期的。使用Mat时,我发现CPU使用率要高得多。

有人可以解释/帮助解决此问题吗?这可能是Emgu / OpenCv中的错误吗?

如果您需要更多信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

我已经用更好的型号替换了视频卡,它是Readeon HD5450,现在正在运行ATI R920x。

较旧的卡具有1 gb的内存,而较新的卡具有更多的内存,速度也快得多。该程序现在运行约3周,到目前为止没有问题。

较早的版本具有“超内存”支持,该支持使用正常的系统内存来消耗ot的内存。也许这引起了问题。

简而言之:有了更好的视频卡,到目前为止没有问题。