Nella serie dcraw
dcraw: conversione di colore
Dopo il bilanciamento del bianco e la demosaicizzazione, dcraw fa una conversione di colore dallo spazio del sensore ad uno spazio scelto dall’utente tra questi:
- dcraw -o 0 non fa nessuna conversione, lascia i dati Raw nello spazio del sensore;
- dcraw -o 1 calcola una conversione dallo spazio del sensore allo spazio sRGB <-default
- dcraw -o 2 … allo spazio Adobe RGB
- dcraw -o 3 … allo spazio WideGamut
- dcraw -o 4 … allo spazio ProPhoto
- dcraw -o 5 … allo spazio XYZ
Per quanto riguarda l’origine di questa conversione, dcraw utilizza le stesse matrici utilizzate dalle ultime versioni del software Adobe: Camera Raw, Lightroom e DNG Converter.
Ogni diversa fotocamera ha una propria matrice, la cui versione originale si può estrarre (per esempio con Exiftool) da una immagine (scattata con quella fotocamera) e convertita in formato DNG, oppure si può trovare nel codice di DNG Software Development Kit, SDK.
In dettaglio la matrice utilizzata è la ColorMatrix2, cioè quella riferita all’illuminante D65 (Camera Raw contiene anche una matrice riferita all’illuminante A, ma questa non viene usata da dcraw). Per esempio la matrice per la fotocamera Nikon D40 sotto illuminante D65 è
0.6992 -0.1667 -0.0806
-0.8138 1.5748 0.2543
-0.0874 0.085 0.7896
La versione usata da dcraw si trova nel codice stesso di dcraw subito dopo il commento
Thanks to Adobe for providing these excellent CAM -> XYZ matrices!
Per quanto riguarda la destinazione di questa conversione dcraw utilizza le matrici che definiscono i vari spazi (sRGB, Adobe RGB, WideGamut, ProPhoto) adattate all’illuminante D50.
La conversione di colore si riduce ad una moltiplicazione di matrici: la matrice che converte da sensore a XYZ e la matrice che converte da XYZ allo spazio RGB scelto.
—
Se nella compilazione di dcraw è stato usato il parametro -DNO_LCMS, la libreria lcms.h (cioè Little CMS) non viene inclusa nel compilato e le uniche conversioni di colore possibili sono quelle indicate qui sopra.
Se invece questa libreria è stata inclusa, si possono usare profili ICC per la conversione di colore, con i comandi
- dcraw -p camera.icm utilizza il profilo camera.icm come profilo del sensore e converte a sRGB;
- dcraw -p camera.icm -o output.icm utilizza il profilo camera.icm come profilo del sensore e converte al profilo output.icm;
- dcraw -p embed utilizza il profilo ICC incorporato nella immagine Raw.
Questi comandi sostituiscono i comandi -o visti sopra.
Torna all'indice di dcraw
2 commenti
Vuoi fare un commento a questo post?
Devi essere collegato per scrivere un commento.
Ciao Mauro,
una curiosità è che nella manpage di DCRAW viene nominato uno spazio ” Kodak ProPhoto RGB D65″
Quando ho tradotto per la prima volta la manpage in italiano, ho fatto notare a Dave Coffin che Prophoto è definito sul D50 e non sul D65
Lui mi ha risposto che hanno “ridefinito” Prophoto sul D65
Non ho indagato oltre in merito alla sua risposta, ma mi chiedo ancora che motivo abbia avuto di fare ciò, ma soprattutto che cosa abbia voluto dire?
Alberto Maccaferri
AlbertoM
23/10/08 alle 17:42
Non saprei. Noto solo che anche WideGamut è in D50 e lui lo usa invece in D65.
Avrà applicato una CAT (trasformazione di adattamento cromatico) per portare tutti i suoi spazi di destinazione (sRGB, Adobe RGB, WideGamut, ProPhoto) a D65.
E questo forse per accoppiare le matrici di destinazione alla matrice di origine della conversione, cioè quella dello spazio del sensore (presa da Adobe), che è in D65.
Chissà, è tutto un campo da indagare.
Ciao.
Mauro Boscarol
23/10/08 alle 18:42