Capitolo V : Il colore nelle immagini digitali Lavorare con il colore nelle immagini digitali L uso dei colori nella visione computerizzata e nella computer grafica implica l incorrere in determinate problematiche che le tecniche classiche di uso delle scale di grigio non prevedono [14]. Prima di ogni cosa la grande mole di dati che il colore comporta e in seguito tutti i problemi che la gestione di questi dati può generare. Analizziamone qualcuno: la riduzione del numero di colori: a causa del grande numero di dati che il colore costringe ad utilizzare ed al fatto che non tutte le periferiche sono in grado di gestire un elevato numero di colori, è pratica comune la riduzione del numero di colori utilizzati. Questa però comporta l introduzione di colori non presenti nell immagine di partenza: dithering 44
Può capitare che nel passare ad uno spazio dei colori con molti elementi ad uno in cui il numero di elementi è inferiore (per esempio da 16 milioni di colori=24bit a 256 colori=8bit) il colore di un determinato punto non sia disponibile nello spazio minore, in questo caso il colore viene approssimato da una matrice di punti che raggruppa colori differenti nello spazio minore, che visti insieme hanno un effetto visivo simile a quello del colore di partenza. Questa tecnica anche se è ottima per l occhio umano può essere deleteria per un sistema di visione artificiale in quanto l analisi dei singoli punti nella matrice porta sempre a colori molto diversi tra loro. Contouring Quando nello spazio dei colori ad alta definizione abbiamo una variazione di tonalità uniforme, nel passare ad uno spazio a bassa definizione, i colori vengono campionati e l immagine da variazioni uniformi di colore assume invece variazioni brusche. 45
Dipendenza dei colori dal sistema di riferimento La gamma dei colori rappresenta l insieme dei colori che è possibile rappresentare con un determinato sistema o con una determinata tecnologia. Nel diagramma in figura sono illustrate la gamma dei colori visibili dall occhio umano secondo il diagramma CIE nello spazio XYZ, la gamma dei colori riproducibili con il sistema RGB e la gamma dei colori ottenibili con il sistema di stampa a quadricromia CMYK. Dalla figura si evince facilmente come non tutti i colori visibili siano riproducibili con i sistemi di cattura o visualizzazione RGB, ne con i sistemi a stampa in quadricromia CMYK, inoltre è evidente che anche nel passare da un sistema ad un altro, alcuni colori non sono riproducibili allo stesso modo. Correzione di gamma I colori in un sistema digitale vengono riprodotti a partire da un indice digitale o da una tensione, ma non esiste nessuna relazione lineare tra la 46
variazione di questi indici o tensioni e la variazione percettiva del colore. La correzione di gamma consiste nell applicare alle immagini una funzione digitale tale da ottenere una risposta uniforme dalle variazioni degli indici (o tensioni). In pratica valori di gamma superiori ad 1.0 aumentano la luminosità dei pixel e valori di gamma compresi tra 0.0 ed 1.0 la diminuiscono. Attenzione però gamma non va confusa con la luminosità o la brillantezza. Essa stabilisce un rapporto tra la variazione della grandezza utilizzata per rappresentare i colori e la variazione dei colori stessi. I colori nei files e nei sistemi informatici [14], [15] Le immagini raster Le immagini raster sono costituite da una matrice bidimensionale di elementini detti pixel, la definizione minima di pixel include l informazione riguardante la posizione nell immagine ed il colore o la luminosità. Le immagini raster esistono sia a livello di presenza nella memoria fisica degli elaboratori elettronici (spesso allo scopo di essere visualizzate), sia 47
in files su disco. L informazione di colore che l entità pixel può fornire dipende dal numero di bit che è riservato per la rappresentazione di ogni pixel: 1 bit/pixel = 2 valori possibili = B/W 2 bit/pixel = 4 valori possibili = 4 colori 3 bit/pixel = 8 valori possibili = 8 colori 8 bit/pixel = 256 colori n bit/pixel = 2 alla n-esima potenza colori Per esempio mappando a 3 bit i nove colori primari: 0,0,0=nero; 1,0,0=rosso; 1,1,0=giallo; 0,1,0=verde; 0,1,1=ciano; 0,0,1=blu; 1,0,1=magenta; 1,1,1=bianco. Con lo stesso metodo avendo a disposizione per esempio 24 bit (3 Byte) possiamo dedicare un bit per ogni componente RGB ed avendo 256 toni per ogni componente utilizzare oltre 16 milioni di colori. Questa tecnica è detta di rappresentazione diretta dei colori (True color), in questo modo ogni pixel indica direttamente la quantità delle componenti primarie RGB da miscelare per ottenere il colore finale. Una tecnica meno dispendiosa in memoria è quella cosiddetta degli pseudocolori o dei colori indicizzati, questa tecnica è basata sul fatto che difficilmente in una immagine possano essere utilizzati tutti i 16.777.216 colori disponibili del sistema di rappresentazione diretta, quindi si ricorre ad una tabella detta (CLUT= Color Look Up Table) nella quale sono mappati i colori in uso, i pixel nell immagine riportano invece l indice dell elemento di tabella in cui è mappato il colore da rappresentare. Col metodo descritto è quindi possibile rappresentare un immagine a 24 bit di 48
colore in cui sono presenti però soltanto al massimo 256 distinti colori con una rappresentazione ad 8 bit più la CLUT. Nella sua implementazione reale, solitamente, la tecnica degli pseudocolori utilizza comunque un numero di colori non superiore a 256, operando eventualmente tramite tecniche di dithering, e quindi consente di mappare realmente l immagine ad 8 bit. Questa è la tecnica che viene usata per esempio nella compressione gif ed in alcuni sistemi di trasmissione di segnale video a distanza. Le immagini vettoriali Oltre alla rappresentazione raster nei sistemi informatici è anche molto utilizzata la cosiddetta rappresentazione vettoriale, in pratica il file contiene non più la mappa di tutti i punti nell immagine, ma le primitive geometriche che consentono di ricostruirla. Il colore in questa implementazione è una caratteristica relativa a ciascuna entità geometrica. La rappresentazione vettoriale è indipendente dalla risoluzione adottata e consente facili ridimensionamenti. Nelle immagini vettoriali il colore relativo ad ogni entità viene solitamente espresso nel formato RGB esteso, utilizzando una profondità di colore dipendente dal numero di bit disponibili sul sistema in uso. 49
Le immagini vettoriali sono la rappresentazione classica per i software di CAD e CAM nonché per la computer grafica avanzata dei videogiochi o dei simulatori tridimensionali, nei quali i vettori sono sostituiti spesso da poligoni (triangoli o esagoni). 50