如何使用CV :: BackgroundSubtractorMOG OpenCV中?(How to

2019-07-29 06:46发布

我使用OpenCV2.2实现运动目标检测与背景扣除的方法。 我用的高斯混合模型(GMM)方法将背景参照图像进行建模。

我使用类品种直接将前景像素(或前景蒙):: BackgroundSubtractorMOG在OpenCV2.2提供。 这是方便,但由CV返回前景蒙:: BackgroundSubtractorMOG并不如我预期的那样好。 此外,似乎CV :: BackgroundSubtractorMOG执行较差比GMM的方法在OpenCV1.0提供C语言写的。

以下是我在OpenCV2.2代码:

cv::BackgroundSubtractorMOG mog;
mog(frame, fgMask, 0.01);

所以,我有没有用在一个错误的方式方法?

顺便说一句,不CV :: BackgroundSubtractorMOG对前景像素执行阴影去除?

非常感谢你。

Answer 1:

当您创建MOG,你不定义任何参数,所以它使用默认参数创建的。 在这里你有每个参数的描述,也许就是这样。 尝试用3,4个5高斯。

此功能不perforn阴影去除,但你有这个其他功能一样。 祝好运!



Answer 2:

有哪些去除背景(检测前景)远高于OpenCV的标准执行GM​​M更好最近的算法。

例如,有在所述的基于块的分类器级联的方法本期刊文章 ,其基于C ++的沿源代码 。



Answer 3:

FX对回答这个线程给出样品参数

backgroundSubtractor = new BackgroundSubtractorMOG(3, 4, 0.8);


Answer 4:

我会建议使用下面的设置即可。 然后,你就可以开始调整你的参数:

cv::BackgroundSubtractorMOG2 mog;
mog(rawFrame,foregroundFrame,-1);
mog.set("nmixtures", 3);
mog.set("detectShadows",1);   

在这个例子中我设定3个高斯混合物MOG2减法器。 我还启用了阴影检测。



文章来源: How to use cv::BackgroundSubtractorMOG in OpenCV?