我在另一台无法编译的笔记本电脑中导出了qtcreator + opencv项目
xxx/dialog.h:63: error: cannot declare field 'Dialog::pMOG' to be of abstract type 'cv::BackgroundSubtractorMOG2'
xxx/ note: because the following virtual functions are pure within 'cv::BackgroundSubtractorMOG2':
.......
.......
但是在我的主要archlinux pc中可以编译这个
我怀疑有不同的opencv版本: 我的arch版本是2.4.8,我的笔记本电脑版本是3.0.0(通过pkg-config --modversion opencv命令....)
不然是什么?
答案 0 :(得分:0)
你是正确的假设opencv 2.4分支和3.0(主)分支之间的版本问题。
api在那里发生了一些变化:你可以创建一个BackgroundSubtractorMOG2(无论是在堆栈还是堆上)
您必须使用Ptr<BackgroundSubtractorMOG2>
,并致电createBackgroundSubtractorMOG2()
进行初始化