Potresti voler catturare una sequenza di immagini che sembrano tutte uguali in termini di luminosità, colore e contrasto (questo può essere utile nella fotografia timelapse, ad esempio). È necessario utilizzare vari attributi per garantire la coerenza tra più scatti. In particolare, è necessario assicurarsi che il tempo di esposizione, il bilanciamento del bianco e i guadagni della fotocamera siano tutti fissi:
Per fissare il tempo di esposizione, impostare l' shutter_speed
attributo su un valore ragionevole. Facoltativamente, impostare iso
su un valore fisso. Per correggere i guadagni di esposizione, lascia analog_gain
e digital_gain
stabilisci valori ragionevoli, quindi imposta Expos_mode su 'off'
. Per correggere il bilanciamento del bianco, impostare awb_mode
su
'off'
, quindi impostare awb_gains
su una tupla di guadagni (rossa, blu).
Può essere difficile sapere quali potrebbero essere i valori appropriati per questi attributi. Infatti iso
, una semplice regola empirica è che 100 e 200 sono valori ragionevoli per il giorno, mentre 400 e 800 sono migliori per la scarsa luminosità. Per determinare un valore ragionevole per shutter_speed
te puoi interrogare l' exposure_speed
attributo. Per i guadagni di esposizione, di solito è sufficiente attendere che analog_gain
sia maggiore di 1 prima che exposure_mode
sia impostato su 'off'
. Infine, per determinare valori ragionevoli per eseguire awb_gains
semplicemente una query sulla proprietà mentre awb_mode
è impostato su qualcosa di diverso da 'off'
. Ancora una volta, questo ti dirà i guadagni del bilanciamento del bianco della fotocamera determinati dall'algoritmo di bilanciamento del bianco automatico.
Il seguente script fornisce un breve esempio di configurazione di queste impostazioni:
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)])