Respostas:
Quando usamos fswebcam
para capturar uma imagem, parece que a câmera foi inicializada, captura uma imagem e depois desconectada. Algumas webcams têm função para equilibrar automaticamente seu brilho. Por exemplo, em uma sala escura, eles sentem que o brilho precisa aumentar enquanto em uma área brilhante, o brilho pode precisar ser diminuído. A câmera faz isso examinando seus próprios quadros e analisando-os. Quando ocorre uma captura de uma imagem imediatamente após a câmera ser inicializada, ela não vê dados suficientes para saber o quão brilhante o ambiente é e parece que ele pressupõe que o ambiente é SUPER brilhante e reduz o controle de exposição ao mínimo (resultando em em uma imagem em preto). À medida que mais quadros são examinados, a câmera ajusta rapidamente suas configurações de exposição.
Para usar fswebcam
, podemos fornecer a opção de -S <num>
qual é o número de quadros que a câmera deve "ver" e "pular" antes de capturar a imagem desejada. Descobri que, se eu fornecer uma pular, 20
a câmera possui quadros suficientes para auto-ajustar sua exposição e, como estamos processando 30 quadros por segundo, isso ainda é menos que um segundo de atraso para capturar 1 quadro. Para transmissão de vídeo, não devemos ter o problema, pois a câmera será inicializada e permanecerá inicializada.
Você precisa pular os primeiros quadros antes de capturar a imagem. Para obter mais informações, consulte a postagem do blog aqui.
fswebcam -d /dev/video0 -r 640x480 -v -S 10 --set brightness=100% test_image.jpg