cv 没有成员 BackgroundSubtractorMOG

cv has no member BackgroundSubtractorMOG

我是 opencv 的新手,并按照此处所述的说明安装它: http://docs.opencv.org/doc/tutorials/introduction/windows_install/windows_install.html#windows-installation 我使用了 "Installation by Making Your Own Libraries from the Source Files" 部分,效果很好(使用 Visual Studio 2013)。我能够 运行 基本命令,例如读取图像、写入图像、运行 边缘检测、视频处理等。 但是现在我尝试使用 BackgroundSubtractorMOG,但我得到的错误是 BackgroundSubtractorMOG 不是 cv 的成员。最简单的代码如下,我不知道从哪里开始。我在我的安装中遗漏了什么吗?有什么想法吗?

#include "stdafx.h"
#include<opencv2/opencv.hpp>

int main()
{
    cv::BackgroundSubtractorMOG bg;
    return 0;
}

您忘记包含 header

#include <background_segm.hpp>

参考:http://physics.nyu.edu/grierlab/manuals/opencv/classcv_1_1BackgroundSubtractorMOG.html

header 文件的路径可以是:/opencv2/video/background_segm.hpp

随着 opencv3.0,BackgroundSubtractorMOG 被移动到 opencv_contrib repo

要使用剩余的 BackgroundSubtractorMOG2 或 BackgroundSubtractorKNN,您必须使用:

Ptr<BackgroundSubtractorMOG2> bgm = createBackgroundSubtractorMOG2(...);