high_fps.py
# この作品はMITライセンスの下で提供されています。
# Copyright (c) 2013-2023 OpenMV LLC. 全著作権所有。
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# 高FPSの例
#
# この例では、グローバルシャッターカメラのフレームレートを非常に
# 高くする方法を示します。そのためには、カメラでピクセルビニングが有効になるよう
# 解像度を低い値に設定し、最大露光時間を短くする必要があります。
#
# 解像度が320x240以下の場合、カメラは画素を2倍速く読み出します。
# 解像度が160x120以下の場合、カメラは画素を4倍速く読み出します。これは
# 読み出し速度を上げるために自動的に有効になるピクセルビニングによるものです。
#
# 読み出し速度が向上しても、カメラは指定された時間だけ画像を露光する必要があるため、
# 露光時間も短縮しない限り最大読み出し速度は得られません。
# ただしこれにより画像が暗くなるため、高FPSを実現するには十分な照明が必要です。
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() # FPSを計測するためのclockオブジェクトを作成します。
csi0.auto_exposure(True, exposure_us=5000) # より高速にするには小さくします
while True:
clock.tick() # FPSクロックを更新します。
img = csi0.snapshot() # 画像を撮影して返します。
print(clock.fps()) # 注意: OpenMV CamはIDEに接続されている間、
# 速度が約半分になります。切断すればFPSは向上します。