Domanda:
Come stimare la temperatura del colore dell'illuminante da una fotografia di una cartella colori standard?
goldenmean
2010-11-30 17:01:06 UTC
view on stackexchange narkive permalink

Sto lavorando a una fotocamera digitale. Devo calcolare la temperatura del colore dell'illuminante in modo programmatico utilizzando un algoritmo (non utilizzando uno strumento di terze parti di Adobe o ecc.).

Nel mio caso le immagini vengono catturate utilizzando la mia fotocamera sperimentale / in fase di sviluppo e l'illuminante non è un illuminante standard con una temperatura colore nota. Ne ho bisogno per la correzione del colore / il bilanciamento del bianco. Sto cercando di stimare la temperatura del colore (gradi Kelvin) di un illuminante della sorgente di luce sulla base di alcune statistiche dei dati RGB o dei dati Raw Bayer dell'immagine acquisita, ad esempio una cartella colori standard (24 campioni di colore) sotto questo illuminante.

Come posso stimare la temperatura del colore dai dati di questa cartella colori?

Qualsiasi puntatore o materiale di lettura o algoritmo che ne parla sarebbe di aiuto.

Vorrei offrire una risposta, tuttavia sono curioso di una cosa prima di farlo. Stai cercando di creare un algoritmo di bilanciamento del bianco automatico o stai cercando di fare qualcos'altro? Il bilanciamento del bianco non dovrebbe necessariamente (o addirittura essere in grado di) conoscere la temperatura del colore di una sorgente di luce arbitraria, ma è possibile bilanciare automaticamente il bianco di un'immagine.
jrista: So che si può eseguire il bilanciamento automatico del bianco senza conoscere la temperatura del colore dell'illuminante, semplicemente ottenendo i coefficienti di scala usati per scalare i valori RGB ed eseguire l'AWB. Sto cercando di fare qualcos'altro.
@gloldenmean: Puoi spiegare più in dettaglio cosa stai cercando di fare? Penso di avere un'idea generale, ed è probabilmente possibile, anche se probabilmente richiederebbe un lavoro algoritmico di fantasia per raggiungere.
Tre risposte:
#1
+4
Edgar Bonet
2011-12-19 15:28:09 UTC
view on stackexchange narkive permalink

Per semplificare le cose, utilizza una carta grigia neutra invece di un colorchecker. Oppure usa solo una toppa neutra del controllo colore. Devi identificare nell'immagine l'area che corrisponde alla pertinente patch / scheda grigia, quindi media separatamente i pixel R, G e B grezzi su quest'area. Assicurati che nessuno di questi pixel sia saturo, altrimenti ricomincia da capo con un'esposizione inferiore.

Ti ritroverai con una terzina (R, G, B) che è il colore del tuo illuminante nello spazio colore nativo della tua fotocamera. Converti quindi nello spazio colore standard CIE utilizzando una formula come

  ⎛X⎞ ⎛ ⎞ ⎛R⎞⎜Y⎟ = ⎜ matrice 3 × 3 ⎟ ⎜G⎟⎝Z⎠ ⎝ ⎠ ⎝B⎠ 

dove la matrice è la matrice dei colori del tuo sensore Bayer, che si spera già conosci. Da qui, puoi calcolare la temperatura del colore correlata utilizzando formule standard.

#2
+2
jrista
2010-12-01 09:03:46 UTC
view on stackexchange narkive permalink

Quello che stai cercando di fare può essere un problema molto complesso. La teoria del colore, la correzione del colore / bilanciamento del bianco, ecc. È un campo molto complesso. Per essere sicuro di aver capito, stai cercando di creare un algoritmo in grado di impostare correttamente il bilanciamento del bianco di una scena in base alla fonte di luce illuminante nella scena. Potrebbe essere possibile fare ciò che devi fare e molti degli algoritmi che dovresti utilizzare dovrebbero essere disponibili in questi giorni.

