我正在通过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
能够在重新连接相机后再次抓取帧,那将是一件好事。
答案 0 :(得分:2)
如果没有抓取任何帧(相机已断开连接,或视频文件中没有更多帧),则方法返回false,函数返回NULL指针。
试试这个
if(cap.read(src)== false) 打破;