OpenCV VideoCapture считывание последовательности изображений стоит слишком много времени, около 40 мс на кадр - PullRequest
0 голосов
/ 03 июня 2018

Я использую opencv3.3 для разработки некоторых алгоритмов. Одной из функций является чтение последовательностей видео или изображений.

При чтении видеофайла класс VidoeCapture работает хорошо.Чтение на кадр стоит всего несколько миллисекунд (менее 3 мс @ кадр 1280 * 720).

Однако при чтении последовательностей изображений из каталога процесс чтения идет слишком медленно, примерно 40 ~ 42 мс на кадр.Я уверен, что код правильный и успешный (он может показать картинку правильно).Кажется, OpenCV заблокировал частоту кадров на 25 (40 мс / кадр), но я не знаю, как это изменить.

string filePath = "<my picture sequences dir>\\001_01_%06d.png"; // the file path, the name of pictures is consecutive
VideoCapture sq(filePath);
Mat _sq_tmpImage;
while(1){
    sq >> _sq_tmpImage; // I had insert the breakpoint to check the cost time, it is about 40-42 ms pre frame. I also use the function "sq.read(_sq_tmpImage)" instead, but seems the same.
}

1 Ответ

0 голосов
/ 07 июня 2018

Нет, код не имеет задержек между чтением / загрузкой изображений, здесь можно найти код .

Если вы еще не сохраняете изображения на SSD,Попробуй это.Или используйте формат с более быстрым декодером, возможно, jpeg быстрее, чем png.

...