imshow(),具有所需的帧速率并打开

2024-06-01 09:03:55 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有解决办法可以使用cv2.imshow()和特定的帧速率?Im通过VideoCapture捕获视频并对其进行一些简单的后处理(两者都在一个分离的线程中,因此它加载队列中的所有帧,并且主线程不会因计算而变慢)。我试图通过计算从队列中“读取”图像所用的时间来确定帧速率,然后从一帧的可用毫秒数中减去该值: 如果我有50FPS的输入视频,并且我想实时播放,我每帧做1000/50=>;20ms。 然后使用cv2.WaitKey()等待时间 但我还是得到了一些滞后的输出。哪个比源视频慢


Tags: 图像gt视频队列速率时间线程cv2
1条回答
网友
1楼 · 发布于 2024-06-01 09:03:55

我不相信opencv中有这样的函数,但也许你可以通过使用计时器添加动态等待时间来改进你的方法?timeit.default_timer() 计算处理所需的时间,并将其从预期帧速率中减去,然后可能添加几毫秒的缓冲区。在

例如cv2.WaitKey((1000/50) - (time processing finished - time read started) - 10)

或者你可以有一个更严格的时间例如script start time + frame# * 20ms - time processing finished

我还没有亲自尝试过,所以我不确定它是否真的会起作用,也可能值得检查一下,所以数字不低于1

相关问题 更多 >