2016-04-19 55 views
1

我想从IP CAM(sony snc p1)拍摄图像,用于使用opencv java进行运动检测。该流为mjpeg格式,我使用opencv的VideoCapture尝试检索图像。我可以使用视频捕捉从视频文件中抓取图像,但是当我尝试打开相机不起作用时。我可以在vlc上查看流,但该ip地址在opencv上不起作用。这是我使用的代码:索尼IP摄像头opencv Java

while (true){ 
    VideoCapture camera1=newVideoCapture("http://192.168.0.101/mjpeg");      
    if (!camera1.isOpened())     
    System.out.println("Cannot open file"); 
} 
+0

您不应该在while循环中反复实例化新的VideoCapture实例:在while循环之前执行一次。你在使用什么操作系统?你用VLC进行测试很好。你有什么视频支持OpenCV内置?先尝试直接打开IP摄像机。例如,如果您使用支持FFMPEG的OpenCV,请先从FFMPEG中直接打开相机(对于GStreamer,V4L等)。如果在那里不起作用,那不是OpenCV相关的。如果确实如此,请仔细检查OpenCV是否使用相同的视频支持。 HTH –

+0

最糟糕的情况,从实用的角度来看,看看是否有另一个IP Camera Java库,如果是的话,它可能会允许你以'BufferedImage'的形式访问流, –

回答

0

您使用的是什么版本?在openCV 2.4中,这是一个已知的错误。 (固定在以后的版本)

因为OpenCV的VideoCapture预计在文件名末尾的扩展,您可以尝试奥斯陆添加伪PARAM,到了最后,像camera1.open("http://192.168.0.101/?dummy=video.mjpg");