使用来自实时摄像机馈送的OpenCV MOG进行背景减法

时间:2014-08-06 13:06:47

标签: c++ opencv webcam background-subtraction

我正在学习OpenCV并且我有很多乐趣,但现在我遇到了一个问题,我正在尝试使用背景减法算法来检测任何变化。

我遵循了this教程,我设法让它能够检测视频文件(AVI)中的更改。

我现在遇到的问题是它往往会错误地减去背景噪音和其他小变化,而是用白色填充整个屏幕。

Here是我在实时摄像头上实现的MOG算法,但相关部分是这样的:

    VideoCapture cap;
    if (argc > 1)
        cap.open(argv[1]);
    else
        cap.open(0);
    cap.set(CV_CAP_PROP_FOURCC ,CV_FOURCC('D', 'I', 'V', '3') );
........
    Mat frame, fgMaskMOG;

    Ptr<BackgroundSubtractor> pMOG = new BackgroundSubtractorMOG();
    for (;;)
    {
        if(!cap.read(frame)) {
            cerr << "Unable to read next frame." << endl;
            continue;
        }
        // process the image to obtain a mask image.
        pMOG->operator()(frame, fgMaskMOG);

        std::string time = getDateTime();
        cv::rectangle(frame,cv::Rect(0,cap.get(CV_CAP_PROP_FRAME_HEIGHT)-25,290,20),cv::Scalar(255,255,255),-1);
        cv::putText(frame,time,cv::Point(0,cap.get(CV_CAP_PROP_FRAME_HEIGHT)-5),1,1.5,cv::Scalar(0,0,0),2);
........
        // show image.
        imshow("Image", frame);
        imshow("Debug",fgMaskMOG);
        int c = waitKey(30);
        if (c == 'q' || c == 'Q' || (c & 255) == 27)
            break;
    }

如您所见,此实现适用于视频文件: image description http://answers.opencv.org//upfiles/14072745951051408.png image description http://answers.opencv.org//upfiles/14072746351663485.png
但是当我尝试在现场摄像机上使用MOG时,这就是结果: image description http://answers.opencv.org//upfiles/14072748868325599.png image description http://answers.opencv.org//upfiles/14072749039556545.png

修改

 预期结果:我的期望与视频文件相同(参见上面的图片一和二)。
实际结果:实际结果远远超出我的预期结果,产生了很多噪音(即没有过滤掉),当一个人把东西放在相机前面时,它会是黑色而不是白色(反向)从视频文件的结果)
- - - - 系统详细信息 - - - -
操作系统: Windows x64bit
可提供内存: 3890 MB
WEBCAM:我在Satellite C660 TOSHIBA笔记本电脑上使用内置网络摄像头。
编译器:
image description http://answers.opencv.org//upfiles/14074106918566591.png Microsoft Visual Studio Express 2012 for Windows桌面
image description http://answers.opencv.org//upfiles/14074106918566591.png版本11.0.61030.00更新4
image description http://answers.opencv.org//upfiles/14074106918566591.png Microsoft .NET Framework
image description http://answers.opencv.org//upfiles/14074106918566591.png版本4.5.50948
OpenCV版本: OpenCV V. 2.4.9,专为Windows打造,从SourceForge下载。
输出 cv::getBuildInformation() OpenCV_BUILD.txt
Microsoft Visual Studio项目属性表: OpenCV Project Property Sheet

0 个答案:

没有答案