Come rilevare il sole su una foto


11

Come rileveresti algoritmicamente per una determinata foto se il sole splendeva quando è stata scattata la foto?

Esempi

Un campione da questa webcam in cima a una montagna:

esempio di sole

Chiaramente il sole splende.

In questo altro esempio è molto meno ovvio:

esempio nuvoloso

Probabilmente si potrebbe rilevare abbastanza facilmente se è nebbioso, cercando di identificare la piccola guglia della chiesa nella cappella al centro. Tuttavia, sapendo molto poco sull'elaborazione delle immagini, sarei sorpreso se esistesse un algoritmo (combinazione di) in grado di dire in modo affidabile se c'è luce del sole o no.


1
Penso che si adatti molto bene a CS.SE. Non si adatterebbe se ti chiedessi di uno script imagemagick che ordina le tue foto in base alla luce del sole.
frafl

1
Intendi rilevare se il sole splendeva in quel momento o no, o rilevare dove (orientamento) splendeva il sole?
Paresh,

@Paresh, se il sole splendeva al momento dello scatto della foto (pensa alla web cam).
Marcel Stör,

1
C'è questo delizioso aneddoto sulle follie della rete neurale : il Pentagono ha cercato di rilevare carri armati nemici su foto con una rete neurale. Ma alla fine avevano un computer mainframe multimilionario in grado di distinguere le foto scattate in una giornata nuvolosa da quelle scattate in una giornata di sole. :-)
uli

Possiamo assumere una fotocamera calibrata, ovvero possiamo fidarci dei colori?
Raffaello

Risposte:


9

Se riesci ad accedere ai metadati puoi applicare una serie di euristiche:

  1. Controllare l' impostazione del bilanciamento del bianco , la fotocamera ha scelto per la foto. Fondamentalmente indica la temperatura di colore della luce al momento dello scatto della foto. Di solito la luce solare è di circa 5500 Kelvin. Illuminazione interna o giorni nuvolosi, di solito hanno temperature diverse.

  2. Controlla le impostazioni di esposizione . Di solito quando il sole splende, c'è più luce disponibile, quindi questo influenza le seguenti impostazioni:

    1. Una velocità dell'otturatore più bassa
    2. Un'impostazione ISO inferiore
    3. Un valore f più alto

    Ai vecchi tempi della fotografia, la regola del Sunny 16 veniva utilizzata per stimare l'esposizione. E puoi usarlo, insieme alle informazioni nell'elenco sopra, per verificare se la foto è stata scattata durante il giorno.

  3. Controlla se un flash si è attivato o meno.

  4. Controlla l'ora in cui è stata scattata la foto . Supponendo che l'utente abbia configurato l'orologio, è possibile rimuovere immediatamente le foto scattate di notte.

Se tuttavia si desidera affrontare questo problema semplicemente dal punto di vista dell'elaborazione delle immagini. Posso dire che la luce solare ha di solito un contrasto più elevato e bordi più duri. Pertanto l' analisi dell'istogramma e la ricerca di spigoli vivi potrebbe fornire una buona indicazione.

Supponendo che le foto che stai elaborando siano in un formato di immagine non elaborato, puoi applicare lo stesso trucco per il bilanciamento del bianco sopra descritto. Questo tuttavia non funziona con immagini standard come jpeg o png. Questo perché il processore di immagini sulla fotocamera compensa già lo spostamento della temperatura del colore e trasferisce il risultato nell'immagine finale, semplicemente registrando il wb impostandolo nei metadati.


Stavo rotolando sul pavimento, quando ho letto "Controlla l'ora in cui è stata scattata la foto". Tuttavia, non sono sicuro che l'OP voglia ricostruire ciò che ha fatto la telecamera.
frafl

@frafl, ho aggiunto due esempi
Marcel Stör

@frafl Un euristico è un approccio alla risoluzione dei problemi, all'apprendimento o alla scoperta che impiega un metodo pratico non garantito per essere ottimale o perfetto, ma sufficiente per gli obiettivi immediati. Controllare il tempo in cui è stata scattata la foto (se la posizione è anche parzialmente nota) sarebbe un'euristica perfettamente accettabile.
Andy Gee,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.