5

我正在通过 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如果重新连接相机后能够再次抓取帧,那就太好了。

4

1 回答 1

1

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

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

尝试这个

if(cap.read(src) == false) 中断;

于 2013-08-27T06:30:37.533 回答