Переподключение IP-камеры OpenCV VideoCapture

Я читаю изображения с камеры через 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 может снова захватывать кадры после повторного подключения камеры.

5

Решение

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

Если ни один кадр не был захвачен (камера была отключена или в видеофайле больше нет кадров), методы возвращают значение false, а функции возвращают указатель NULL.

попробуй это

if (cap.read (src) == false)
перерыв;

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]