V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
kokutou
V2EX  ›  问与答

求一个亮度自适应的思路

  •  
  •   kokutou · 2015-02-18 20:08:10 +08:00 · 3033 次点击
    这是一个创建于 3563 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Arduino 的一个组件,是用一个小芯片获得颜色信息的。
    由一个白色led照射物体,然后光反射到芯片上。

    这个颜色信息关键的获取地方是:

    如果有光照射芯片,
    在一段时间 t 内,一种颜色比如 r 会一直返回脉冲 rn ,
    最后就有颜色的几个数值, rn gn 和 bn
    再把它们 map 到 0-255 ,(map函数是:比如 0 - 2000 的范围,map 到 0 - 255,如果是1000 的话,map出来的就是 127左右,这样子) 就是 rgb 值了。

    那么问题是:
    map 要指定一个范围,
    这个范围固定后,那么在反射光亮度不高,那么 map 出来的值就很小,可能就在 0-30 的样子,接近黑色。或者反射光太强了, map出来的值就太大,一直在 240以上,接近白光了。

    这样这个取色就只能在一定的反射距离内,然后周围还不能太亮或者太暗。

    就是这个范围怎么才能动态计算,像手机摄像机的亮度自适应一样。
    求个思路~

    6 条回复    2015-02-18 22:54:33 +08:00
    Septembers
        1
    Septembers  
       2015-02-18 20:17:39 +08:00
    kokutou
        2
    kokutou  
    OP
       2015-02-18 20:20:33 +08:00
    @Septembers lux 是靠猜吧,经纬度时间等猜出外界亮度,再调整屏幕亮度,压根就没传感器。。。
    这没关系啊。。。

    你是认真的,么!- -
    loading
        3
    loading  
       2015-02-18 20:23:36 +08:00 via Android
    光敏电阻不好吗?
    mhycy
        4
    mhycy  
       2015-02-18 20:37:49 +08:00
    你需要的是一个信号自动增益控制(AGC)模块,但是这是需要参照物的。
    对于摄像机,参照可以直接是CMOS单元产生的电压/电流强度。
    那么只要稳定在一个合适的范围就对了,最高的子像素电平不超过处理上限就行。
    下限就不管了,反正取的是一个固定的区间(动态范围)

    对于你这个需求,首先你需要获得一个独立于最终颜色值的一个数据用于前置处理。
    不然依赖颜色是无法计算的。
    akfish
        5
    akfish  
       2015-02-18 21:03:56 +08:00
    你需要在可控环境下做校准,通过实验获得传感器在特定亮度下的频率响应曲线。
    至于亮度对于测量结果的影响,你可以在不同亮度条件下测量多组响应曲线,尝试拟合出频率响应曲线以亮度为自变量的函数。然后测量时先测亮度,用测得得的亮度计算响应曲线。
    要么就限制使用环境,比如采样点保持黑暗,用已知的人工光源照明。

    你可以去找些现成的color sensor的datasheet来看看,比如:
    https://www.sparkfun.com/datasheets/Sensors/Imaging/AV02-0314EN.pdf
    第5页就是响应曲线
    kokutou
        6
    kokutou  
    OP
       2015-02-18 22:54:33 +08:00
    @loading 光敏电阻没光敏二极管灵敏,我用的这个传感器就是基于光敏二极管的,所以一样会有个过亮和过暗问题。

    @mhycy
    @akfish
    感谢~
    “拟合出频率响应曲线以亮度为自变量的函数” 就按这个来了~
    最暗到最亮之间做很多采样点,然后做亮度适应~
    调调参数我想大概就能到我要的效果了~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1889 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:22 · PVG 00:22 · LAX 08:22 · JFK 11:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.