Ответы:
Когда мы используем fswebcam
захват изображения, создается впечатление, что камера инициализируется, захватывает изображение и затем отключается. Некоторые веб-камеры имеют функцию автоматического баланса яркости. Например, в темной комнате они чувствуют, что яркость должна быть увеличена, в то время как в яркой области может потребоваться уменьшить яркость. Камера делает это, исследуя свои собственные кадры и анализируя их. Когда захват изображения происходит сразу после инициализации камеры, он не видит достаточно данных, чтобы знать, насколько яркая среда, и кажется, что он предполагает, что среда СУПЕР яркая, и понижает контроль экспозиции до минимума (в результате чего в черном изображении). По мере изучения большего количества кадров камера быстро регулирует настройки экспозиции.
Чтобы использовать его fswebcam
, мы можем предоставить его, параметр -S <num>
которого - это количество кадров, которое камера должна «увидеть» и «пропустить», прежде чем она захватит желаемое изображение. Я обнаружил, что если я пропущу 20
камеру, у нее будет достаточно кадров, чтобы самостоятельно отрегулировать ее экспозицию, и поскольку мы обрабатываем 30 кадров в секунду, это все равно меньше, чем вторая задержка для захвата 1 кадра. Для потокового видео у нас не должно быть проблем, поскольку камера будет инициализирована и останется инициализированной.
Вам нужно пропустить первые несколько кадров перед съемкой изображения, для получения дополнительной информации см. Сообщение в блоге здесь
fswebcam -d /dev/video0 -r 640x480 -v -S 10 --set brightness=100% test_image.jpg