sensor_manual_whitebal_control.py
# 本作品采用MIT许可证授权。
# 版权所有 (c) 2013-2023 OpenMV LLC。保留所有权利。
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# 传感器手动白平衡控制
#
# 此示例展示了如何控制相机传感器的
# 手动设置白平衡增益,而不是让 AWB 控制运行。
# 白平衡是通过调整R/G/B增益值来实现的,
# 使图像的平均颜色为灰色。
# 自动白平衡(AWB)算法会为您完成这项工作,
# 但通常每次开机的结果都不相同,
# 这使得颜色追踪的设置
# 难以调准。通过手动记录
# 您满意的增益值,然后在启动时将其强制写入
# 传感器,您就可以控制相机
# 看到的颜色。
import csi
import time
csi0 = csi.CSI()
csi0.reset() # 重置并初始化传感器。
csi0.pixformat(csi.RGB565) # 将像素格式设置为RGB565 (or GRAYSCALE)
csi0.framesize(csi.QVGA) # 将帧大小设置为QVGA (320x240)
csi0.snapshot(time=2000) # 等待设置生效。
clock = time.clock() # 创建一个时钟对象来跟踪FPS。
# 您可以在这里控制白平衡增益。第一个值是
# R增益(分贝),然后是G增益(分贝),最后是B增益(分贝)。
#
# 取消注释下面一行并填入您满意的增益值(从打印输出中获取)。
#
# csi0.auto_whitebal(False, rgb_gain_db = (0.0, 0.0, 0.0))
# 注意:将增益设为(0.0, 0.0, 0.0)时,输出结果接近于零。
# 不要期望输入的值与输出的值
# 完全相等。
while True:
clock.tick() # 更新FPS时钟。
img = csi0.snapshot() # 拍照并返回图像。
print(clock.fps(), csi0.rgb_gain_db()) # 打印AWB当前的RGB增益。