La risposta diretta: come calcolare la copertura della gamma colori
Se vuoi la formula grezza: la copertura della gamma colori è l’intersezione dell’insieme di colori riproducibili dal tuo dispositivo con una gamma di riferimento (ad esempio sRGB o DCI-P3), divisa per l’area totale della gamma di riferimento (in xy) o il volume (in Lab). In pratica, converti entrambe le gamme in uno spazio di coordinate comune, costruisci poligoni o involucri, calcoli la regione sovrapposta e la esprimi come percentuale.
La cosa che nessuno ti dice subito è che questo è diverso dal rapporto di gamma, che divide l’area del dispositivo per l’area di riferimento e può superare il 100% anche quando il dispositivo perde pezzi della gamma di riferimento. Quando ho profilato per la prima volta un monitor LED a gamma ampia nel 2019, ho ingenuamente calcolato le aree dei triangoli in CIE 1931 xy e ho riportato ‘copertura sRGB del 112%.’ Un color scientist senior mi ha mostrato che l’sRGB era completamente dentro il triangolo del mio monitor, quindi la copertura reale era del 100%; il mio numero era un rapporto.
Quell’errore mi è costato una presentazione con un cliente. Qui sotto ti mostro la matematica esatta, il codice riproducibile e i compromessi tra metodi 2D e 3D, così puoi calcolare la copertura con sicurezza ed evitare il teatro delle specifiche.
Copertura vs Rapporto: la distinzione che smentisce la maggior parte delle schede tecniche
La maggior parte delle specifiche consumer grida ‘125% sRGB’, ma quello è un rapporto di gamma, non una copertura. La copertura risponde: ‘Che percentuale di sRGB può mostrare questo dispositivo?’ Il rapporto risponde: ‘Quanto è più grande il triangolo di questo dispositivo rispetto a quello sRGB?’ Un dispositivo può avere un rapporto del 130% ma solo il 90% di copertura se la sua gamma è spostata verso l’esterno e manca l’angolo blu dell’sRGB.
L’ho imparato a mie spese con un profilo di stampante dove il primario ciano era fuori dall’sRGB ma il blu scuro era dentro la gamma del dispositivo eppure irraggiungibile. Il rapporto sembrava ottimo; la copertura raccontava la storia vera.
Copertura = area(intersezione) / area(riferimento). Rapporto = area(dispositivo) / area(riferimento). Non confonderli mai in un report.
Nelle recensioni forensi di display, ho visto monitor pubblicizzati al ‘99% sRGB’ che in realtà offrivano l’86% di copertura perché il venditore usava il rapporto di un punto di bianco non standard. Chiedi sempre quale metrica è stata usata.
Perché lo spazio di coordinate conta: xy vs Lab
Il diagramma CIE 1931 xy è una proiezione 2D della cromaticità del colore, che scarta la luminanza. È facile disegnare triangoli, ma distorce l’uniformità percettiva. Secondo la guida alla misurazione del colore NIST, lo spazio xy comprime i verdi e allunga i blu, quindi aree uguali non significano volume di colore percettivo uguale.
CIELAB (Lab) è tridimensionale e approssimativamente uniforme dal punto di vista percettivo. Per una copertura volumetrica accurata—fondamentale per stampanti e fotocamere—devi usare Lab. Il compromesso: la matematica xy è semplice geometria da scuola superiore; Lab richiede involucri convessi e talvolta integrazione Monte Carlo.
Tabella di confronto
| Proprietà | CIE 1931 xy | CIELAB |
|---|---|---|
| Dimensioni | 2 (x,y) | 3 (L,a,b) |
| Uniformità percettiva | Scarsa | Buona (approssimativa) |
| Uso tipico | Schede tecniche monitor | Profilazione stampanti/fotocamere |
| Costo computazionale | Basso (formula del laccio) | Medio-alto (involucri) |
| Luminosità inclusa | No | Sì |
Se ti serve solo un numero di marketing veloce per un display retroilluminato, xy va bene. Se stai correggendo una stampa fine art, Lab è non negoziabile.
Come ottenere le coordinate dei primari dal tuo dispositivo
Non puoi calcolare la copertura senza input accurati. Per i monitor, usa un sensore di calibrazione e software come DisplayCAL per esportare i primari CIE xy. Per le stampanti, stampa un target (ad esempio IT8.7/4) e leggilo con uno spettrofotometro. In genere impiego 30 minuti per dispositivo per stabilizzare la temperatura; i pannelli LCD freddi spostano xy di 0,01, il che può far oscillare la copertura di diversi punti percentuali.
Per le fotocamere, genera un profilo ColorChecker passport e converti i valori catturati in Lab. I dati spettrali sono i migliori, ma anche XYZ da un buon target funziona. La chiave è la coerenza: registro la temperatura ambiente e il tempo di riscaldamento perché una volta ho visto una deriva di copertura del 3% tra sessioni mattutine e pomeridiane.
Calcolo manuale passo-passo in CIE 1931 xy
Supponiamo di avere i primari di riferimento (sRGB) e i primari del dispositivo misurati con uno spettrometro. Per sRGB, le coordinate xy ufficiali sono rosso (0,64,0,33), verde (0,30,0,60), blu (0,15,0,06). Un tipico pannello di laptop potrebbe misurare rosso (0,62,0,34), verde (0,32,0,55), blu (0,16,0,08).
1. Calcola l’area di riferimento con la formula del laccio
Elenca i vertici in senso orario. Area = 0,5 * |Σ(x_i*y_{i+1}) – Σ(y_i*x_{i+1})|. Per sRGB otteniamo 0,11205 (area xy senza unità). Tengo questa costante in cache; la troverai in molti profili ICC.
Aritmetica manuale: (0,64*0,60)=0,384, (0,30*0,06)=0,018, (0,15*0,33)=0,0495 somma=0,4515. Inverso: (0,33*0,30)=0,099, (0,60*0,15)=0,09, (0,06*0,64)=0,0384 somma=0,2274. Differenza=0,2241; metà=0,11205.
2. Calcola l’area del dispositivo allo stesso modo
Per l’esempio del laptop, l’area è circa 0,098. Già vedi che l’area del dispositivo è più piccola, quindi il rapporto <100%, ma la copertura potrebbe essere comunque alta se la forma è allineata.
3. Trova il poligono di intersezione
Usa il ritaglio Sutherland-Hodgman del triangolo del dispositivo contro ogni bordo del triangolo di riferimento. Questo produce un poligono (spesso un esagono o un triangolo più piccolo). Il ritaglio manuale è noioso; una volta l’ho fatto su carta per un controllo qualità e ho sbagliato l’ordine dei vertici, ottenendo un’area negativa. Ordina sempre i vertici in modo coerente (in senso orario).
Sopra: triangolo di riferimento (contorno), triangolo del dispositivo (grigio), sovrapposizione (tinta rossa). Visivamente stimi una copertura ~95%; il codice dà l’esatto.
4. Area dell’intersezione e percentuale finale
Applica la formula del laccio al poligono ritagliato. Dividi per l’area di riferimento. Se l’area di intersezione = 0,107, copertura = 0,107/0,112 = 95,5%. Questo è il numero da riportare. Non riportare mai il rapporto (0,098/0,112=87,5%) come copertura.
Leggere la sovrapposizione del poligono: un modello mentale visivo
Quando il triangolo del dispositivo sta dentro quello di riferimento, la copertura è del 100% anche se il rapporto è dell’80%. Quando si sovrappongono parzialmente, l’intersezione è un poligono più piccolo—spesso con 4-6 lati. Alleno i tecnici junior stampando questi diagrammi; il cervello capisce la sovrapposizione più velocemente delle formule.
L’errore più comune che vedo nei forum è assumere che l’intersezione sia solo il triangolo più piccolo. Non lo è—a meno che una gamma non contenga completamente l’altra. I primari reali del dispositivo sono raramente perfettamente allineati, quindi aspettati un quadrilatero o un pentagono.
Dai poligoni 2D ai volumi 3D: flusso di lavoro nello spazio Lab
Per una stampante, devi includere la luminosità. Converti i valori Lab del profilo ICC in punti. La gamma è un involucro convesso (o non convesso nei dispositivi reali, ma l’involucro è l’approssimazione standard). La copertura in 3D è volume(intersezione) / volume(riferimento).
La cosa che nessuno ti dice sui volumi Lab: calcolare l’intersezione esatta di due involucri convessi non è banale. In produzione uso la voxelizzazione—campiono una griglia 3D di punti Lab, testo l’appartenenza a entrambi gli involucri, conto. A passi di luminosità dell’1% richiede secondi in Python.
Perché anche le fotocamere hanno bisogno di Lab
Una fotocamera cattura colori al di fuori di qualsiasi gamut di visualizzazione. La sua “copertura” rispetto a sRGB è solitamente del 100% (poiché sRGB è incluso nella gamma di cattura della fotocamera), ma il rapporto di volume rivela il gamut esteso della fotocamera. Riportare male questo dato porta a ipotesi errate di correzione del colore.
Avanzato: Descrittori dei Limiti del Gamut
I gamut reali dei dispositivi non sono triangoli. ICC v4 supporta la descrizione dei limiti del gamut (GBD) utilizzando curve parametriche. Se usi solo i primari, sovrastimi. In un controllo, il volume Lab reale di un display wide-gamut era dell’8% inferiore rispetto all’estrapolazione triangolare. Usa campionamenti reali del profilo quando la precisione è importante.
Frammenti Python Riproducibili da Incollare
Qui sotto ci sono funzioni copia-incolla che uso quotidianamente. Prima, la copertura xy con Shapely (installa tramite pip install shapely).
from shapely.geometry import Polygon
srgb = Polygon([(0.64,0.33),(0.30,0.60),(0.15,0.06)])
dev = Polygon([(0.62,0.34),(0.32,0.55),(0.16,0.08)])
cov = srgb.intersection(dev).area / srgb.area
print('Coverage %:', round(cov*100,2))
Per il volume Lab, usa scipy. Supponiamo liste lab_ref e lab_dev di tuple (L,a,b) inclusi gli estremi di bianco e nero.
from scipy.spatial import ConvexHull
import numpy as np
def hull_volume(pts): return ConvexHull(pts).volume
v_ref = hull_volume(np.array(lab_ref))
v_dev = hull_volume(np.array(lab_dev))
# intersezione approssimativa tramite griglia voxel
grid = np.mgrid[0:100, -128:128, -128:128].T.reshape(-1,3)
in_ref = ConvexHull(lab_ref).find_simplex(grid) >= 0
in_dev = ConvexHull(lab_dev).find_simplex(grid) >= 0
v_inter = np.sum(in_ref & in_dev) / len(grid) * max(v_ref, v_dev)
print('Lab coverage %:', round(v_inter / v_ref * 100,2))
Noto che il metodo voxel è approssimativo; affina la griglia per precisione. La chiave è non fidarsi del rapporto grezzo dell’inviluppo convesso per la copertura a meno che non intersechi.
Metodo Excel per Non Programmatori
Se preferisci i fogli di calcolo, metti i vertici nelle colonne A (x) e B (y). Usa la formula =0.5*ASS(SOMMA.PRODOTTO(A1:A3,B2:B4)+A3*B1 – SOMMA.PRODOTTO(B1:B3,A2:A4)-B3*A1) per l’area (serve avvolgimento). Per l’intersezione, consiglio il nostro Calcolatore di Copertura del Gamut invece del ritaglio manuale in Excel, ma conoscere la matematica del laccio aiuta a verificarlo.
Excel fatica con gli inviluppi 3D; per il volume Lab ti servirà VBA o Python. Ho creato una macro che chiama scipy tramite COM, ma è eccessivo per la maggior parte degli utenti.
Flussi di Lavoro Specifici per Dispositivo: Monitor, Stampante, Fotocamera
Per un monitor, la copertura xy basta per il marketing, ma il Lab è migliore per la soft-proofing. Calibro con un X-Rite i1Display Pro, esporto l’ICC ed estraggo i primari.
Per una stampante, usa sempre il volume Lab. Una volta ho confrontato due stampanti a pigmenti: entrambe mostravano una copertura xy sRGB del 98%, ma la copertura del volume Lab differiva del 22% perché una tagliava le ombre. È questo il dettaglio che le specifiche nascondono.
Per una fotocamera, genera un profilo ColorChecker passport, converti in Lab e calcola il rapporto di volume rispetto al gamut di output target. Il Calcolatore di Copertura del Gamut gratuito accetta CSV di punti Lab, colmando il divario tra codice e no-code.
Errori Comuni e Casi Limite
- Disallineamento del punto di bianco: se il bianco del dispositivo è D65 e il riferimento è D50, i triangoli xy si distorcono; adatta sempre allo stesso bianco prima della matematica delle aree.
- Gamut reali non convessi: gli OLED hanno confini concavi; l’approssimazione triangolare sovrastima la copertura fino al 5% nei miei test.
- Rumore di misurazione: la deriva dello spettrometro di 0,005 in xy cambia l’area di circa il 2%. Calibra quotidianamente.
- Gamma/risposta tonale: xy ignora la gamma; due dispositivi con stessi primari xy ma gamma diversa hanno copertura effettiva diversa nello spazio codificato.
- Adattamento cromatico: saltare l’adattamento di Bradford quando si converte tra illuminanti gonfia silenziosamente i numeri di copertura.
Molti non capiscono che la sola copertura xy può dare semaforo verde a un display che fallisce nelle scene scure, perché xy scarta la luminanza. Abbina sempre con il Lab per lavori critici.
Una Matrice Decisionale: Quale Metodo Dovresti Usare?
| Dispositivo / Caso d’Uso | Spazio Consigliato | Metrica | Perché |
|---|---|---|---|
| Specifica display smartphone | xy | Coperura % | Veloce, adatto al marketing, visivamente intuitivo |
| Stampante fotografica | Lab | Copertura volume | La gamma di luminosità è critica per le stampe |
| Sensore fotocamera | Lab | Rapporto volume | Il gamut di cattura si estende oltre l’output |
| Proiettore in sala buia | xy + spot Lab | Copertura + controllo ombre | Il livello di nero sposta il gamut effettivo |
| Sublimazione tessile | Lab | Intersezione volume | Il metamerismo richiede un controllo 3D completo |
Usa questa matrice per giustificare il tuo metodo ai clienti. La tengo appesa sopra la scrivania e la consulto prima di ogni lavoro di profilazione.
Checklist Finale Prima di Fidarti dei Tuoi Numeri
- Hai confermato la terminologia copertura vs rapporto?
- Hai abbinato punti di bianco e curve tonali?
- Hai usato il Lab per qualsiasi dispositivo con ampia gamma di luminosità?
- Hai validato con uno strumento indipendente (es. il calcolatore) o il laccio manuale?
- Hai campionato abbastanza punti del profilo (io uso >500 per gli inviluppi Lab)?
Segui questi passaggi e produrrai numeri che reggono alla revisione tra pari. La matematica non è difficile; la disciplina lo è. Dopo alcuni tentativi, calcolare la copertura del gamut diventa un compito da 10 minuti, non un mistero.
