high_fps.py
# Эта работа лицензирована по лицензии MIT.
# Copyright (c) 2013-2023 OpenMV LLC. All rights reserved.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Пример высокой частоты кадров
#
# Этот пример показывает, как сделать частоту кадров камеры с глобальным затвором чрезвычайно
# высокой. Для этого нужно установить низкое разрешение, чтобы на камере активировался биннинг пикселей
# и затем уменьшить максимальное время экспозиции.
#
# При разрешении 320x240 и ниже камера считывает пиксели в 2 раза быстрее. При
# разрешении 160x120 и ниже камера считывает пиксели в 4 раза быстрее. Это происходит из-за
# биннинга пикселей, который автоматически включается для увеличения скорости считывания.
#
# Хотя скорость считывания может увеличиваться, камере всё равно нужно экспонировать изображение в течение запрошенного
# времени, поэтому вы не получите максимальную скорость считывания, если не уменьшите также время экспозиции.
# Однако из-за этого изображение получается тёмным, поэтому для высокой частоты кадров НЕОБХОДИМО много света.
import csi
import time
csi0 = csi.CSI()
csi0.reset() # Сброс и инициализация датчика.
csi0.pixformat(csi.GRAYSCALE) # Установите формат пикселей в GRAYSCALE
csi0.framesize(csi.QQVGA) # Установить размер кадра QQVGA (160x120)
csi0.snapshot(time=2000) # Подождать, пока настройки вступят в силу.
clock = time.clock() # Создать объект clock для отслеживания FPS.
csi0.auto_exposure(True, exposure_us=5000) # уменьшите значение, чтобы было быстрее
while True:
clock.tick() # Обновить счётчик FPS.
img = csi0.snapshot() # Сделать снимок и вернуть изображение.
print(clock.fps()) # Примечание: OpenMV Cam работает примерно вдвое медленнее при подключении
# к IDE. FPS должен увеличиться после отключения.