colore digitale blog

Il blog di Mauro Boscarol sulla gestione digitale del colore dal 1997

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

Mauro Boscarol

23/10/2008 alle 16:26

Parole chiave ,

Visitato 842 volte, negli ultimi 7 giorni 1 visite

2 commenti

Abbonati ai commenti a questo post con RSS o TrackBack.

  1. 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

  2. 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

Vuoi fare un commento a questo post?

Devi essere collegato per scrivere un commento.