sensor_manual_whitebal_control.py
# Esta obra está licenciada bajo la licencia MIT.
# Copyright (c) 2013-2023 OpenMV LLC. Todos los derechos reservados.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Control manual del balance de blancos del sensor
#
# Este ejemplo muestra cómo controlar
# manualmente la ganancia del balance de blancos del sensor de la cámara en lugar de dejar que se ejecute el control AWB.
# El balance de blancos se logra ajustando los valores de ganancia R/G/B
# de modo que el color promedio de la imagen sea gris. El
# algoritmo de balance de blancos automático (AWB) hace esto por
# usted, pero normalmente termina con un resultado diferente cada
# vez que enciende la cámara, lo que dificulta ajustar
# correctamente los ajustes de seguimiento de color. Al registrar manualmente
# los valores de ganancia que le gusten y luego forzarlos
# en el sensor al arrancar, puede controlar los colores
# que ve la cámara.
import csi
import time
csi0 = csi.CSI()
csi0.reset() # Restablecer e inicializar el sensor.
csi0.pixformat(csi.RGB565) # Establecer el formato de píxel a RGB565 (o GRAYSCALE)
csi0.framesize(csi.QVGA) # Establecer el tamaño de fotograma a QVGA (320x240)
csi0.snapshot(time=2000) # Esperar a que los ajustes surtan efecto.
clock = time.clock() # Crear un objeto clock para registrar los FPS.
# Aquí puede controlar las ganancias de balance de blancos. El primer valor es la
# ganancia R en dB, luego la ganancia G en dB, seguida de la ganancia B en dB.
#
# Descomente la siguiente línea con los valores de ganancia que le gusten (obténgalos de la impresión).
#
# csi0.auto_whitebal(False, rgb_gain_db = (0.0, 0.0, 0.0))
# Nota: Poner (0.0, 0.0, 0.0) en la ganancia produce un resultado cercano a cero
# en la salida. No espere que el valor exacto de entrada sea igual al valor
# de salida.
while True:
clock.tick() # Actualizar el reloj de FPS.
img = csi0.snapshot() # Tomar una foto y devolver la imagen.
print(clock.fps(), csi0.rgb_gain_db()) # Imprime las ganancias RGB actuales del AWB.