sensor_save_and_restore_settings.py

# Ce travail est publié sous licence MIT.
# Copyright (c) 2013-2023 OpenMV LLC. Tous droits réservés.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Enregistrement et restauration des réglages du capteur
#
# Cet exemple montre comment enregistrer puis restaurer les réglages de la caméra
# après une réinitialisation et/ou une mise hors tension du capteur.

import csi
import time

# Définir le format de pixel sur RGB565 (ou GRAYSCALE)
target_pixformat = csi.RGB565

# Définir la taille de l'image sur QVGA (320x240)
target_framesize = csi.QVGA

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(target_pixformat)
csi0.framesize(target_framesize)

# Attendre 3 secondes pour laisser les fonctions automatiques de la caméra s'exécuter et mesurer le FPS.
t = time.ticks_ms()
clock = time.clock()
fps = 0
while time.ticks_diff(time.ticks_ms(), t) < 3000:
    clock.tick()
    csi0.snapshot()
    fps = clock.fps()

# Le capteur devrait maintenant avoir eu le temps de chauffer et de s'adapter à l'environnement actuel.
# Récupérer les réglages maintenant avant d'éteindre le capteur.

gain = csi0.gain_db()
exposure = csi0.exposure_us()
rgb_gain = csi0.rgb_gain_db()

print("Gain == %f db" % gain)
print("Exposure == %d us" % exposure)
print("RGB Gain == %f db, %f db, %f db" % (rgb_gain[0], rgb_gain[1], rgb_gain[2]))

print("Powering Off Sensor")
csi0.shutdown(True)
time.sleep(2)
del csi0

# Désactiver tous les délais de stabilisation dans le code du pilote du capteur. Désactiver cette option ENTRAÎNERA
# l'apparition d'images corrompues lors de la modification des réglages. Cependant, vous pouvez désormais modifier les réglages du capteur
# rapidement et en masse.

ts = time.ticks_ms()
print("Powering On Sensor")
csi0 = csi.CSI(delays=False)
csi0.reset()
csi0.pixformat(target_pixformat)
csi0.framesize(target_framesize)
csi0.auto_gain(False, gain_db=gain)
csi0.auto_exposure(False, exposure_us=exposure)
csi0.auto_whitebal(False, rgb_gain_db=rgb_gain)

# Vous devez attendre avant d'appeler snapshot car l'image sortant actuellement de la caméra est
# très probablement fortement corrompue. Le délai exact à respecter ci-dessous dépend de
# l'application. Cependant, vous devriez probablement attendre au moins une image.
time.sleep(1.0 / fps)

print("Restore Delay %d ms" % (time.ticks_ms() - ts))

gain = csi0.gain_db()
exposure = csi0.exposure_us()
rgb_gain = csi0.rgb_gain_db()

print("Gain == %f db" % gain)
print("Exposure == %d us" % exposure)
print("RGB Gain == %f db, %f db, %f db" % (rgb_gain[0], rgb_gain[1], rgb_gain[2]))

clock = time.clock()

# L'image devrait ressembler à ce qu'elle était avant l'enregistrement et la restauration.
while True:
    clock.tick()
    img = csi0.snapshot()
    # print(clock.fps())

results matching ""

    No results matching ""