有没有解决办法可以使用cv2.imshow()
和特定的帧速率?Im通过VideoCapture捕获视频并对其进行一些简单的后处理(两者都在一个分离的线程中,因此它加载队列中的所有帧,并且主线程不会因计算而变慢)。我试图通过计算从队列中“读取”图像所用的时间来确定帧速率,然后从一帧的可用毫秒数中减去该值:
如果我有50FPS的输入视频,并且我想实时播放,我每帧做1000/50=>;20ms。
然后使用cv2.WaitKey()等待时间
但我还是得到了一些滞后的输出。哪个比源视频慢
Tags:
我不相信opencv中有这样的函数,但也许你可以通过使用计时器添加动态等待时间来改进你的方法?
timeit.default_timer()
计算处理所需的时间,并将其从预期帧速率中减去,然后可能添加几毫秒的缓冲区。在例如
cv2.WaitKey((1000/50) - (time processing finished - time read started) - 10)
或者你可以有一个更严格的时间例如
script start time + frame# * 20ms - time processing finished
我还没有亲自尝试过,所以我不确定它是否真的会起作用,也可能值得检查一下,所以数字不低于1
相关问题 更多 >
编程相关推荐