Elementi di grafica raster L Caponetti Le immagini Una immagine è una rappresentazione spaziale di un oggetto o di una scena Una immagine digitale è una rappresentazione di una scena anche 3D dopo il processo di acquisizione un segnale digitale 2D L Caponetti 1 Segnali mono-bidimensionali Segnale: variazione di una grandezza fisica rispetto al tempo e/o allo spazio cioè Valore della grandezza ad ogni istante di tempo (spazio) Un segnale è una funzione dipendente da una o più variabili Un segnale monodimensionale dipende da una unica variabile (tempo). Ad es. i segnali audio Un segnale bidimensionale dipende da due variabili (coordinate x,y). Ad es. le immagini stazionarie Un segnale tridimensionale dipende da tre variabili. Ad esempio (x,y,t) per i video L Caponetti Segnali analogici e digitali Un segnale analogico è una funzione continua Sia f : D → D’ la funzione che descrive il segnale; f è una funzione continua, se i due insiemi D e D’ sono continui Un segnale digitale è una funzione discreta La funzione f : D → D’ è una funzione digitale, se i due insiemi D e D’ sono discreti L Caponetti 2 Digitalizzazione Campionamento: il segnale viene misurato a intervalli discreti Frequenza di campionamento: numero di campioni in un intervallo di tempo ( o spazio) Quantizzazione: i valori o ampiezza del segnale sono quantizzati in un numero di livelli discreti Segnale analogico L Caponetti Segnale campionato Segnale digitale Processo di acquisizione Scena Segnale analogico di una singola linea di scansione Telecamera Segnale analogico 20 30 22 28 40 27 28 27 Segnale digitale Matrice risultante L Caponetti 3 Digitalizzazione Il segnale acquisito da una telecamera è tipicamente un segnale continuo che descrive l’intensità del segnale luminoso secondo una scansione per linee La digitalizzazione trasforma un segnale continuo in uno digitale discretizzandolo nel dominio spaziale – campionamento nel dominio dei livelli di grigio - quantizzazione L Caponetti Geometria digitale Una immagine digitale f è una funzione digitale del tipo: f : D Æ [0,255] dove D è un dominio discreto, costituito da coppie di coordinate x,y. D è chiamato griglia di campionamento Il punto della geometria corrisponde ad un vertice della griglia L Caponetti 4 Immagine digitale Una immagine digitale f si rappresenta con una matrice di NxM elementi di valori non negativi – con N numero di righe e M numero di colonne Ogni elemento immagine è chiamato pixel (picture element) Sia g=numero di livelli di grigio di una immagine f se g=2k ogni pixel occupa k bit Una immagine di NxM pixels occupa b = (N ×M × k) bit L Caponetti Sistema di riferimento immagine – righe/colonne Una immagine digitale f si rappresenta con una matrice di NxM elementi di valori non negativi k f(0,0) …………… f(0,M-1) ………………………….. ………………………….. f(N-1,0)……………..f(N-1,M-1) j Sistema di riferimento immagine (j,k): ascisse x= k (colonne); ordinate y= -j (righe) L Caponetti 5 Immagine digitale Dimensione – numero di pixel della immagine Grandezza Si misura in cm o inch di una riga e/o di una colonna Risoluzione – numero di pixel per unità di grandezza (risoluzione = dimensione/grandezza) si misura in punti/cm o punti/inch Si ha: dpi – dot per inch ( 1 inch ----- 2.54 cm) dimensione(pixel) = grandezza (cm) * risoluzione (pixel/cm) L Caponetti Grandezza di una immagine Fissata la dimensione vediamo come varia grandezza al variare della risoluzione Grandezza (cm) = dimensione (pixel)/risoluzione(pixel/cm) risoluzione dimensione 72 dpi 300 dpi 1500 dpi 192x128 6.78 x 4.53 cm 1.63 x 1.09 cm 0.23 x 0.33 cm L Caponetti 6 Risoluzione spaziale 150x150 pixel 75x75 pixel 37x37 pixel 18x18 pixel La grandezza in cm è uguale -Varia il numero di pixel L’ immagine 1 ha dimensione 150x150 pixel; le immagini 2,3,4 sono state ingrandite, utilizzando una interpolazione L Caponetti Risoluzione nella scala di grigio Una immagine binaria è una immagine in cui ogni pixel può assumere solo due valori: (0,1) una immagine binaria utilizza solo un bit per pixel Una immagine a toni di grigio è una immagine in cui ogni pixel assume valori in un intervallo valori tipici sono [0, 63], [0, 255], [0, 1023], rispettivamente 6, 8, 10 bit per pixel Un osservatore umano percepisce una scala continua di grigi osservando immagini memorizzate con 8 bit L Caponetti 7 Livelli di grigio 256 livelli 150 livelli L Caponetti Risoluzione nella scala di grigio range dinamico Per range dinamico si intende il numero di livelli distinti utilizzati dai pixel di una immagine all’interno dell’intervallo di rappresentazione: Ad esempio nell’intervallo [0,255] Una immagine che utilizza 256 livelli ha un range dinamico elevato Una immagine che utilizza 64 livelli ha un range dinamico basso Una immagine che utilizza 4 livelli ha un range dinamico molto basso L Caponetti 8 Immagine a colori Una immagine a colori può essere rappresentata direttamente mediante 3 componenti - Rosso (R), Verde (G), Blu (B), generalmente si utilizza un byte per ciascuna componente si possono rappresentare 256x256x256 colori diversi (circa 16 milioni) Il formato BitMaP – BMP – utilizza la rappresentazione diretta del colore L Caponetti Immagine a colori - RGB Ogni pixel è rappresentato da una terna di valori (r,g,b) r valore della componente red g b valore della componente green valore della componente blue L Caponetti 9 Immagini a colori Spesso per limitare l’occupazione di memoria si utilizza un numero limitato di colori, memorizzando l’immagine con 8, 4 bit In questo caso però il formato dell’immagine contiene anche la Look-Up-Table dei colori – ( detta anche colormap o palette) L Caponetti LUT dei colori LUT valore pixel R1 G1 B1 R2 G2 B2 R3 G3 B3 R4 G4 B4 R5 G5 B5 R6 G6 B6 R7 G6 B7 Valore effettivamente visualizzato (R5, G5, B5) L Caponetti 10 Immagini bitmap (bmp) typedef struct { short magic; /* "BM" */ long file_dim; /* dimensione file */ long l0; /* 0 */ long header_dim; /* dimensione header */ long l40; /* 40 */ long xsize; /* numero colonne */ long ysize; /* numero righe */ short nchan; /* 1 */ short zsize; /* 1-4-8-24 */ long compression; /* 0 -> non compresso */ long data_dim; /* dimensione dati */ long xppi; long yppi; long colors; /* dimensione lut */ long colors1; bmp_header; L} Caponetti Struttura del file: intestazione, lut dei colori utilizzati dati dell’immagine per righe (le righe devono essere di dimensione multipla di 4 byte) Indexed color I formati Gif, Tif, Png, usano una rappresentazione indexed del colore ed utilizzano una sola look-up table di 4 oppure 8 bit Un pixel di una immagine con il colore rappresentato in modo indexed è rappresentato con 4 oppure 8 bit Ogni valore è un indice in una palette di 16 oppure 256 colori L Caponetti 11 Palette – tavolozza di colori Una delle più comuni Look up Table è la colormap o palette Una palette descrive 256 colori codificati con 0,1,..255- valori dei pixel di una immagine Ogni elemento della palette è una terna di valori RGB Palette Pixel value R R0 0 …….. 255 L Caponetti G G0 R255 G255 B B0 B255 Immagini gif Permettono di memorizzare immagini con al più 256 colori diversi Iniziano con “GIF89a” Segue un header con le informazioni sulla struttura dell’immagine (righe, colonne, numero di colori, …) Una tabella di lut con le terne dei colori utilizzati i dati dell’immagine (logicamente 1 byte per pixel) in formato compresso L Caponetti 12 Immagini a colori e Java Java normalmente utilizza un int per memorizzare un pixl a colori: il byte meno significativo per la componente blu, poi la verde, quindi la rossa Il byte più significativo (componente alfa) è il grado di trasparenza del pixel (255 pixel opaco, 0 pixel trasparente cioè invisibile) alfa red green blue L Caponetti Immagini a toni di grigio Un immagine a toni di grigio è una immagine in cui le tre componenti sono uguali Un metodo intuitivo per operare la trasformazione Î grigio è G = (R+G+B)/3 Poichè l’occhio ha una sensibilità diversa per i diversi colori si preferisce una media pesata Una scelta frequente è G = 0.299*R + 0.587*G + 0.114*B L Caponetti 13 Utilizzo di look-up nella visualizzazione RGB image Gray level image With look-up L Caponetti Istogramma L Caponetti 14 Architettura di un sistema per grafica raster . L Caponetti Architettura di un sistema per grafica raster Processori CPU general-purpose display processor - specializzato in operazioni grafiche come scan conversion, operazioni geometriche..) Memoria Memoria centrale del sistema mantiene i dati e i programmi eseguibili sulla CPU: il programma applicativo, la libreria grafica La memoria del display processor mantiene dati e programmi per l’esecuzione di operazioni di scan conversion, raster... Il frame buffer –memoria di quadro- contiene l’immagine da visualizzare L Caponetti 15 Architettura di un sistema per grafica raster Video controller Il video controller legge alla frequenza di refresh il contenuto del frame buffer e genera i segnali video affinchè l’immagine possa essere visualizzata sul monitor Converte l’informazione del buffer in un insieme di linee di scansioni orizzontali (raster) visualizzate sul display L Caponetti Frame buffer Una memoria dedicata alla registrazione temporanea di una immagine Dimensioni tipiche: 640x480 x 8 bit 1024x1024 x 8 / 24 / 32 bit 1280x1024 x 8 / 24 / 32 bit L Caponetti 16 Look up Table Look up Table è una tabella di ricerca rapida Memorizza i valori R, G, B da attribuire ai pixel Realizza una inderezione tra il valore del pixel di una immagine ed il colore con cui visualizzare il pixel L Caponetti True color – indexed color True color: ogni locazione nel frame buffer contiene il valore di colore assegnato al pixel corrispondente Falso colore: ogni locazione nel frame buffer contiene un indirizzo alla LUT nella quale viene registrato il valore di colore desiderato L Caponetti 17 Risoluzione e dinamica La dimensione del frame buffer determina la risoluzione spaziale della immagine La lunghezza della parola nel frame buffer determina il numero di colori simultaneamente visualizzabili: dinamica del colore Parole di 32 bit consentono di registrare informazioni sul canale “alfa” L Caponetti Alfa channel Contiene valori tra 0 e 1 ed indica come miscelare più immagini con operatori aritmetici Ad esempio siano imA e imB 2 immagini senza alfa imA+imB=def pA(x,y)+pB(x,y) clipping(255) = 0 se pA(x,y)+pB(x,y) ≤ 0 255 se pA(x,y)+pB(x,y) ≥ 255 con alfa pA(x,y) + pB(x,y) altrimenti a* ImA+(1-a) *ImB =def a pA(x,y)+(1-a) pB(x,y) clipping(255) L Caponetti 18 Frame Buffer e Video Controller bus LUT 256 elementi D/A D/A D/A 8 / 24 / 32bit monitor Frame buffer Video controller con Look up Table L Caponetti Dispositivi di output I dispositivi di output sono generalmente i monitor o display (CRT, LCD ) Inizialmente (primi anni '60) i display sono dispositivi di tipo vettoriale (lineare), in grado di tracciare direttamente linee e punti (random scan – scansione casuale) La grafica di quegli anni usava quindi primitive di disegno di tipo vettoriale e modalità di visualizzazione wire-frame L Caponetti 19 Display CRT Tecnologia: tubo a raggi catodici Il cannone elettronico emette un fascio di elettroni Il fascio di elettroni viene deviato in modo da colpire tutti i punti sullo schermo Uno schermo al fosforo che emette luce visibile quando viene colpito dal fascio di elettroni Lo schermo è rappresentato da una matrice di pixel L Caponetti Scansione raster Il termine raster è sinonimo di matrice. Nella grafica raster una immagine viene rappresentata tramite una matrice di elementi La visualizzazione su un display di tipo raster si ottiene effettuando una scansione sistematica, secondo linee di scansione orizzontali: I pixel dello schermo sono accesi processando dall’alto verso il basso e da sinistra verso destra tutte le linee orizzontali dello schermo- dette linee di scansione L Caponetti 20 Scansione raster Scansione raster Dopo l’ultima linea di scansione il processo di visualizzazione riprende in modo analogo dalla prima linea in alto L’intero schermo è visualizzato con la stessa velocità Velocità di refresh: velocità con cui viene visualizzata una intera videata L’operazione di refresh dello schermo è necessaria perché il fosforo ha una persistenza di circa qualche decina di microsecondi L Caponetti Persistenza della immagine Persistenza della visione Fa sì che gli occhi continuino a percepire la luce anche per un breve periodo dopo che la luce si è spenta Persistenza dei fosfori Continuano a risplendere anche per qualche attimo dopo che il fascio di elettroni ha smesso di colpirli Frequenze di refresh tipiche: 50-100 Hz L Caponetti 21 Scansione raster Lo spazio di output è discreto e bidimensionale – una matrice rettangolare di pixel ricopre l’intera area dello schermo Caratteristiche dimensione – lunghezza della diagonale, misurata in pollici risoluzione del video - indica il numero di pixel (picture element) dello schermo- ad esempio 1280x1024 pixel dot pitch o pixel pitch distanza tra 2 pixel dello stesso colore. Minore è il dot pitch, maggiore è la qualità del display L Caponetti Display CRT a colori Tre cannoni elettronici emettono tre fasci di elettroni (per Red, Green e Blue) Fosfori spalmati sul vetro Cannoni elettronici Blu Verde Rosso Il singolo pixel è generato da tre fosfori che emettono luminosità sulle tre bande di colore RGB, stimolati dal pennello di raggi catodici I 3 fosfori RGB non sono nello stesso punto, ma molto vicini ed il sistema visivo umano produce la sensazione del colore Griglia metallica L Caponetti 22 IMAGE PROCESSING L Caponetti 23