我正在使用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/