> frame; //-6ren">
gpt4 book ai didi

c++ - 如何为 waitKey() 动态分配延迟值以便获得正确的 fps?

转载 作者:太空宇宙 更新时间:2023-11-04 14:16:09 26 4
gpt4 key购买 nike

我有一个视频,我想处理帧。

VideoCapture capture("movie.mpg");

while(true) {
Mat frame;
capture >> frame;

// This may take some time to finish
processFrame(frame);

if (waitKey(80) == 'q')
break;
}

问题是,使用硬编码延迟 waitKey(80) 会导致视频的 fps 不正确。例如,上面的代码尝试以每秒 12 帧的速度显示视频,但如果 processFrame() 需要一些时间才能完成,则 fps 会较低并且视频看起来很滞后。

我需要在这里对延迟值进行一些计算。您如何动态分配值以使 fps 保持在 12?谢谢。

最佳答案

您可以检索实际的 FPS of the video通过查询抓包接口(interface):

double fps = capture.get(CV_CAP_PROP_FPS);

您还可以使用 CV_CAP_PROP_FRAME_COUNT 了解视频中的总帧数。

根据这些信息,您可以进行简单的计算并找出确切的延迟时间。

关于c++ - 如何为 waitKey() 动态分配延迟值以便获得正确的 fps?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11180123/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com