如何检测照片上的阳光


11

拍摄照片时,您如何通过算法检测给定的照片,太阳是否在照耀?

例子

来自此摄像头的山顶示例:

阳光的例子

显然,阳光明媚。

在另一个示例中,它远不那么明显:

多云的例子

通过尝试识别中心小教堂上的小教堂尖顶,可能很容易就能发现是否有雾。但是,对图像处理了解甚少,如果有一种(组合的)算法可以可靠地判断是否有阳光,我会感到惊讶。


1
我认为它非常适合CS.SE。如果您询问有关imagemagick脚本的问题,该脚本将根据阳光对照片进行排序,那么它将不合适。
frafl 2013年

1
您是说要检测当时太阳是否在发光,还是要检测太阳在哪里(方向)?
Paresh 2013年

@Paresh,拍照时太阳是否在照耀(想想网络摄像头)。
MarcelStör13年

1
关于神经网络愚蠢有一个有趣的轶事:五角大楼试图用神经网络检测照片上的敌方坦克。但是最后他们有了一台价值数百万美元的大型计算机,可以将阴天拍摄的照片与晴天拍摄的照片区分开。:-)
uli 2013年

我们可以假设使用经过校准的相机吗,也就是说,我们可以信任颜色吗?
拉斐尔

Answers:


9

如果您可以访问元数据,则可以应用多种启发式方法:

  1. 检查白平衡设置,相机已选择照片。基本上,它表示拍摄照片时光线的色温。通常阳光大约为5500开尔文。室内照明或阴天,通常会有不同的温度。

  2. 检查曝光设置。通常,当阳光普照时,会有更多的可用光线,因此这会影响以下设置:

    1. 较低的快门速度
    2. 较低的ISO设定
    3. f值较高

    在过去的摄影中,Sunny 16规则用于估计曝光。您可以将其与上面列表中的信息一起使用,以检查照片是否在白天拍摄。

  3. 检查闪光灯是否闪光

  4. 检查照片的拍摄时间。假设用户已配置时钟,则可以立即删除夜间拍摄的照片。

但是,如果您只是想从图像处理的角度解决此问题。我可以说阳光通常具有更高的对比度和更粗糙的边缘。因此,直方图分析和发现苛刻的边缘可能会提供很好的指示。

假设您要处理的照片为原始图像格式,则可以应用上述相同的白平衡技巧。但是不适用于jpeg或png 等标准图像。这是因为相机上的图像处理器已经补偿了色温的偏移,并将结果烘焙到最终图像中,仅将wb设置记录在元数据中。


当我读到“检查照片的拍摄时间”时,我在地板上滚动。但是,我不确定OP是否要重建相机的功能。
frafl 2013年

@frafl,我添加了两个示例
MarcelStör13年

@frafl启发式是解决问题,学习或发现的任何方法,采用的方法不保证最优或完美,但足以满足近期目标。检查照片的拍摄时间(如果甚至不知道位置的话)将是一个完全可以接受的启发式方法。
Andy Gee
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.