如何使用iPhone相机检测光强度

15

有没有办法使用iPhone检查光线强度?API允许这样做吗?

2个回答

16

1
我对那个教程不是很确定。是的,它可以让你找出一张图片的亮度,但它忽略了拍摄照片时使用的所有设置。相机实际上需要做很多工作来拍摄具有平衡亮度的照片(调整快门、可能的光圈、ISO)。你可以进行长时间曝光或非常短暂的白天曝光,并获得相同的亮度值。 - drewish
原问题涉及光强度,这对我来说意味着更像是一个光度计。因此,我认为答案实际上应该做得更多,而不仅仅是给出一个坎德拉的定义,然后完全忽略它。 - drewish
本教程解决了以下问题:“大部分iOS设备配备的摄像头会根据环境光线自动调整亮度,这可能会影响结果的准确性,但是这种调整不足以使算法输出变得毫无意义。” - user293895
它承认了问题存在,但接着解决了一个完全不同的问题。 - drewish
1
链接已损坏,请检查。 - Juan Boero
显示剩余2条评论

5

我想您可以轻松地完成以下操作:

  1. 获取一张静态图片 => UIImage
  2. UIImage转换为CGImageRefUIImage.CGImage)。
  3. 现在,读取每个像素的颜色并执行以下代码:x += (red + green + blue) / 3.f;
  4. 计算平均亮度:avg = x / numberOfPixels;

avg现在会给您一个浮点数,表示静态图像的平均亮度。大多数情况下(如果不是总是),这将与光强度相同。


1
需要注意的一件事是曝光模式(以及其他设置,如白平衡)。快速查看文档后,您可以将曝光模式锁定在当前值,但不确定实际意义。您真正想要的是没有任何处理的RAW图像,以便您可以获得准确的处理值。我还会小心地选择图像返回的格式,如果您获得BGRA,则还应查看alpha通道。 - brain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接