【问题标题】:Sony Ip camera opencv Java索尼 IP 摄像头 opencv Java
【发布时间】: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

标签: java opencv


【解决方案1】:

你用的是什么版本?在 openCV 2.4 中,这是一个已知的错误。 (在以后的版本中修复)

您也可以尝试在最后添加一个虚拟参数,例如 camera1.open("http://192.168.0.101/?dummy=video.mjpg"); 因为 opencv VideoCapture 需要在文件名末尾有一个扩展名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-19
    • 2014-09-10
    • 2011-12-31
    • 1970-01-01
    • 2013-03-13
    • 2016-10-06
    • 2019-11-02
    • 2014-02-23
    相关资源
    最近更新 更多