high_fps.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
#
# Ejemplo de FPS alto
#
# Este ejemplo muestra cómo lograr que la velocidad de fotogramas de la cámara de obturador global sea extremadamente
# alta. Para ello, es necesario establecer la resolución en un valor bajo de modo que se active
# el binning de píxeles en la cámara y luego reducir el tiempo de exposición máximo.
#
# Cuando la resolución es de 320x240 o menos, la cámara lee los píxeles 2x más rápido. Cuando la
# resolución es de 160x120 o menos, la cámara lee los píxeles 4x más rápido. Esto ocurre debido
# al binning de píxeles, que se activa automáticamente para aumentar la velocidad de lectura.
#
# Aunque la velocidad de lectura puede aumentar, la cámara aún debe exponer la imagen durante el tiempo
# solicitado, por lo que no se obtendrá la velocidad de lectura máxima a menos que también se reduzca el tiempo de exposición.
# Sin embargo, esto produce una imagen oscura, por lo que NECESITA MUCHA iluminación para lograr FPS altos.
import csi
import time
csi0 = csi.CSI()
csi0.reset() # Restablecer e inicializar el sensor.
csi0.pixformat(csi.GRAYSCALE) # Establezca el formato de píxel en GRAYSCALE
csi0.framesize(csi.QQVGA) # Establecer el tamaño de fotograma a QQVGA (160x120)
csi0.snapshot(time=2000) # Esperar a que los ajustes surtan efecto.
clock = time.clock() # Crear un objeto clock para registrar los FPS.
csi0.auto_exposure(True, exposure_us=5000) # reducir para ir más rápido
while True:
clock.tick() # Actualizar el reloj de FPS.
img = csi0.snapshot() # Tomar una foto y devolver la imagen.
print(clock.fps()) # Nota: la OpenMV Cam funciona a aproximadamente la mitad de velocidad cuando está conectada
# al IDE. Los FPS deberían aumentar una vez desconectada.