我有一个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命令....)
否则什么?
你假设opencv 2.4分支和3.0(主)分支之间存在版本问题是正确的。
API有一点变化:
-
在2.4中你可以创建一个BackgroundSubtractorMOG2(在堆栈或堆上,无论如何)
-
在3.0中你必须使用
Ptr<BackgroundSubtractorMOG2>
,并调用createBackgroundSubtractorMOG2()
来初始化它