Cómo detectar la luz solar en una foto

11

¿Cómo detectaría algorítmicamente para una foto determinada si el sol brillaba cuando se tomó la foto?

Ejemplos

Una muestra de esta cámara web en la cima de una montaña:

ejemplo de sol

Claramente el sol está brillando.

En esta otra muestra es mucho menos obvio:

ejemplo nublado

Probablemente se podría detectar con bastante facilidad si hay niebla al tratar de identificar la pequeña aguja de la iglesia en la capilla en el centro. Sin embargo, sabiendo muy poco sobre el procesamiento de imágenes, me sorprendería si hubiera un (combinación de) algoritmo que pudiera determinar de manera confiable si hay sol o no.

Marcel Stör
fuente
1
Creo que encaja muy bien con CS.SE. No encajaría si preguntaras por un script de imagen mágica que clasifique tus fotos según la luz del sol.
frafl
1
¿Te refieres a detectar si el sol estaba brillando en ese momento o no, o detectar dónde (orientación) brillaba el sol?
Paresh
@Paresh, si el sol brillaba en el momento en que se tomó la foto (piense en la cámara web).
Marcel Stör
1
Existe una bonita anécdota sobre las locuras de las redes neuronales : el Pentágono intentó detectar los tanques enemigos en las fotos con una red neuronal. Pero al final tenían una computadora central multimillonaria que podía distinguir fotos que tomaban en un día nublado de las que se tomaron en un día soleado. :-)
uli
¿Podemos suponer una cámara calibrada, es decir, podemos confiar en los colores?
Raphael

Respuestas:

9

Si puede acceder a los metadatos, puede aplicar una serie de heurísticas:

  1. Compruebe la configuración del balance de blancos , la cámara ha elegido para la foto. Básicamente indica la temperatura de color de la luz en el momento en que se tomó la foto. Por lo general, la luz solar es de alrededor de 5500 Kelvin. La iluminación interior o los días nublados, suelen tener temperaturas diferentes.

  2. Verifique la configuración de exposición . Por lo general, cuando brilla el sol, hay más luz disponible, por lo que esto influye en las siguientes configuraciones:

    1. Una velocidad de obturación más baja
    2. Una configuración ISO más baja
    3. Un valor f más alto

    En los viejos tiempos de la fotografía, la regla Sunny 16 se usaba para estimar la exposición. Y puede usarlo, junto con la información en la lista anterior, para verificar si la foto fue tomada durante el día.

  3. Compruebe si se disparó un flash o no.

  4. Verifique la hora en que se tomó la foto . Suponiendo que el usuario haya configurado el reloj, puede eliminar de inmediato las fotos tomadas por la noche.

Sin embargo, si desea abordar este problema simplemente desde el punto de vista del procesamiento de imágenes. Puedo decir que la luz solar generalmente tiene un mayor contraste y bordes más duros. Por lo tanto, el análisis del histograma y la búsqueda de bordes ásperos pueden ser una buena indicación.

Suponiendo que las fotos que está procesando están en formato de imagen sin procesar , puede aplicar el mismo truco de balance de blancos descrito anteriormente. Sin embargo, esto no funciona para imágenes estándar como JPEG o PNG. Esto se debe a que el procesador de imagen de la cámara ya compensa el cambio en la temperatura de color y hornea el resultado en la imagen final, simplemente registrando la configuración de wb en los metadatos.

deciden
fuente
Estaba rodando por el suelo, cuando leí "Comprueba la hora en que se tomó la foto". Sin embargo, no estoy seguro de que el OP quiera reconstruir lo que hizo la cámara.
frafl
@frafl, agregué dos ejemplos
Marcel Stör el
@frafl Una heurística, es cualquier enfoque para la resolución de problemas, el aprendizaje o el descubrimiento que emplea un método práctico que no se garantiza que sea óptimo o perfecto, pero suficiente para los objetivos inmediatos. Verificar la hora en que se tomó la foto (si la ubicación se conoce incluso parcialmente) sería una heurística perfectamente aceptable.
Andy Gee