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

2020年2月10日 9点热度 0条评论

我刚刚开始学习 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);
           }
        }

此代码仅提供黑屏输出。

解决方案如下:

移动这一行:

BackgroundSubtractorMOG backgroundSubtractorMOG=new BackgroundSubtractorMOG();

跳出循环。