Modelli del colore 2 – Il colore digitale Daniele Marini, Maurizio Rossi 1 RGB Color Display 1 pixel = 3 fosfori R,G,B, illuminati con intensità variabile 2 Quanti colori? Bit 1 2 3 4 5 6 7 8 16 24 32 Numero di colori 21 22 23 24 25 26 27 28 216 224 232 2 4 8 16 32 64 128 256 65.536 (16 bit True Color) 16.777.216 (True Color) 24 bit True-Color + 8 bit Alpha Channel 3 RGB Color Display (24 bit: “TrueColor” ) 4 5 TrueColor (24 bit) 6 256 Color Display (8 bit) (LUT) “Palette” 7 Immagine a 256 colori 8 Approssimazione (“dithering”) Immagine originale (TrueColor) Immagine approssimata (256 colori) 9 Dithering 10 Palettes 11 Modello RGB 12 Colori del Monitor RGB •Cromaticità dei fosfori e livello del bianco •Sono un sottoinsieme dei colori CIE ESEMPIO: x y R 0.67 0.33 G B 0.21 0.14 0.71 0.08 D65 0.313 0.329 13 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 ? 14 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 X X r Y Y r Z Z r Xg Yg Zg X b R Yb G Z b B 15 Da XYZ a RGB e viceversa Trasformazione lineare: R X 0,431 Y M G dove M 0,222 Z 0,020 B R G B 0,342 0,707 0,130 0,178 0,071 0,939 X 1 M Y Z •I coefficienti di M si ricavano dalle coordinate di cromaticità dei fosfori; nell’esempio un monitor standard. • è il fattore di correzione gamma del monitor 16 Alcune matrici di trasformazione XYZ - RGB Spazio colore RGB Bianco di riferim. Adobe RGB (1998) D65 2,2 0.576700 0.185556 0.188212 0.297361 0.627355 0.0752847 0.0270328 0.0706879 0.991248 Apple RGB D65 1,8 0.449695 0.316251 0.18452 0.244634 0.672034 0.0833318 0.0251829 0.141184 0.922602 BestRGB D50 2,2 0.632670 0.204556 0.126995 0.228457 0.737352 0.0341908 0.000000 0.00951424 0.815696 Beta RGB D50 2,2 0.671254 0.174583 0.118383 0.303273 0.663786 0.0329413 0.000000 0.040701 0.784509 BruceRGB D65 2,2 0.467384 0.294454 0.188629 0.240995 0.683554 0.0754517 0.0219086 0.0736135 0.993447 CIE E 2,2 0.488718 0.310680 0.200602 0.176204 0.812985 0.0108109 0.000000 0.0102048 0.989795 ColorMatch D50 1,8 0.509344 0.320907 0.133969 0.274884 0.658132 0.0669845 0.0242545 0.108782 0.692174 DonRGB4 D50 2,2 0.645771 0.193351 0.125098 0.278350 0.687970 0.0336802 0.00371134 0.0179862 0.803513 ECI D50 1,8 0.650204 0.178077 0.135938 0.320250 0.602071 0.0776791 0.000000 0.0678390 0.757371 Ekta Space PS5 D50 2,2 0.593891 0.272980 0.0973486 0.260629 0.734946 0.00442493 0.000000 0.0419970 0.783213 NTSC C 2,2 0.606734 0.173564 0.200112 0.298839 0.586811 0.114350 0.000000 0.0661196 1.11491 PAL / SECAM D65 2,2 0.430587 0.341545 0.178336 0.222021 0.706645 0.0713342 0.0201837 0.129551 0.939234 ProPhoto D50 1,8 0.797675 0.135192 0.0313534 0.288040 0.711874 0.000086 0.000000 0.000000 0.825210 SMPTE-C D65 2,2 0.393555 0.365253 0.191659 0.212395 0.701049 0.0865558 0.0187407 0.111932 0.958297 sRGB D65 ~2,2 0.412424 0.357579 0.180464 0.212656 0.715158 0.0721856 0.0193324 0.119193 0.950444 2,2 0.716105 0.100930 0.147186 0.258187 0.724938 0.0168748 0.000000 0.0517813 0.773429 WideGamut D50 M 17 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. 18 Confrontare i colori Piccoli spostamenti nello spazio RGB o XYZ danno luogo a grandi spostamenti percettivi: Diagramma di Wright della distanza percettiva 19 Ellissi di MacAdam Spazio CIE 20 Ellissi di MacAdam spazio percettivo lineare 21 Spazio CIE L*a*b* • Alla base del sistema sta la definizione di chiarezza relativa L*, così calcolata 116 3 Y Yn 16 L 903,3 Y Yn * se Y Yn 0,008856 se Y Yn 0,008856 • 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. 22 a* e b*: 1/ 3 1/ 3 X Y * a 500 X Y n n 1/ 3 1/ 3 Y Z b* 200 Z Y n n I valori Xn, Yn, Zn sono i valori X, Y, Z di 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 23 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. 24 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 25 Distanza cromatica E Distanza euclidea in uno spazio colore percettivamente uniforme Distanza cromatica utile per trovare “colori corrispondenti” e risolvere “costanza cromatica” E * ab L * 1 a * 2 2 L * 1 a b * 2 2 * 1 * 2 2 b 26 E94 (CIE La*b*) 2 2 L * C *ab H *ab E *94 k L S L kC S C k H S H C *ab a * b * 2 SL 1 2 SC 1 0.0045 C *ab 2 b H arc tan a S H 1 0.0015 C *ab k L kC k H 1 27 Spazio CIE Lu*v* 28 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* 29 Interpolazione colori in diversi spazi RGB XYZ CIELUV 30 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.596 0.212 0.587 0.114 -0.274 -0.322 -0.523 0.311 31 Spazio A c1c2 - spazio acromatico Da XYZ ad Ac1c2 si usa la matrice: -0.0177 -1.5370 0.1946 1.0090 1.0821 -0.2045 0.0073 0.3209 0.5264 Orienta il sistema di riferimento secondo l’asse di massima varianza; approssima lo spazio della sensibilità retinica. 32 Spazi colore relativi digitali • • • • HSI HLS HSV CMY (sintesi sottrattiva dal bianco, utilizza i colori complementari ciano, magenta e giallo per la stampa) 33 Power Point 34 Tinta Saturazione Luminosità Tinta Saturazione Luminosità 80 175 156 Tinta Saturazione Luminosità Tinta Saturazione Luminosità 80 250 200 80 100 100 Tinta Saturazione Luminosità 80 173 180 80 201 156 Tinta Saturazione Luminosità 80 250 100 35 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)) 36 Spazio HLS 37 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)) 38 Spazio HSV 39 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)) 40 Gamma dei colori - gamut 41 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 42 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 43 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 44 2 problemi • Riprodurre la dinamica dei toni (tone mapping) • Recuperare il colore corrispondente (color constancy) 45 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. 46 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. 47 ICC: i profili • Le trasformazioni definite in un color profile riguardano sia il colore che il gamut mapping 48 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. 49 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) 50 ICC: i materiali digitali • I colori uniformi si misurano con un colorimetro per determinare i valori di tristimolo CIE X,Y,Z o i valori CIE L*a*b*. Oppure tali valori sono riportati a corredo dei sistemi di ordinamento del colore (Munsell…) o dei campionari colore (Pantone…). • I colori delle tessiture dei materiali devono essere acquisiti utilizzando campioni originali dei materiali, perché se si utilizzano delle fotografie non si può avere nessuna certezza sulle trasformazioni che il colore ha subito. • Per la acquisizione delle tessiture dei materiali si consiglia l'utilizzo diretto dello scanner che richiede una sola operazione di determinazione dell'ICC tramite l'utilizzo di un target di colori selezionati, come il ColorChecker, e un software di generazione dei profili. Il vantaggio dello scanner sta nel fatto che dispone di condizioni di illuminazione controllate e stabili, mentre con una fotocamera digitale risulta più difficile controllare le condizioni di illuminazione. 51 ICC: i materiali digitali • Secondo i criteri dell’ICC una corretta gestione digitale del colore richiede: – Acquisizione del colore tramite profili ICC di input (scanner, fotocamere, …..) – Software di gestione del colore con PCS in spazio colore assoluto – Rappresentazione del colore tramite profili ICC di output (display, stampanti, tipografia….) 52