OpenCV VideoCapture IP摄像机重新连接

时间:2013-07-17 10:55:56

标签: c++ opencv video video-capture ip-camera

我正在通过HTTP从相机中读取图像。这是代码:

Mat src;
VideoCapture cap();
cap.open("http://192.168.1.10:8008"); // IP camera

while(1) {
    cap.read(src);
    // Other code
}

它完美无缺,但是如果我在物理上断开相机运行一段时间后,代码会永久挂起cap.read(src);

我需要一些方法从read返回,如果,比方说,5秒后没有新的图像。

还有另一个问题。如果在程序在read中等待时重新连接相机,则无论如何它都会被挂起。如果VideoCapture能够在重新连接相机后再次抓取帧,那将是一件好事。

1 个答案:

答案 0 :(得分:2)

http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html#videocapture-read

如果没有抓取任何帧(相机已断开连接,或视频文件中没有更多帧),则方法返回false,函数返回NULL指针。

试试这个

if(cap.read(src)== false)    打破;