OpenCV中的错误类BackgroundSubtractorMOG2

时间:2014-11-23 14:45:59

标签: c++ opencv motion-detection background-subtraction

我遇到了与此主题BackgroundSubtractorMOG2 & OpenCV

相同的问题

在我使用opencv 2.4.9之前,我删除了opencv 3.0.0。现在当我使用类BackgroundSubtractorMOG2时,我就有了这个问题。

我该如何解决呢。我正在使用eclipse。求你帮帮我。

Error

我的源代码:

int main(int argc, char *argv[]) {
cv::Mat frame;
cv::Mat back;
cv::Mat fore;
cv::VideoCapture cap(0);
cv::BackgroundSubtractorMOG2 bg;
bg.set("nmixtures", 3);
//bg.bShadowDetection = false;
std::vector<std::vector<cv::Point> > contours;

cv::namedWindow("Frame");
cv::namedWindow("Background");

for (;;) {
    cap >> frame;
    bg.operator()(frame, fore);
    bg.getBackgroundImage(back);
    cv::erode(fore, fore, cv::Mat());
    cv::dilate(fore, fore, cv::Mat());
    cv::findContours(fore, contours, CV_RETR_EXTERNAL,
            CV_CHAIN_APPROX_NONE);
    cv::drawContours(frame, contours, -1, cv::Scalar(0, 0, 255), 2);
    cv::imshow("Frame", frame);
    cv::imshow("Background", back);
    if (cv::waitKey(30) >= 0)
        break;
}
return 0;}

1 个答案:

答案 0 :(得分:1)

const int nmixtures =3;
const bool bShadowDetection = false;
cv::BackgroundSubtractorMOG2 bg(nmixtures,bShadowDetection);

像这样更改代码。它会工作。