2

我有以下代码。

cv::VideoCapture capture;
cv::Mat image;
cv::Mat foregroundMask
cv::BackgroundSubtractorMOG2 backgroundModel;

// update background model
for(int i = 0; i < 10; ++i)
{
    capture >> image;
    backgroundModel(image, foregroundMask);
}

//clear background model
// TODO   

// update background model    
for(int i = 0; i < 10; ++i)
{
    capture >> image;
    backgroundModel(image, foregroundMask);
}

如何清除背景模型并从头开始重新更新?就像之前没有更新过一样。替换上面代码中 TODO 部分的代码应该是什么?

4

1 回答 1

3

调用void initialize(Size frameSize, int frameType);方法。

//clear background model
backgroundModel.initialize(image.size(), image.type());

根据源代码thie方法将清除内部模型。

于 2013-11-06T18:23:18.383 回答