high_fps.py
# 本作品采用MIT许可证授权。
# 版权所有 (c) 2013-2023 OpenMV LLC。保留所有权利。
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# 高帧率示例
#
# 此示例展示了如何让全局快门相机的帧率变得极
# 高。为此,您需要将分辨率设置为较低的值以激活像素合并(binning),
# 然后降低最大曝光时间。
#
# 当分辨率为320x240或更低时,相机读出像素的速度快2倍。当
# 分辨率为160x120或更低时,相机读出像素的速度快4倍。这是因为
# 像素合并会自动激活以提高读出速度。
#
# 虽然读出速度提高了,但相机仍必须按要求的时间曝光图像,
# 因此除非同时降低曝光时间,否则无法获得最大读出速度。
# 但这样会导致图像偏暗,所以高帧率需要非常充足的光照。
import csi
import time
csi0 = csi.CSI()
csi0.reset() # 重置并初始化传感器。
csi0.pixformat(csi.GRAYSCALE) # 将像素格式设置为灰度
csi0.framesize(csi.QQVGA) # 将帧大小设置为QQVGA(160x120)
csi0.snapshot(time=2000) # 等待设置生效。
clock = time.clock() # 创建一个时钟对象来跟踪FPS。
csi0.auto_exposure(True, exposure_us=5000) # 调小以提高速度
while True:
clock.tick() # 更新FPS时钟。
img = csi0.snapshot() # 拍照并返回图像。
print(clock.fps()) # 注意:OpenMV摄像头在连接至IDE时运行速度会降低约一半。
# 断开连接后,帧率应会提升。