Convém capturar uma sequência de imagens com a mesma aparência em termos de brilho, cor e contraste (isso pode ser útil na fotografia em timelapse, por exemplo). Vários atributos precisam ser usados para garantir consistência em várias fotos. Especificamente, você precisa garantir que o tempo de exposição, o balanço de brancos e os ganhos da câmera sejam todos fixos:
Para fixar o tempo de exposição, defina o shutter_speed
atributo com um valor razoável. Opcionalmente, defina iso
um valor fixo. Para corrigir os ganhos de exposição, deixe analog_gain
e digital_gain
aceite valores razoáveis e defina o modo de exposição para 'off'
. Para corrigir o balanço de brancos, defina como awb_mode
e
'off'
, em seguida, defina awb_gains
uma tupla (vermelha, azul) de ganhos.
Pode ser difícil saber quais valores apropriados podem ser para esses atributos. Pois iso
, uma regra simples é que 100 e 200 são valores razoáveis para o dia, enquanto 400 e 800 são melhores para pouca luz. Para determinar um valor razoável, shutter_speed
você pode consultar o exposure_speed
atributo Para ganhos de exposição, geralmente é suficiente esperar até que analog_gain
seja maior que 1 antes de exposure_mode
ser definido como 'off'
. Por fim, para determinar valores razoáveis para awb_gains
simplesmente consultar a propriedade enquanto awb_mode
estiver definido como algo diferente de 'off'
. Mais uma vez, isso mostrará os ganhos de balanço de branco da câmera, conforme determinado pelo algoritmo de balanço de branco automático.
O script a seguir fornece um breve exemplo de configuração dessas configurações:
from time import sleep
from picamera import PiCamera
camera = PiCamera(resolution=(1280, 720), framerate=30)
# Set ISO to the desired value
camera.iso = 100
# Wait for the automatic gain control to settle
sleep(2)
# Now fix the values
camera.shutter_speed = camera.exposure_speed
camera.exposure_mode = 'off'
g = camera.awb_gains
camera.awb_mode = 'off'
camera.awb_gains = g
# Finally, take several photos with the fixed settings
camera.capture_sequence(['image%02d.jpg' % i for i in range(10)])