high_fps.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
#
# Exemple de FPS élevé
#
# Cet exemple montre comment rendre extrêmement élevée la fréquence d'images de la caméra à
# obturateur global. Pour cela, il faut régler la résolution sur une valeur basse afin d'activer le
# binning de pixels sur la caméra, puis réduire le temps d'exposition maximal.
#
# Lorsque la résolution est de 320x240 ou moins, la caméra lit les pixels 2 fois plus vite. Lorsque la
# résolution est de 160x120 ou moins, la caméra lit les pixels 4 fois plus vite. Cela est dû
# au binning de pixels, qui est automatiquement activé pour augmenter la vitesse de lecture.
#
# Bien que la vitesse de lecture puisse augmenter, la caméra doit toujours exposer l'image pendant le
# temps demandé, vous n'obtiendrez donc pas la vitesse de lecture maximale sans réduire également le temps d'exposition.
# Cela produit cependant une image sombre, il faut donc BEAUCOUP de lumière pour un FPS élevé.
import csi
import time
csi0 = csi.CSI()
csi0.reset() # Réinitialiser et initialiser le capteur.
csi0.pixformat(csi.GRAYSCALE) # Définir le format de pixel sur GRAYSCALE
csi0.framesize(csi.QQVGA) # Définir la taille de l'image sur QQVGA (160x120)
csi0.snapshot(time=2000) # Attendre que les réglages prennent effet.
clock = time.clock() # Créer un objet horloge pour suivre le FPS.
csi0.auto_exposure(True, exposure_us=5000) # réduire pour aller plus vite
while True:
clock.tick() # Mettre à jour l'horloge FPS.
img = csi0.snapshot() # Prendre une photo et renvoyer l'image.
print(clock.fps()) # Remarque : l'OpenMV Cam tourne environ deux fois moins vite lorsqu'elle est connectée
# à l'IDE. Le FPS devrait augmenter une fois déconnectée.