sensor_manual_whitebal_control.py
# Questo lavoro è concesso in licenza MIT.
# Copyright (c) 2013-2023 OpenMV LLC. Tutti i diritti riservati.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Controllo manuale del bilanciamento del bianco del sensore
#
# Questo esempio mostra come controllare
# manualmente il guadagno del bilanciamento del bianco del sensore della fotocamera invece di lasciare che il controllo AWB funzioni.
# Il bilanciamento del bianco si ottiene regolando i valori di guadagno R/G/B
# in modo che il colore medio dell'immagine sia grigio. L'
# algoritmo di bilanciamento del bianco automatico (AWB) fa questo per
# te, ma di solito ottiene un risultato diverso ogni
# volta che accendi la fotocamera, rendendo difficile ottenere
# le impostazioni di tracciamento del colore corrette. Registrando manualmente
# i valori di guadagno che preferisci e poi forzandoli
# il sensore all'avvio, è possibile controllare i colori
# che la fotocamera vede.
import csi
import time
csi0 = csi.CSI()
csi0.reset() # Resetta e inizializza il sensore.
csi0.pixformat(csi.RGB565) # Imposta il formato pixel su RGB565 (o GRAYSCALE)
csi0.framesize(csi.QVGA) # Imposta la dimensione del fotogramma su QVGA (320x240)
csi0.snapshot(time=2000) # Attendi che le impostazioni abbiano effetto.
clock = time.clock() # Crea un oggetto clock per tracciare gli FPS.
# Qui è possibile controllare i guadagni del bilanciamento del bianco. Il primo valore è il
# guadagno R in db, seguito dal guadagno G in db, seguito dal guadagno B in db.
#
# Rimuovi il commento dalla riga sottostante con i valori di guadagno desiderati (ottenuti dall'output stampato).
#
# csi0.auto_whitebal(False, rgb_gain_db = (0.0, 0.0, 0.0))
# Nota: impostando (0.0, 0.0, 0.0) come guadagno si ottiene qualcosa vicino allo zero
# in uscita. Non aspettarti che il valore esatto in ingresso sia uguale al valore
# in uscita.
while True:
clock.tick() # Aggiorna il clock degli FPS.
img = csi0.snapshot() # Scatta una foto e restituisce l'immagine.
print(clock.fps(), csi0.rgb_gain_db()) # Stampa i guadagni RGB correnti del bilanciamento automatico del bianco (AWB).