如何测量图像的环境光线水平?

时间:2010-07-20 04:01:16

标签: c objective-c image-processing

我正在制作一款应用程序,它使用相机测量拍摄图像时的光线量。一些条件行为将根据存在多少光线而发生 - 即如果看起来像是黑暗的话,会显示一条消息“看起来像睡前”。

据我所知,由于曝光和类似的事情,这对于实际存在的光量来说是一个很差的衡量标准,但它不需要非常准确。

我没有图像处理经验,所以我甚至不知道该问什么,或者什么是可行的。这可能吗?做这样的事情有没有C库?

3 个答案:

答案 0 :(得分:2)

通过使用相机的已知或假定gamma将每个像素的每个颜色通道值转换为其强度,可以进行非常粗略的估计。然后只是对整个图像的强度求和。

如果您希望水平近似于人类观察到的水平,您将使绿色通道强度更高,蓝色通道更低(因为我们的眼睛对绿色特别敏感,对蓝色不敏感)。

答案 1 :(得分:1)

第一个随机的想法,就像一个阈值过滤器,删除“对象”,从源图像中留下什么,并再次将其阈值,计算白色与黑色像素,应该给你一个非常粗略的光与暗的概念。 Thresholding

答案 2 :(得分:0)

如果它需要非常准确,您应该考虑使用一些回归技术,例如最小二乘(特别是偏最小二乘)。使用这些方法,您可以获得一组训练数据(多次参考),并进行比较和插值以找到时间的近似值。

如果不需要那么精确,只需计算白/黑的平均像素距离就可以得到很好的近似值。如果相机具有自动曝光功能,您也可以将其考虑在内。