我刚刚开始学习 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();
跳出循环。
关于java - 如何使用OpenCV和Java从(视频)图像中删除背景?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17769947/