【发布时间】:2016-04-19 09:03:11
【问题描述】:
我正在尝试从 IP cam (sony snc p1) 获取图像,以使用 opencv java 进行运动检测。流是 mjpeg 格式,我正在使用 opencv 的 VideoCapture 来尝试检索图像。我可以使用 videocapture 从视频文件中抓取图像,但是当我尝试打开相机时不起作用。我可以在 vlc 上查看流,但该 IP 地址在 opencv 上不起作用。这是我使用的代码:
while (true){
VideoCapture camera1=newVideoCapture("http://192.168.0.101/mjpeg");
if (!camera1.isOpened())
System.out.println("Cannot open file");
}
【问题讨论】:
-
您不应该在 while 循环中一遍又一遍地实例化新的 VideoCapture 实例:在 while 循环之前执行一次。您使用的是什么操作系统?你用 VLC 测试很好。您使用什么视频支持构建 OpenCV?尝试先直接打开网络摄像机。例如,如果您构建了支持 FFMPEG 的 OpenCV,则首先直接从 FFMPEG 打开相机(对于 GStreamer、V4L 等类似)。如果在那里不起作用,则与 OpenCV 无关。如果是这样,请仔细检查 OpenCV 是否已使用相同的视频支持构建。 HTH
-
最坏的情况,从实用的角度看是否有另一个 IP Camera Java 库,如果有,它可能允许您以
BufferedImage的形式访问流,它可以插入Mat