错误:无法在OpenCV 3中将变量'bg'声明为抽象类型'cv :: BackgroundSubtractorMOG2'

Dee*_*shu 4 c++ opencv

我最近在我的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;
}
Run Code Online (Sandbox Code Playgroud)

ber*_*rak 5

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

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