570 likes | 888 Views
Modelli del colore 2 – Il colore digitale. Daniele Marini, Maurizio Rossi. 1 pixel = 3 fosfori R,G,B, illuminati con intensità variabile. RGB Color Display. Quanti colori?. Bit Numero di colori 1 2 1 2 2 2 2 4 3 2 3 8 4 2 4 16 5 2 5 32 6 2 6 64
E N D
Modelli del colore2 – Il colore digitale Daniele Marini, Maurizio Rossi
1 pixel = 3 fosfori R,G,B, illuminati con intensità variabile RGB Color Display
Quanti colori? Bit Numero di colori 1 21 2 2 22 4 3 23 8 4 24 16 5 25 32 6 26 64 7 27 128 8 28 256 16 216 65.536 (16 bit True Color) 24 224 16.777.216 (True Color) 32 232 24 bit True-Color + 8 bit Alpha Channel
256 Color Display (8 bit) (LUT) “Palette”
Approssimazione (“dithering”) Immagine originale (TrueColor) Immagine approssimata (256 colori)
Colori del Monitor RGB • Cromaticità dei fosfori e livello del bianco • Sono un sottoinsieme dei colori CIE • ESEMPIO:
Spazi colore: assoluti e relativi • X Y Z è quindi uno spazio colore assoluto definito sulla base delle caratteristiche umane • R G B è uno spazio colore relativo che dipende dal monitor (caratteristiche dei fosfori) • Problema: Ogni monitor ha caratteristiche cromatiche diverse che sono influenzate anche dalle regolazioni manuali!!! • Quindi: che senso ha definire il colore e le immagini digitali in termini di valori R G B ?
Da X Y Z a R G B • I valori di tristimolo R G B dei fosfori del monitor usati in computer grafica sono una trasformazione lineare dei valori X Y Z • La trasformazione lineare dipende dai valori di tristimolo dei fosfori del monitor
Da XYZ a RGB e viceversa Trasformazione lineare: • I coefficienti di M si ricavano dalle coordinate di cromaticità dei fosfori; nell’esempio un monitor standard. • è il fattore di correzione gamma del monitor
Limiti dello spazio colore XYZ • Esperimenti effettuati su volontari mostrano che ad uguali variazioni di colore, intese come uguali spostamenti all'interno dello spazio colore X Y Z, non corrispondono uguali differenze nella percezione degli stessi. • Il nostro sistema visivo è sensibile in modo diverso a seconda delle varie lunghezze d'onda che costituiscono il colore, e alla diversa luminosità del colore stesso. • Per avere uno spazio colore percettivamente uniforme, è stato definito dalla CIE nel 1976 lo spazio L*,a*,b*, che riduce notevolmente questo difetto congenito del modello XYZ.
Confrontare i colori Piccoli spostamenti nello spazio RGB o XYZ danno luogo a grandi spostamenti percettivi: Diagramma di Wright della distanza percettiva
Ellissi di MacAdam Spazio CIE
Ellissi di MacAdam spazio percettivo lineare
Spazio CIE L*a*b* • Alla base del sistema sta la definizione di chiarezza relativaL*, così calcolata • Questa è determinata in funzione del fattore di luminanza percentuale Y del colore considerato rispetto al fattore di luminanza percentuale Yn del campione bianco di riferimento (D65, D50, …). • Per come è calcolata L* può assumere un valore compreso tra 0 e 100.
a* e b*: I valori Xn, Yn, Zn sono i valori X, Y, Zdi un bianco di riferimento; se uno dei rapporti X/Xn, Y/Yn, Z/Zn è minore o uguale a 0.008856, allora verrà sostituito da: 7.787F + 16/116 dove F è uno tra i rapporti X/Xn, Y/Yn, Z/Zn
Spazio CIE L*a*b* • Fondamentale: • Lo spazio colore CIE XYZ si basa sul concetto di color matching (confronto) • Lo spazio colore CIE L*a*b* si basa sul concetto di color difference (differenza) • Le sue coordinate cromatiche a*,b* indicano rispettivamente quanto rosso o verde e quanto giallo o blu è un colore. In particolare valori positivi di a* indicano una tendenza verso il rosso, mentre valori negativi indicano una tendenza verso il verde; per b* valori positivi indicano una tendenza verso il giallo, mentre valori negativi indicano una tendenza verso il blu.
il solido piú interno é generato da stimoli colore risultanti dalla riflessione (o trasmissione) di energia radiante incidente sopra gli oggetti; l’area piú esterna é generata da stimoli colore monocromatici
Distanza cromatica E Distanza euclidea in uno spazio colore percettivamente uniforme Distanza cromatica utile per trovare “colori corrispondenti” e risolvere “costanza cromatica”
L'algoritmo di conversione XYZ->L*u*v* (Xn,Yn,Zn)=coordinate dell'illuminante standard scalate con Yn=100 se Y/Yn>0.008856 allora L*=116(Y/Yn)^(1/3)-16 altrimenti L*=903.3(Y/Yn) u*=13L*(4X/(X+15Y+3Z)-4Xn/(Xn+15Yn+3Zn)) v*=13L*(9Y/(X+15Y+3Z)-9Yn/(Xn+15Yn+3Zn)) nb.:L* è la stessa per lo spazio L*a*b*
Interpolazione coloriin diversi spazi RGB XYZ CIELUV
Spazio Y uv detto anche EBU (European Broadcasting Union), è di fatto lo standard adottato per la codifica delle informazioni colore negli schermi TV Pal/Secam. Y è chiamato “luma”. Per passare da RGB a Yuv si usa la matrice: 0.299 0.587 0.114 -0.147 -0.289 0.436 0.615 -0.515 -0.100 Il sistema NTSC usa Y’i’q’ con la matrice: 0.299 0.587 0.114 0.596 -0.274 -0.322 0.212 -0.523 0.311
Spazio A c1c2 - spazio acromatico Da XYZ ad Ac1c2 si usa la matrice: -0.0177 1.0090 0.0073 -1.5370 1.0821 0.3209 0.1946 -0.2045 0.5264 Orienta il sistema di riferimento secondo l’asse di massima varianza; approssima lo spazio della sensibilità retinica.
Spazi colore relativi digitali • HSI • HLS • HSV • CMY (sintesi sottrattiva dal bianco, utilizza i colori complementari ciano, magenta e giallo per la stampa)
Tinta 80 Saturazione 100 Luminosità 100 Tinta 80 Saturazione 175 Luminosità 156 Tinta 80 Saturazione 173 Luminosità 180 Tinta 80 Saturazione 250 Luminosità 200 Tinta 80 Saturazione 201 Luminosità 156 Tinta 80 Saturazione 250 Luminosità 100
L'algoritmo di conversione RGB->HSI I=1/3*(R+G+B) S=1-(3/(R+G+B))*a dove a è il minimo tra R, G e B H=arcos((0.5((R-G)+(R-B)))/((R-G)^2+(R-B)*(G-B))^0.5)) se S=0 allora H non ha senso se (B/I)>(G/I) allora H=360-H è inoltre possibile normalizzare H a (0,1) con H=H/360 (output range: H=(0,1) oppure H=(0,360), S=(0,1), I=(0,1))
Da RGB a HLS max=massimo tra R, G e B; min=minimo tra R, G e B L=(max+min)/2 se max=min allora S=0 e H non ha senso se L<=0.5 allora S=(max-min)/(max+min) altrimenti S=(max-min)/(2-max-min) delta=max-min se R=max allora H=(G-B)/delta se G=max allora H=2+(B-R)/delta se B=max allora H=4+(R-G)/delta H=H*60 se H<0 allora H=H+360 (output range: H=(0,360), L=(0,1), S=(0,1))
Da RGB a HSV max=massimo tra R, G e B; min=minimo tra R, G e B V=max S=(max-min)/max se S=0 allora H non ha senso altrimenti delta=max-min se R=max allora H=(G-B)/delta se G=max allora H=2+(B-R)/delta se B=max allora H=4+(R-G)/delta H=H*60 se H<0 allora H=H+360 (output range: H=(0,360), S=(0,1), V=(0,1))
Gamut mapping Trasferire la gamma colori da un dispositivo all’altro - Approccio locale: aggiusta solo i pixel fuori gamma - Approccio globale: analizza tutti i pixel per trovare una Soluzione (esempio semplice: gamma correction) • 2 tipi di “fuori gamma”: • cromaticità non corrispondente --> RGB < 0 • luminosità non corrispondente --> RGB > 1
Metodi globali: • scalare tutti i valori RGB uniformemente • scalare solo l’intensità lasciando invariata cromaticità • ridurre la saturazione lasciando invariata tinta e intensità • “clamping” dei valori in [0, 1] • scalare i pixel in modo non uniforme anche quelli entro la gamma • Metodi locali: • cerca minimo e massimo nell’immagine e riscala i valori nell’intervallo min-max: (Ci -min)/(max-min) • riscala solo i pixel fuori gamma • elabora statistica sull’immagine, scegli metodo locale o globale
Tone mapping • Adattare la ampia dinamica di una immagine naturale o di sintesi alla limitata dinamica di un monitor • Dinamica naturale: 107 (luce lunare - luce solare) • Dinamica monitor: 102 • Dinamica immagine di sintesi: 103
2 problemi • Riprodurre la dinamica dei toni (tone mapping) • Recuperare il colore corrispondente (color constancy)
Uno standard per il trattamento del colore digitale: ICC • http://www.color.org/ (International Color Consortium) • Secondo questo standard le immagini digitali non sono memorizzate in spazi colore R,G,B, relativi, ma in un formato di riferimento detto PCS (Profile Connection Space). • Il PCS garantisce una memorizzazione delle informazioni cromatiche in uno spazio colore assoluto indipendente dai dispositivi di rappresentazione. Allo stato attuale sono utilizzabili due possibili PCS: • lo spazio colore CIE XYZ • lo spazio colore CIE L*a*b* con bianco di riferimento definito dall'illuminante CIE D50.
ICC • Il profilo ICC di un dispositivo è una trasformazione che consente al software di trasformare il colore dallo spazio colore assoluto PCS allo spazio colore relativo di un dispositivo (RGB, CMY,…) e/o viceversa, per garantire una corretta riproduzione e/o acquisizione del colore tra dispositivi differenti. • Questo standard è inoltre supportato dal sistema operativo Windows dal 98 in poi e da MAC. • I profili ICC possono essere realizzati per gli schermi e per le stampanti, ma anche per dispositivi di input come gli scanner e le fotocamere.
ICC: i profili • Le trasformazioni definite in un color profile riguardano sia il colore che il gamut mapping
ICC: i profili • Sono ancora pochi i produttori di dispostivi hardware che forniscono i profili ICC dei loro dispositivi (in genere sono file con estensione .icc), • Si possono acquistare prodotti hardware/software in grado di determinare con precisione i profili ICC: • calibratori colore per gli schermi (spider), • campioni di colore da acquisire con lo scanner o la fotocamera.
ICC: lo schermo • La determinazione del profilo ICC tramite un calibratore di colore (che è un colorimetro) da applicare allo schermo (CRT o LCD) e collegare alla porta USB o RS232, garantisce una corretta definizione del profilo anche in presenza di qualsiasi regolazione effettuata manualmente dall'operatore (per variare la luminosità, il contrasto o la saturazione del monitor)