Imageio не может читать веб-камеру с правильной частотой кадров
Я пытаюсь читать кадры с веб-камеры и анализировать их в режиме реального времени, но так как моя функция AnalyzeFrame()
быстрее, чем частота кадров, в конечном итоге он тянет один и тот же кадр 1-4 раза подряд, портя мои данные. Вот в основном то, что я бегу.
import imageio
cam = imageio.get_reader('<video0>', fps=30)
while not cam.closed:
print(AnalyzeFrame(cam.get_next_data()))
Несколько замечаний: моя веб-камера должна обрабатывать 30 кадров в секунду, но в среднем я делаю 12-14 кадров в секунду. Я рассчитал каждый отдельный процесс, и частота кадров очень мала. Некоторые кадры анализируются только один раз, потому что они находятся в буфере около 20 миллисекунд. Другие анализируются 4 раза за период 100+ мс. Есть ли что-то в моем коде, что вызывает эту проблему частоты кадров?
0 ответов
Из того, что я понял из некоторых тестов, когда вы звоните get_next_data()
именно тогда ваш сценарий захватывает кадр с веб-камеры. Поэтому выставлять fps бесполезно.
Чтобы найти причину, по которой вы не можете достичь 30 кадров в секунду, нужно учитывать время, в которое ваша функция AnalyzeFrame
берет.