如何调节相机的曝光时间至一个设定的数值?
-
我使用了
sensor.set_auto_exposure(False,exposure_us=10000) # sensor.set_auto_exposure(是否开启True/False,exposure_us=曝光时间us)
调节曝光,但是我去读取他们的时候返回来的曝光值为0
print(sensor.get_exposure_us())
完整的代码如下
import sensor # 摄像头库 import image # 图像库 import time # 时间库 from screen import SCREEN # LCD库 from pyb import SPI #SPI库 # LCD 初始化 #SPI速率使用80M以上刷屏更快,但是长时间运行可能出现闪屏 screen = SCREEN(spi_port=2,lcd_cs='P3',lcd_rst='P7',lcd_rs='P8',lcd_blk='P6',width=240,height=320) # 摄像头配置 sensor.reset() # 复位和初始化摄像头,执行sensor.run(0)停止 sensor.set_framesize(sensor.QVGA)# 设置帧大小为 VGA (640x480) roi = (0,0,320,240)# 为tupple(x, y, w, h),还可以自动获取roi=Auto sensor.set_windowing(roi) # 取RIO区域作为窗口(有效运行空间) sensor.set_hmirror(False) # 水平方向翻转 sensor.set_vflip(False) # 垂直方向翻转 sensor.set_pixformat(sensor.RGB565)# sensor.RGB565设置为彩色(16Bit)/sensor.GRAYSCALE设置为灰白(8Bit) sensor.set_auto_gain(False) # 自动增益开启(True)或关闭(False)在使用颜色追踪时,需要关闭自动增益 sensor.set_auto_whitebal(False) # 自动白平衡开启(True)或关闭(False)在使用颜色追踪时,需要关闭自动白平衡 sensor.set_auto_exposure(False,exposure_us=10000) # sensor.set_auto_exposure(是否开启True/False,exposure_us=曝光时间us) sensor.skip_frames(time=2000) # 跳过n张照片,使传感器稳定 clock = time.clock() # 创建一个时钟来追踪 FPS(每秒拍摄帧数) print(sensor.get_exposure_us()) while True: clock.tick() # 更新 FPS 时钟 img = sensor.snapshot().replace( vflip=True, hmirror=False, transpose=True, ) # 获取一张转向的照片 img.draw_string(0, 0, "FPS:%.2f"%(clock.fps())) # 显示FPS
-
import sensor sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.set_auto_exposure(False, exposure_us=10000) sensor.skip_frames(time=2000) print(sensor.get_exposure_us())
这个代码我在OpenMV4 Plus OV5640上运行,结果显示9952。符合预期。
-
我尝试了一下,一样的代码,我摄像头对着光测量一次,捂住测了一次,都是0
-
@kidswong999 奇怪了我MV4PLUS(官方的板子)也可以测,但是OpenMV Cam H7(STM32H743)+OV2640就是测不出来,难道是传感器或者芯片不支持,还是官方看我H743这个板子是三方的就不行呀
-
OV2640不支持。
-
好吧,那我换个摄像头实验一下