在opencv java中实现背景减法,以便从网络摄像头输入视频?

时间:2016-02-03 06:31:11

标签: java opencv webcam background-subtraction

我想在静态背景中提取单独移动人的前景蒙版。如何在open-CV java中实现它?

package com.java.opencv;

import org.opencv.core.Mat;
import org.opencv.video.BackgroundSubtractor;
import org.opencv.video.BackgroundSubtractorMOG2;
import org.opencv.videoio.VideoCapture;

public class HelloCV {
    public static void main(String[] args){
        VideoCapture capture = new VideoCapture(0);
          Mat camImage = new Mat();
          BackgroundSubtractorMOG2 backgroundSubtractorMOG=new BackgroundSubtractorMOG2();
            if (capture.isOpened()) {
                while (true) {
                    capture.read(camImage);


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

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

                    //displayImageOnScreen(output);
                   }
                }
    }
}

我在这一行收到错误。

BackgroundSubtractorMOG2 backgroundSubtractorMOG=new BackgroundSubtractorMOG2();
  

构造函数BackgroundSubtractorMOG2()未定义

无法找到这些方法的适当文档

1 个答案:

答案 0 :(得分:5)

他们删除了上一版本中的构造函数,使用它:

BackgroundSubtractorMOG2 mog2 = Video.createBackgroundSubtractorMOG2();