python - 在Python openCV中获取视频每一帧的耗时

标签 python opencv video-processing elapsedtime

我有一个视频文件,正在对其进行图像处理。 但是我需要每一帧所耗时。

到目前为止我已经

frames = camera.get(cv2.CAP_PROP_FRAME_COUNT)
fps = camera.get(cv2.CAP_PROP_FPS)
seconds_per_frame = fps/frames
counter = 0

while True:
    //get frame
    counter += seconds_per_frame

使用我现在拥有的这段代码是很挑剔的。一开始它给了我观看实际视频的时间,但随后开始变得不准确。例如,它会说当前帧为 12 秒。但当我实际打开视频文件并转到该帧时,它是 7 秒。

你们在分析视频时如何计算时间?

最佳答案

我无法查看您的视频以进行检查,但我怀疑您正在累积浮点错误。

尝试使用帧计数器和 fps 来导出耗时,如下所示:

elapsed = frameNumber / fps

关于python - 在Python openCV中获取视频每一帧的耗时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67578787/

相关文章:

python - 如何在 matplotlib 中为 3D 散点图上的数据点着色

python 3。当我在 __init__ 方法中深度复制具有 cv2.VideoCapture 的类的实例时出现错误

ffmpeg - 如何在降低视频持续时间的同时提高视频帧率?

python - 在 Python cv2 中的两个时间戳之间保存较长视频中的视频剪辑

android - 在android中使用FFmpegFrameGrabber,FrameRecorder JavaCv创建的视频中没有捕获声音

python - Flask 和 WerkZeug 中的应用程序上下文和请求上下文是什么?

python - 如何在 gdb python 脚本中设置或修改断点命令

python - 通过 SQLAlchemy 插入 MySQL 时截断太长的 varchar

c++ - Kuwahara 过滤器的奇怪结果

android - 使用 openCV 和 native 代码 C++ 从视频文件中读取帧