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_speedattributo su un valore ragionevole. Facoltativamente, impostare isosu un valore fisso. Per correggere i guadagni di esposizione, lascia analog_gaine digital_gainstabilisci valori ragionevoli, quindi imposta Expos_mode su 'off'. Per correggere il bilanciamento del bianco, impostare awb_modesu
'off', quindi impostare awb_gainssu 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_speedte puoi interrogare l' exposure_speedattributo. Per i guadagni di esposizione, di solito è sufficiente attendere che analog_gainsia maggiore di 1 prima che exposure_modesia 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)])