sensor_manual_whitebal_control.py
# Este trabalho está licenciado sob a licença MIT.
# Copyright (c) 2013-2023 OpenMV LLC. Todos os direitos reservados.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Controle Manual de Balanço de Branco do Sensor
#
# Este exemplo demonstra como controlar o
# ganho de balanço de branco do sensor da câmera manualmente em vez de deixar o controle AWB atuar.
# O balanço de branco é obtido ajustando os valores de ganho R/G/B
# de forma que a cor média da imagem seja cinza. O
# algoritmo de balanço de branco automático (AWB) faz isso
# por você, mas geralmente resulta em um resultado diferente cada
# vez que você liga a câmera, dificultando o ajuste correto das
# configurações de rastreamento de cor. Ao gravar manualmente
# os valores de ganho desejados e depois forçá-los
# no sensor na inicialização, você pode controlar as cores
# que a câmera enxerga.
import csi
import time
csi0 = csi.CSI()
csi0.reset() # Reinicia e inicializa o sensor.
csi0.pixformat(csi.RGB565) # Define o formato de pixel para RGB565 (ou GRAYSCALE)
csi0.framesize(csi.QVGA) # Define o tamanho do frame para QVGA (320x240)
csi0.snapshot(time=2000) # Aguarda as configurações fazerem efeito.
clock = time.clock() # Cria um objeto clock para rastrear o FPS.
# Você pode controlar os ganhos de balanço de branco aqui. O primeiro valor é o
# ganho R em db, seguido pelo ganho G em db, seguido pelo ganho B em db.
#
# Descomente a linha abaixo com os valores de ganho desejados (obtenha-os na saída impressa).
#
# csi0.auto_whitebal(False, rgb_gain_db = (0.0, 0.0, 0.0))
# Nota: Colocar (0.0, 0.0, 0.0) para o ganho resulta em algo próximo de zero
# na saída. Não espere que o valor exato de entrada seja igual ao valor
# de saída.
while True:
clock.tick() # Atualiza o clock de FPS.
img = csi0.snapshot() # Tira uma foto e retorna a imagem.
print(clock.fps(), csi0.rgb_gain_db()) # Imprime os ganhos RGB atuais do AWB.