2016-06-30 2 views
0

У меня есть камера Mobotix c25. Это IP-камера, и я получаю доступ к ее потоку таким образом:OpenCV: Задержка подачи фотокамеры Mobotix

Mat frame; 
cv::VideoCapture vcap; 
if(!vcap.open("http://(IP_address)/cgi-bin/faststream.jpg?stream=full&fps=25.0&data=v.mjpg")){ 
     cout<<"Camera not found"<<endl;   
} 

Как вы можете видеть, я выбрал 25 кадров в секунду. Я хочу сохранить каждого из них. Я делаю это с:

while (true){   
    vcap >> frame; 
    frameNumber++; 

    string fullPath = "Frame"; 
    stringstream ss; 
    ss << frameNumber; 
    string num = ss.str(); 
    fullPath.append(num); 
    fullPath.append(".jpg"); 
} 

Однако, я только сохранить два кадра в секунду, потому что следующая строка занимает около 400 мс:

VCAP >> кадр;

Я не знаю, почему у меня такая большая задержка ... Я склонен думать, что это проблема, создаваемая параметрами камеры, есть ли у вас какие-либо мысли по этому поводу?

Заранее спасибо.

ПРИМЕЧАНИЕ: Я не знаю, важно ли это, но я использую порт 80 камеры.

ответ

0

Я, наконец, решил это. Ссылка, которую я использовал, - это захват изображения с помощью гостевого доступа.

По умолчанию гостевой доступ ограничен 2 кадрами в секунду. Я изменил это в «Меню администратора» камеры на странице «Язык и стартовая страница» -> «Частота обновления для гостевого доступа», и теперь я могу захватить 25 кадров в секунду.

Смежные вопросы