BackgroundSubtractorMOG2

BackgroundSubtractorMOG2

我正在使用BackgroundSubtractorMOG2作为下面的代码

BackgroundSubtractorMOG2 bgr;
double learningRate = 0.05;
(bgr)(img_input, img_mask, learningRate);

但是效果不好,这里有很多噪声前景像素(下图)

当我使用BackgroundSubtractorMOG作为下面的代码时
BackgroundSubtractorMOG bgr(81, 3, 0.1);
double learningRate = 0.05;
(bgr)(img_input, img_mask, learningRate);

结果更好,但是这种方法比较慢(下图)

我想使用BackgroundSubtractorMOG2,因为它速度更快,但结果却非常杂音。

有人可以告诉我使用BackgroundSubtractorMOG2的正确方法吗?

谢谢!

T&T

最佳答案

为什么不对输出使用形态运算?

vector<vector<Point >> contours;
Mat kernel=getStructuringElement(MORPH_ELLIPSE,Size(5,5));
Mat kernel2=getStructuringElement(MORPH_ELLIPSE,Size(10,10));
morphologyEx(img_mask,img_mask,CV_MOP_ERODE,kernel);
morphologyEx(img_mask,img_mask,CV_MOP_DILATE,kernel2);

findContours(img_mask,contours,CV_RETR_TREE,CV_CHAIN_APPROX_SIMPLE);
drawContours(img_input,contours,-1,cv::Scalar(255,255,255),2);
output=img_input.clone();

关于c++ - BackgroundSubtractorMOG2很吵吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25757084/

10-14 08:18