| Home > Gestione digitale del colore > Argomenti avanzati > Tecnologia ICC | |||||||||||
| Matematica del profilo ICC a matrice | |||||||||||
| In questa pagina viene indicato in dettaglio come il motore di colore ICC utilizza un profilo a matrice per calcolare una conversione di colore. In altre parole vengono indicati in dettaglio gli algoritmi implementati dai profili ICC a matrice. Per comprendere questi algoritmi occorre avere qualche nozione di algebra lineare: matrici, moltiplicazione di matrici, matrice inversa. Gli algoritmi sono due: il primo (diretto) viene applicato quando il profilo è usato come origine, il secondo (inverso) quando il profilo è usato come destinazione. Le specifiche ICC obbligano a costruire il profilo ICC a matrice in modo che la conversione di colore sia colorimetrica relativa in cui il bianco dello spazio di origine, viene mandato nel bianco del PCS (nell'algoritmo diretto) e il bianco del PCS nel bianco di destinazione (nell'algoritmo inverso). In altre parole la matrice è sempre costruita in modo tale che faccia corrispondere R=G=B=255 in L=100, a=b=0. Se la matrice (di un monitor) contenesse semplicemente le coordinate cromatiche dei fosfòri RGB questo non accadrebbe (perché l'algoritmo calcola una corrispondenza precisa, assoluta, tra RGB e Lab). Dunque la matrice contenuta nel profilo ICC non è quella delle coordinate cromatiche dei fosfòri ma quella adattata cromaticamente (cioè modificata) in modo che l'algoritmo calcoli una corrispondenza relativa. Per avere una conversione colorimetrica assoluta è necessario conoscere come tale adattamento è stato effettuato, cioè quali modifiche sono state fatte alla matrice originale, per poterla ricostruire. |
|||||||||||
| Algoritmo da RGB a XYZ | |||||||||||
|
I dati contenuti in un profilo a matrice servono per implementare questo algoritmo di conversione di un colore RGB (supponendo che i valori RGB siano a 8 bit, cioè possano variare da 0 a 255) a XYZ.
Esempio numerico
Il colore RGB definito nello spazio AdobeRGB e di cui vogliamo trovare le coordinate XYZ è 220, 254, 20 (un verde).
La corrispondenza tra RGB e XYZ è relativa (per come è costruita la matrice), il che significa che R=255, G=255, B=255 dovrà corrispondere al bianco di XYZ richiesto dalle specifiche ICC (D50) cioè X = 0.9642, Y = 1, Z = 0.8249. Infatti il valore del bianco normalizzato è 1 1 1, applicando il gamma rimane 1 1 1. Moltiplicando la matrice per questo vettore si ottiene la somma delle righe, cioè 0.9642, 1, 0.8250 (il valore corretto è 0.82491, errore di approssimazione). |
|||||||||||
| Algoritmo da XYZ a RGB | |||||||||||
|
Se il profilo è di destinazione, la conversione da XYZ a RGB si effettua con questo algoritmo
Esempio numerico |
|||||||||||
![]() |
|||||||||||
|
La matrice inversa è
Prendiamo il valore X = 0.6447, Y = 0.8454, Z = 0.0772 a cui siamo arrivati nell'esempio precedente e ci chiediamo a quali valori RGB corrisponde nello spazio ColorMatch.
|
|||||||||||
| Intento colorimetrico assoluto | |||||||||||
| I dati del profilo ICC sono tali che la corrispondenza trovata con gli algoritmi sopra indicati è relativa. Per avere una corrispondenza assoluta è necessario modificare i dati prima di applicare l'algoritmo. Poichè la matrice è stata adattata cromaticamente, la modifica dei dati consiste nel neutralizzare tale adattamento cromatico, e per questo è necessario conoscere come tale adattamento è stato effettuato, cioè quali modifiche sono state fatte alla matrice originale (per poter tornare indietro). Questa è una informazione che è stata inserita solo nella versione 4 delle specifiche ICC. I profili conformi alla versione 2 delle specifiche non contengono questa informazione e i motori di colore devono in qualche modo "arrangiarsi" per realizzare una conversione colorimetrica assoluta. |
|||||||||||
| Risorse online | |||||||||||
|
Per questi calcoli conviene utilizzare il foglio Excel RGBtoRGB pubblicato da Charles Cowens nel suo sito web. |
|||||||||||
|
|
|||||||||||