【问题标题】:android camera get light sensor valueandroid相机获取光传感器值
【发布时间】:2012-07-11 09:30:21
【问题描述】:

我知道如何使用 android.hardware.sensor 从光传感器获取勒克斯值。

我在市场上看到了light meter tools。应用程序描述说它可以从相机中获取勒克斯值。怎么会这样?

还有如何设置快门速度和光圈?

【问题讨论】:

    标签: android android-camera


    【解决方案1】:

    android 相机 API 不为其捕获的图像数据提供任何绝对单位。此外,它不允许手动控制曝光或光圈(尽管基本上所有手机相机都没有可调光圈)。

    您可以从 JPEG EXIF 中找出静态捕捉所用的曝光时间,仅此而已。

    由于这些限制,您将很难从捕获的相机图像中获得绝对光测量值。您可能能够校准给定设备以将图像像素值转换为真实光照水平,但这会很复杂,因为所有设备都运行自动曝光和自动白平衡。使用 Android 4.0 中引入的自动曝光和自动白平衡锁定会有所帮助,但在勒克斯和捕获的像素值之间仍然存在未知的转换曲线(不仅仅是比例因子,它是伽玛曲线)。

    【讨论】:

      【解决方案2】:

      看看Camera.Parameters 类。

      它具有相机支持的所有功能。可能是setExposureCompensation。 我对摄影不太了解,但我的猜测是曝光补偿正在改变光圈或速度。

      可能是您提到的工具使用了捆绑的本机库。还可以看看Camera.Parameters 类中给出的函数是如何工作的(查看 android 源代码)。

      您还可以使用环境光传感器来获取以勒克斯为单位的光照水平(如果这在您的项目范围内)。来自安卓文档:

      传感器.TYPE_LIGHT:

      值[0]:以 SI 勒克斯为单位的环境光照水平

      Android Developer: Light Sensor-Sensor Event

      您可以在文档中找到有关光传感器的更多信息。

      Android Developer: Sensor

      【讨论】:

      • 我对我的答案进行了编辑,看看这些函数的来源,因为这会给你一个关于光感应的指示。
      【解决方案3】:

      同意,诀窍是拍照并读取其 EXIF 数据。 您可以找到有关 ExifInterface 文档的更多信息 http://developer.android.com/reference/android/media/ExifInterface.html

      根据iso和光圈值,可以计算shuyy

      【讨论】:

        猜你喜欢
        • 2011-09-20
        • 1970-01-01
        • 2011-12-27
        • 1970-01-01
        • 2012-09-21
        • 1970-01-01
        • 2014-07-14
        • 1970-01-01
        • 2012-05-04
        相关资源
        最近更新 更多