目标
当前状态
挑战
步骤
问题
到目前为止的想法:
AE_MODE_ON
就可以从Camera2自动曝光(AE)程序中读出“建议”,则可以轻松计算出EV。但是,到目前为止,我还没有找到用于此的API。我想如果不对设备进行路由是不可能的。也许我看不到更简单的解决方案。有人做过这样的事情吗?
当图片仅在特定的光照条件下拍摄,例如“室外,阴天”:
[Tabulated values可以用于曝光值(EV),而不是使用光度测量。
示例
与those formulas一起使用该公式,我们可以根据以下公式计算iso:
另外,我们可以添加一个UI选项来选择“轻情况”,例如:
这可能不是最准确的方法,但就目前而言,这是继续进行原型制作的第一种简便方法。
是,您需要实现自己的自动曝光算法。所有“真实” AE都必须经过传感器捕获的图像,因此,从理论上讲,您可以构建出能够猜测正确的光照水平的东西。
在实践中,您不可能匹配它,这是因为您有一个更长的反馈循环(AE算法可能比同步应用欺骗一些,并且比应用程序可以更快地更新传感器设置),并且因为AE算法可以使用硬件统计单位(收集整个场景的直方图和平均值),从而使其效率更高。
但是一种简单的自动曝光算法将对整个场景(或场景的一部分,或场景的十分之一像素等)求平均,如果该平均值低于最大值的一半,则增加ISO,然后如果高于,请减少。换句话说,一个基本的反馈控制回路。涉及所有与稳定性,收敛性等有关的问题。因此,对控制理论的一点了解可能会很有帮助。我建议将低分辨率的YUV输出(可能是640x480?)从相机发送到ImageReader用作源数据,然后再查看Y通道。在这种情况下,不会产生大量数据。
或者如hb0所述,如果您的室外条件非常有限,则可以尝试对每个条件进行硬编码。但是室外亮度的范围可能很大,因此这需要进行大量测试才能确保其正常工作,并且每次都需要手动选择正确的值。