Alcuni punti da considerare e da tenere in considerazione nella tua elaborazione:

  • Nessuna sorgente di luce in scena
    • Ad esempio: il sole che illumina una scena da dietro il fotografo
    • Un altro esempio: flash fuori scena o altra illuminazione
    • Questo è probabilmente il problema più grande e renderebbe praticamente impossibile eseguire qualsiasi correzione del colore basata sulla sorgente di luce
  • Più sorgenti di luce
    • È possibile che vi siano più sorgenti luminose con la stessa temperatura di colore
    • Di maggiore importanza sono più sorgenti luminose con differenti temperature di colore
    • Domanda chiave: cosa vuoi che accada se una scena è illuminata con più sorgenti di luce di colore diverso?
  • Sorgenti di luce ambientale e puntiforme
    • Esempio: il sole che illumina una stanza attraverso una finestra , con illuminazione aggiuntiva che illumina l'ombra parti
    • Domanda chiave: su quale fonte vuoi bilanciare il bianco?
  • Fonti di luce di colore radicale
    • A volte hai scene illuminate da sorgenti di luce primarie di colori radicali
    • Ad esempio: rosso, verde, blu, viola, giallo, ecc.
    • Il piano blu / giallo / rosso può essere considerato estremi di temperatura del colore normale
    • Il piano verde / viola / magenta potrebbe essere considerato gli estremi della tinta
    • Nessun colore saturo, primario o secondario, è un buon obiettivo per il bilanciamento del colore di una scena, poiché probabilmente produrrebbe una pronunciata dominante di colore nella tua immagine
    • Domanda chiave: cosa fai quando la tua scena non ha un'illuminazione principale o ambientale comune ed è interamente o principalmente illuminata da colori radicali?

Se escludiamo nessuna illuminazione in scena e colori radicali dallo spazio problematico, è probabilmente possibile identificare e misurare la temperatura del colore delle sorgenti luminose in scena. Oggigiorno sono disponibili alcuni algoritmi di rilevamento della forma abbastanza avanzati che, a condizione di avere una base decente o forme di sorgenti luminose note, consentirebbero di identificare tutte le sorgenti luminose in una scena. Dopo aver identificato ciascuna sorgente di luce, potresti probabilmente utilizzare una sorta di calcolo del tristimolo per determinare la temperatura del colore della sorgente di luce, prendendo i valori dei sottopixel verdi, rossi e blu o i valori dei pixel bayer RAW con pesi adeguati per generare le tre luminanze picchi. Una media di campioni dall'area della sorgente di luce (come scoperto dalla fase di identificazione precedente) potrebbe produrre una lettura della temperatura del colore abbastanza accurata (ma probabilmente non del tutto accurata, poiché i dati digitali saranno sempre meno accurati dei dati analogici originali). / p>

Il tuo algoritmo diventa particolarmente complesso quando coinvolgi un'illuminazione della scena non standard o radicale. Sorgenti di luce estremamente sature non rappresentano buoni obiettivi di bilanciamento del bianco, poiché sono lontane dalla gamma "bianca" di una gamma di colori. È molto importante sapere quale parte della scena è più "neutra" in modo da poter scegliere un "grigio o bianco" appropriato su cui basare il bilanciamento del bianco, poiché è fondamentalmente il modo in cui funziona il bilanciamento del bianco . Potrebbe essere possibile bilanciare il colore della scena in base a un colore di base diverso, come il rosso, tuttavia non so esattamente come dovresti modificare le formule matematiche esistenti per adattarsi a un tale approccio (c'è una buona quantità di matematica complessa coinvolto nella teoria del colore.)

La situazione più difficile è quando non ci sono fonti di luce nella scena. Se la scena è illuminata da una fonte di luce fuori scena, sarebbe praticamente impossibile calcolare la sua temperatura di colore. Se vuoi adottare un approccio abbastanza radicale al design della fotocamera, potresti mettere alcuni sensori di misurazione della luce di base su tutti i lati del corpo della fotocamera. Ciò consentirebbe di misurare la luce da tutte le direzioni, tuttavia non sarebbe del tutto accurato e i guadagni per tutta la complessità extra sarebbero probabilmente minori. Un altro approccio potrebbe essere quello di creare un dispositivo hotshoe in grado di connettersi a più misuratori spot in grado di fornire letture accurate dell'illuminazione alla telecamera per qualsiasi fonte di luce a cui si punta un misuratore. Scene con più sorgenti luminose o sorgenti con colori radicali rappresenterebbero comunque un algoritmo molto complesso.

