如何使用OpenCV和Java从(视频)图像中删除背景?

时间:2013-07-21 07:11:31

标签: java opencv background-subtraction

我刚开始学习 OpneCV 并以Java开始我的项目。由于最近发布了 OpenCV 的Java包装器,因此没有太多可用的文档。

我正在尝试将背景和前景与通过网络摄像头捕获的视频分开。我尝试在java中使用 BackgroundSubtractorMog 类但未能获得所需的输出。

这是我的代码:

VideoCapture capture = new VideoCapture(0);
  Mat camImage = new Mat();

    if (capture.isOpened()) {
        while (true) {
            capture.read(camImage);

            BackgroundSubtractorMOG backgroundSubtractorMOG=new BackgroundSubtractorMOG();
            Mat fgMask=new Mat();
            backgroundSubtractorMOG.apply(camImage, fgMask,0.1);

            Mat output=new Mat();
            camImage.copyTo(output,fgMask);

            displayImageOnScreen(output);
           }
        }

此代码仅提供黑屏输出。

2 个答案:

答案 0 :(得分:1)

移动此行:

BackgroundSubtractorMOG backgroundSubtractorMOG=new BackgroundSubtractorMOG();

走出循环。

答案 1 :(得分:0)

不幸的是,截至目前,您无法使用java中的任何BackgroundSubtractorXXX

(包装器的问题,代码在那里,但缺少创建者功能)

已经有了拉动请求,希望很快就会被接受。