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 берет.

Другие вопросы по тегам