我正在尝试从网络摄像头读取帧并进行实时分析,但是由于我的函数AnalyzeFrame()
比帧速率快,因此最终导致同一帧连续1-4次拉出我的数据。这基本上就是我正在运行的。
import imageio
cam = imageio.get_reader('<video0>', fps=30)
while not cam.closed:
print(AnalyzeFrame(cam.get_next_data()))
一些注意事项:我的网络摄像头应该能够处理30fps,但是我的平均速度为12-14 fps。我已经为每个单独的过程计时,并且帧速率几乎没有规律性。有些帧仅被分析一次,因为它们在缓冲区中的时间约为20毫秒。其他人在100毫秒以上的时间内进行了4次分析。我的代码中是否有引起此帧速率问题的东西?
答案 0 :(得分:1)
根据我从一些测试中了解到的情况,当您调用get_next_data()
时,脚本就是从网络摄像头获取帧的。因此,设置fps没用。
要找出无法达到30 fps的原因,应该找出功能AnalyzeFrame
所花费的时间。