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