OpenCV VideoCapture读取图片序列的成本太高,每帧约40ms

时间:2018-06-03 14:23:10

标签: image opencv video-capture sequences

我使用opencv3.3来开发一些算法。一个功能是读取视频或图片序列。

在阅读视频文件时,VidoeCapture类运行良好。每帧读取只需几毫秒(小于3毫秒@frame 1280 * 720)。

但是,从目录中读取图像序列时,读取过程太慢,每帧约40~42 ms。我确信代码是正确和成功的(它可以正确显示图片)。似乎OpenCV将fps锁定在25(40ms /帧),但我不知道如何改变它。

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 :(得分:0)

不,代码在读取/加载图片之间没有任何延迟,可以找到code here

如果您尚未将图像存储在SSD上,请尝试使用。或者使用具有更快解码器的格式,也许jpeg比png快。