我的视频文件有问题,为什么它是慢动作? 我怎样才能使它达到正常速度?
#include"opencv2/opencv.hpp"
using namespace cv;
int main(int, char**)
{
VideoCapture cap("eye.mp4");
// open the default camera
if (!cap.isOpened())
// check if we succeeded
return -1;
namedWindow("Video", 1);
while (1)
{
Mat frame;
cap >> frame;
imshow("Video", frame);
if (waitKey(10) == 'c')
break;
}
return 0;
}
答案 0 :(得分:1)
VideoCapture
不是为播放而构建的,它只是一种从视频文件或相机中抓取帧的方法。其他支持播放的库,如GStreamer或Directshow,它们设置一个控制播放的时钟,以便配置为尽可能快地播放或使用原始帧速率。
在您的代码段中,帧之间的间隔来自读取帧所需的时间和waitKey(10)
。尝试使用waitKey(0)
,它应该至少播放得更快。理想情况下,您可以使用waitKey(1/fps)
。