0

我正在尝试从网络摄像头读取帧并实时分析它们,但由于我的函数AnalyzeFrame()比帧速率快,它最终会连续拉同一帧 1-4 次,从而弄乱了我的数据。这基本上就是我正在运行的内容。

import imageio

cam = imageio.get_reader('<video0>', fps=30)

while not cam.closed:
    print(AnalyzeFrame(cam.get_next_data()))

一些注意事项:我的网络摄像头应该能够处理 30 fps,但我平均为 12-14 fps。我已经对每个单独的过程进行了计时,并且帧速率几乎没有规律性。有些帧只分析一次,因为它们在缓冲区中的时间大约为 20 毫秒。其他人在 100 多毫秒的时间内被分析了 4 次。我的代码中是否存在导致此帧率问题的内容?

4

1 回答 1

1

根据我从一些测试中了解到的情况,当您调用get_next_data()它时,您的脚本会从网络摄像头中抓取帧。因此,设置 fps 是没有用的。

要找到您无法达到 30 fps 的原因,应该取决于您的功能所AnalyzeFrame花费的时间。

于 2019-05-28T17:54:10.307 回答