我最近在我的 ubuntu 14.10 系统中安装了 OpenCv 并且我正在运行一个程序并且在功能 cv::BackgroundSubtractorMOG2 中我遇到了一个错误。

错误是 cannot declare variable ‘bg’ to be of abstract type ‘cv::BackgroundSubtractorMOG2’ 为什么我面临这个错误

我的代码示例

int main(int argc, char *argv[]) {
    Mat frame;
    Mat back;
    Mat front;
    vector<pair<Point,double> > hand_middle;
    VideoCapture cap(0);
    BackgroundSubtractorMOG2 bg; //Here I am facing error
    bg.set("nmixtures",3);
    bg.set("detectShadows",false);
    //Rest of my code
    return 0;
}

最佳答案

api在opencv3.0中改变了,你将不得不使用:

cv::Ptr<BackgroundSubtractorMOG2> bg = createBackgroundSubtractorMOG2(...)
bg->setNMixtures(3);
bg->apply(img,mask);

关于c++ - 错误 : cannot declare variable ‘bg’ to be of abstract type ‘cv::BackgroundSubtractorMOG2’ in OpenCV 3,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28847289/

10-11 18:14