BackgroundSubtractorMOG2的遮罩

问题描述:

如何告诉BackgroundSubtractorMOG2将哪些像素更新为背景模型以及哪些像素不应该。BackgroundSubtractorMOG2的遮罩

当对象进入场景并停止几十秒时,我面临问题,对象将被吸收到背景模型中。

我想降低学习速度或停止关于特定停止对象的学习,但我该怎么做? BackgroundSubtractorMOG2是否支持在其更新函数中使用掩码?

我正在使用OpenCV 2.4.1。

谢谢, Alvin。

+0

好问题...我面对完全一样的问题。 –

+0

对OpenCV背景减法算法的高级反馈没有机制。我对某种通用更新功能的建议将包括更新掩码。 – killogre

BackgroundSubtractorMOG2不支持屏蔽输入。但是,如果您知道要屏蔽哪些像素,则可以屏蔽输出:假设您调用subtractor(input, fg, learningRate);,并且您知道对象现在在哪里(可能是您一直使用均值漂移或模式识别来跟踪它) fg |= mask;其中mask是其中,正如你从某个不同的来源所了解的那样,对象是。

+0

这有助于跟踪被吸收到背景中的前景。但这不是我正在寻找的答案,我想尽可能保持我的背景模型清洁。 –

+1

即使我的第一句话不是你寻求的答案吗?如果你的物体是这样的,它们进来并保持静止,MOG2模型不足以追踪它们。你最好将MOG2用于初始物体检测和一些目标跟踪算法,以便跟踪它。或者我误解你的问题? – artm

您可以通过设置学习率降至相当低的做到这一点

即:

mog(input, output, 0.00000001);