CanMV K230 手动曝光调节上线,精准控光超实用!

Viewed 98

问题描述


在机器视觉应用开发中,曝光控制是影响图像质量的关键因素。无论是低光环境下的清晰成像,还是高光场景下的细节保留,精准的曝光调节都能让视觉采集效果事半功倍。现在,CanMV K230 正式解锁手动调节曝光新技能,开发者可自由掌控摄像头曝光参数,适配更多个性化视觉开发需求!

一、功能亮点

  1. 精准可控:关闭自动曝光后,可自定义设置具体曝光时间(微秒级),从暗到亮灵活调节;
  2. 范围清晰:支持获取摄像头曝光时间范围,明确调节边界,避免参数超限;
  3. 即调即显:实时预览曝光参数调整后的成像效果,直观感受参数变化带来的画面差异;

二、核心操作解析

1.基础配置:初始化与模式选择
首先完成摄像头与显示器的基础初始化,支持VIRT(虚拟)、LCD(3.1寸屏)、HDMI三种显示模式,按需选择即可:

# 显示模式选择:"VIRT"、"LCD" 或 "HDMI"
DISPLAY_MODE = "LCD"

# 初始化显示器
if DISPLAY_MODE == "VIRT":
    Display.init(Display.VIRT, width=DISPLAY_WIDTH, height=DISPLAY_HEIGHT, fps=60)
elif DISPLAY_MODE == "LCD":
    Display.init(Display.ST7701, width=DISPLAY_WIDTH, height=DISPLAY_HEIGHT, to_ide=True)
elif DISPLAY_MODE == "HDMI":
    Display.init(Display.LT9611, width=DISPLAY_WIDTH, height=DISPLAY_HEIGHT, to_ide=True)

# 初始化摄像头并重置
sensor = Sensor(id=2)
sensor.reset()
sensor.set_framesize(width=DISPLAY_WIDTH, height=DISPLAY_HEIGHT, chn=CAM_CHN_ID_0)
sensor.set_pixformat(Sensor.RGB888, chn=CAM_CHN_ID_0)

2.核心操作:手动曝光控制

关闭自动曝光:在传感器启动前关闭自动曝光,开启手动调节模式;
获取曝光范围:查询摄像头支持的曝光时间区间,作为调节参考;
设置自定义曝光值:按需设置具体曝光时间(单位:微秒),实时生效。

3.效果演示:多档位曝光体验
通过循环切换不同曝光值,直观感受曝光时间对画面亮度的影响(每个档位显示2秒):

# 测试不同曝光值(2ms/5ms/10ms/20ms/33ms)
test_exposures = [2000, 5000, 10000, 20000, 33000]
exposure_step = 0
frame_count = 0

while True:
    img = sensor.snapshot(chn=CAM_CHN_ID_0)
    Display.show_image(img)
    
    # 每60帧(约2秒)切换一次曝光值
    if frame_count % 60 == 0:
        if exposure_step < len(test_exposures):
            new_exp = test_exposures[exposure_step]
            sensor.exposure(new_exp)
            print(f"设置新曝光:{new_exp} us ({new_exp/1000:.1f} ms)")
            exposure_step += 1
        else:
            exposure_step = 0
    frame_count += 1

三、完整示例代码

参考SDK demo路径:
~/src/canmv/resources/examples/17-Sensor/camera_manual_exposure_lcd.py

四、使用提示

1、运行代码前需确保CanMV K230开发环境已配置完成,摄像头与显示设备连接正常;

2、曝光时间单位为微秒(us),1ms=1000us,设置时建议在摄像头支持的曝光范围内调整;

3、目前无法动态开关自动曝光功能,所以需要在sensor.run()之前关掉自动曝光功能,再进行手动调节

4、获取曝光调节范围和手动调节曝光需要在sensor.run()之后

总结

手动曝光功能的加入,让CanMV K230在机器视觉开发中更具灵活性。无论是工业检测、安防监控,还是创意视觉项目,开发者都可通过精准调节曝光参数,让图像采集效果更贴合场景需求。赶紧上手体验,解锁更多K230视觉开发新玩法吧!

参考文档:
https://www.kendryte.com/k230_canmv/zh/main/zh/example/media/sensor.html

2 Answers