Cercare di determinare la temperatura del colore delle sorgenti luminose delle scene da una semplice foto di una scheda di correzione del colore, ad esempio, sarebbe estremamente difficile se non addirittura impossibile. Dovresti fare troppe supposizioni, o dovresti sapere in anticipo, che tipo di luce illumina la tua scena. Questo è generalmente il motivo per cui il bilanciamento del bianco / le correzioni del colore vengono solitamente eseguite impostando il bilanciamento del bianco della scena in base a un colore neutro noto in una scena. Fotografare un paesaggio due volte con la stessa illuminazione, una volta con e una volta senza una scheda di correzione del colore, consente di scegliere un colore neutro o bianco puro valido durante la post-elaborazione, che imposterà il corretto bilanciamento del colore. Io stesso ho l'X-Rite ColorChecker Passport, che include due file di campioni di correzione del colore. Una riga è per i paesaggi e l'altra per i ritratti e passano da macchie di colore leggermente fredde a macchie di colore leggermente calde. Posso impostare il tipo di bilanciamento del colore che desidero per le mie scene, che tende ad essere più caldo per la fotografia di paesaggio e più neutro nei toni del bianco (5500k-6500k) per cose come la fauna selvatica o la macro.

Se stai facendo qualcosa di notevolmente più specializzato, potresti essere in grado di definire uno spazio problematico più piccolo all'interno del quale puoi creare un algoritmo che fa ciò di cui hai bisogno. Lo spazio problematico dovrebbe essere abbastanza ristretto, con parametri e limiti piuttosto ben definiti, al fine di generare abbastanza dati ben noti per aiutare l'algoritmo a prendere le decisioni corrette quando bilancia il bianco di una scena. Qualsiasi scena senza sorgenti di luce primarie all'interno del fotogramma sarà molto difficile da eseguire qualsiasi bilanciamento del bianco automatico o correzione del colore.

Grazie. Poche altre domande se lo consenti. 1] Come generare i 3 picchi di luminanza - È calcolando la media dei dati R, G e B ottenuti dopo la demosaicizzazione? 2] Cosa intendi per "la media dei campioni produrrà una lettura della temperatura del colore abbastanza accurata"? Quali sono i passaggi di calcolo qui?
#3
+1
lindes
2010-12-01 02:28:20 UTC
view on stackexchange narkive permalink

Ti capisco bene che lo scopo di tutto questo è costruire una nuova fotocamera digitale? Cioè stai lavorando allo sviluppo del firmware e quel genere di cose?

In tal caso, sembra che ci siano alcune buone informazioni sull ' articolo sulla temperatura del colore di wikipedia, in particolare la sezione Calcolo.

Questo non è qualcosa che ho effettivamente fatto prima, quindi la mia conoscenza è limitata. Dovrei pensare, tuttavia, che una parte fondamentale di questo sia sapere di cosa è l'immagine. Quindi, scattare una carta bianca o grigia neutra, con un'illuminazione uniforme, sarebbe una scelta ovvia. E anche la tua scelta di una cartella colori standard è buona, a condizione che il tuo software sappia su quale parte della scheda si basa un determinato set di pixel su cui farai i calcoli. Quindi, se hai intenzione di fare una serie di scatti di quella scheda in diverse situazioni di illuminazione, ti consigliamo di creare una sorta di rig che possa mantenere la scheda nello stesso posto rispetto alla fotocamera per ogni scatto, oppure determinare la posizione della carta (magari con rilevamento dei bordi e / o metodi simili).

Ovviamente, ti consigliamo di controllare anche i tuoi risultati con valori noti .. Potrebbe essere necessario acquistare un misuratore di luce colorimetrico o altri dispositivi simili per fare davvero questo. E ce ne sono di diversi tipi ... quelli pensati per i fotografi (o i videografi o i fotografi cinematografici) sembrano presentarsi con una ricerca su Google, mentre esistono anche quelli che potrebbero essere più orientati al laboratorio . Conosco qualcuno con un metro, ad esempio, che ha una piccola sfera (1 cm di diametro, o giù di lì) all'estremità di un'asta, che poi si collega a una porta USB di un computer e misura l'intensità della luce a varie frequenze, dando una vera analisi dello spettro di una sorgente luminosa. Non sono sicuro di come si chiami esattamente quel dispositivo, ma probabilmente potrei scoprirlo, se è utile.

Ovviamente, anche quei dispositivi devono farlo in qualche modo, quindi forse solo imparare la teoria e la matematica farà il trucco? :) Vari elementi utili (e sono sicuro alcuni meno utili) possono essere trovati con una ricerca su Google. Immagino che tu abbia davanti a te alcune ricerche serie, oltre l'ambito di ciò a cui sarai in grado di ottenere risposte difficili qui. Spero che questo ti dia alcuni punti di partenza, però.

@Yes: Ho intenzione di fissare la scheda a una morsa fissata a un tavolo, il dispositivo della fotocamera anche fissato a un morsetto e cambiare le fonti di luce.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 2.0 con cui è distribuito.
Loading...