Rappresentazione delle Immagini 2 Come si rappresenta un’immagine z Un’immagine e’ di norma rappresentata come un raster, cioe’ una matrice di elementi discreti, detti pixel, ciascuno di un colore. z Memorizzare un raster significa, in prima approssimazione, memorizzare la il colore di ciascun pixel z Esistono diversi modi di memorizzare un’immagine raster, corrispondenti a diversi formati di file immagine – BMP, TIFF, JPEG, GIF, PNG, … z I formati differiscono per il modo in cui si memorizzano i colori dei pixel
44
Embed
Rappresentazione delle Immagini - unipi.itdocenti.ing.unipi.it/~a080368/Teaching/InfoGrafica/pdf/Rappresentaz… · Sintesi Additiva di Colore zI colori rappresentabili su un monitor
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Rappresentazionedelle Immagini
2
Come si rappresenta un’immagine
Un’immagine e’ di norma rappresentata come un raster, cioe’una matrice di elementi discreti, detti pixel, ciascuno di un colore.
Memorizzare un raster significa, in prima approssimazione, memorizzare la il colore di ciascun pixel
Esistono diversi modi di memorizzare un’immagine raster, corrispondenti a diversi formati di file immagine
– BMP, TIFF, JPEG, GIF, PNG, …
I formati differiscono per il modo in cui si memorizzano i colori dei pixel
3
Come si memorizza un’informazione di colore
La luce e’ un’onda elettromagnetica, che colpisce ilfondo della retina attraverso la pupilla
Il fondo della retina e’ popolato di coni, che sonoparticolarmente sensibili a certe frequenze di luce– Ci sono tre tipi di coni, sensibili in intervalli di frequenze
differenti (ma non disgiunti)
4
Come si memorizza un’informazione di colore
L’apparato visivo (occhi+cervello) non e’ in grado di distinguere la composizione di luce (metameria)
5
Sintesi Additiva di Colore
I colori rappresentabili su un monitor sono riprodotti mescolando luce rossa, verde, blu (RGB)
Per descrivere un dato colore, basta quindi stabilire l’intensita’ di luce dei tre colori che lo compongono
Sperimentalmente, si nota che 256 (=28) sfumature di ciascuno dei 3 colori bastano per comporre un numero sufficiente di colori
Nero (0,0,0)
Rosso (255,0,0)
Verde (0,255,0)
Blu (0,0,255)
Grigio
(x,x,
x)
Giallo (255,255,0)
Bianco (255,255,255)
Ciano (0,255,255)
Magenta (255,0,255)
6
Memorizzazione del colore
Diretta (true color)– Memorizzo il colore (RGB) di ciascuno dei pixel
– 24 bit (=3 byte) per pixel
Indicizzata (palette)– Memorizzo una palette di n colori RGB (3 byte/colore)
e
– Per ogni pixel, memorizzo l’indice della riga della palette che gli corrisponde
7
Memorizzazione del colore (2)
Casi particolari
– B/N (monocromatica): un bit per stabilire ilcolore di un pixel (1=bianco, 0=nero)
– scala di grigi (grayscale): un numero per rappresentare la percentuale di nero di un pixel (spesso 256 livelli di grigio, 0=bianco, 127=grigio medio, 255=nero). 1 byte per pixel
8
Quanti colori nell’immagine?
Pochi colori (e.g., disegno)– Tipico: <=16, 256 colori
– Palette piccola
– Indice su pochi bit (4, 8)
Molti colori (e.g., foto)– Tipico: >=1000 colori
– Rappresentazione indicizzatapoco (o per niente) conveniente
– Meglio true color
9
Esempi
Immagine 640x480 pixel, 256 colori– colore di ogni pixel rappresentabile su 8 bit (=1 byte)
– Dimensione dell’immagine: 648x480= 307200 pixel
– Per la matrice sono necessari 307200 bytes
– Dimensione della palette: (almeno) 3*256=768 byte (trascurabile)
– Dimensione probabile del file in memoria: intorno a 308000 bytes.
Immagine 512x384 pixel, 65536 colori– colore di ogni pixel rappresentabile su 16 bit (=2 byte)
GIF– Piu’ adatta per immagini con colori pieni (e.g., disegni,
loghi, etc.)
– Riduzione del n. di colori poco (o per niente) avvertibile
– Numero elevato di pixel consecutivi del medesimo colore
– Fattori di compressione nell’ordine di 10:1
JPEG– Piu’ adatta per immagini a colori sfumati (e.g. fotografie)
– Fattori di compressione nell’ordine di 10:1 ed oltre
– Il livello di qualita’ puo’ essere variato
35
GIF vs. JPEG (esempio)
JPEG (200x270) 11.9 Kb
JPEG, 2,70 Kb
GIF (200x270) 14,8 Kb
GIF 3 colori 1,29 Kb
36
Modifica del numero di colori
Supponiamo di avere una foto in formato BMP true color, con “molti” colori contemporaneamente presenti (migliaia)
Cosa succede se la salviamo in formato “bitmap a 256 colori”?
Si perde l’informazione associata ai colori mancanti
37
Riduzione del numero di colori (2)
Scelta di un n. di colori N con i quali l’immagine sarà codificata– Palette standard (ad esempio, web-safe) oppure
Analisi dell’immagine, per trovare al suo interno gli N colori piu’rappresentativi
– Possibili diversi criteri:Frequenza
Massima diversita’ di colore
Combinazioni dei due precedenti
Ogni colore dell’immagine viene modificato in uno degli N scelti
– ogni pixel p=(Rp,Gp,Bp), e’ trasformato nel colore j=(Rj,Gj,Bj) tale che
e’ minimo
( ) ( ) ( ) ( )2 2 2, p j p j p jD p j R R G G B B= − + − + −
38
Riduzione del numero di colori (3)
Palette standard vs palette basata sull’immagine
Palette 216 col. Web-safe
Palette 256 col. ottimizzata
Immagineoriginale
39
Riduzione del numero di colori (4)
Dithering– diffondere i colori di zone adiacenti
per dare l’illusione della continuita’
– Eventualmente riusare altri coloridella palette
– Rischio di creare falsi colori 256 colori
16 colori, no dithering 16 colori, dithering
40
Modifica del numero di punti
Scalatura di un’immagine– Downsampling = verso il basso (meno punti)
Scegliere alcuni punti tra quelli che costituiscono l’immagine
– Upsampling = verso l’alto (più punti)“inventare” i punti da aggiungere
Se la scalatura non viene fatta con lo stesso passo su entrambi gli assi, l’immagine risulta distorta
– Ne viene modificata l’aspect ratio
41
Scalatura
Downsampling di un fattore intero k– Scelgo il colore di 1 punto ogni k
– Scelgo il colore “medio” in un quadrato di latok
Upsampling di un fattore intero k– “nearest neighbor” da 1 pixel a 1 quadrato di
2x2 pixel
– Interpolazione (bilineare, bicubica) di pixel
Scalatura di un fattore razionale M/L– Upsampling di un fattore intero M
– Downsampling di un fattore intero L Esempi per k=2
42
Esempio
Bitmap 284x212, true color
177 Kbyte sul disco
12 Kbyte sul disco
scale 25%
scale 400%
43
Periferiche Raster
Monitor, stampante, scanner, fotocamera digitale– Informazione grafica rappresentata sotto forma di
matrice di pixel (raster)
44
Acquisizione di immagini raster
Tramite periferiche di acquisizione (scanner, macchine fotografiche digitali)
Ricavare una matrice di punti colorati (raster) da un’immagine
– stampata su un foglio (scanner)
– “dal vivo” (macchina fotografica digitale)
Risoluzione di scansione
– quanto precisamente l’immagine verrà ricostruita
– quanto grande sarà il file che la contiene
N. di colori dell’immagine
bassa altarisoluzioneFile piccolo, immagine poco precisa
File grande, immagine piùprecisa
45
Scanner e risoluzione
Uno scanner ha almeno due risoluzioni:– Ottica: quella del passo di campionamento delle immagini– Interpolata: lo scanner “si inventa” dei punti tra un
campionamento e l’altro
Esempio– HP Scanjet 4670V– Risoluzione
Ottica: 2.400 dpiInterpolata: fino a 999.999 dpi (a seconda della quantità di memoria disponibile, dello spazio su disco e di altri fattori di sistema)
La risoluzione interpolata non ha nessuna rilevanzapratica– Semplice upsampling via software
46
Effetto Moire’
Il passo di retinatura e di scansione danno fenomenidi frange interferenziali (Moire’)
Particolarmente visibile quando si effettua scansionedi immagini retinate (riviste) con risoluzione simile a quella di stampa
Per eliminarlo:
-Variare la risoluzione di scansione
-Usare appositi filtri nei programmidi elaborazione delle immagini (e.g., Photoshop) o nelle impostazioni delloscanner (deretinatura)
47
Digital Camera
Non si parla di risoluzione, ma di numero di pixel (oggi >= 5Mpixel)
Se si possono fare foto con un numero minore di pixel– L’hardware della DC cattura sempre lo
stesso numero di pixel (quello massimo)
– Viene fatto downsampling all’interno dellaDC.
Zoom ottico– “zoom digitale” = upsampling via software
48
Acquisizione e scalatura
L’acquisizione determina la quantità di informazione associata ad un’immagine (punti e numero di colori)
Non si può creare informazione manipolandoun’immagine– Downsampling: riduce la quantità di informazione ad essa
associata, e quindi fa perdere dettaglio all’immagine
– Upsampling di un’immagine già acquisita fa crescere la dimensione del file ad essa associato, ma non migliora la qualità dell’immagine
49
Visualizzazione - Schermo
monitor d
a 17”
area di v
isualiz
zazio
ne 16”
Dim ensioni m onitor (pollici)
Area di visualizzazione
(pollici) 15 14 17 16 21 20
PARAMETRI
• Nitidezza (dimensione dei punti, risoluzione, velocità di aggiornamento)
• Tipo di schermo (CRT, LCD)
50
Pixel
dot-pitch
pixel
Dimensione dei punti(DOT-PITCH): distanzatra i centri di due pixel adiacenti
Esempio: 0,28: 28 centesimi di mm
alternativamente
N. di pixel per unità di misura lineare (72-100 dpi, dots per inch) (risoluzione)
quantità di punti che possono esserevisualizzati sullo schermo del monitor
Frequenza di aggiornamento (verticale): numero di volte al secondo che i pixel vengono aggiornati per conservarne la luminosità (es.: 50-100 volte ilsecondo)
scansione non-interallacciata
pennelloelettronico
tubo a vuoto
52
CRT - Frequenze
Frequenza di aggiornamento/refresh (verticale): numero di volte al secondo che i pixel vengono aggiornati per conservarne la luminosità (50 – 120 Hz)
Frequenza orizzontale: numero di righe orizzontali che possono essere dipinte in un secondo (30-100 KHz)
Banda video: il numero di pixel contigui che possono essere colorati con colori diversi in un secondo (ovvero la frequenza con cui è possibile cambiare l’intensità del pennello). Valore tipico 200 MHz
53
CRT a colori
Grigliametallica
Cannonielettronici Blu
RossoVerdeFosfori
spalmati sulvetro
Tre cannoni luminosi, uno per ognuno dei colori fondamentali (R,G,B)
In realtà, un pixel è un agglomerato di 3 puntini molto vicini dei tre colori fondamentali– L’occhio umano “sintetizza”, e ricava l’impressione di un
unico punto colorato
54
Schermi LCD
Cristalli liquidi vengono orientati in modo tale daimpedire/consentire il passaggio di luce
55
LCD e CRT
Accensione pixel– CRT: per la maggior parte del tempo e’ spento.
– LCD: I pixel restano accesi tra un refresh e l’altroImmagine molto piu’ stabile
Qualche problema con immagini in movimento (tempo di risposta (1-10 ms)
Consumo– CRT: alto, LCD: molto basso
Affidabilita’– I CRT sono tuttora piu’ affidabili degli LCD
56
Scheda Video (semplificata)
rete di interconnessione (bus di sistema)
processore memoria
SCHEDA VIDEO
adattatoregrafico
memoria video
RGB
Sinc. O.
Sinc. V.
57
Memoria Video (semplificata)
x
y
R
C
SCHERMOMEMORIA VIDEO
(frame buffer)
xp + (C × yp)
bit che specificano ilcolore del pixel
(xp,yp)
58
Specifica del colore del pixel
Diretta– Celle di memoria di dimensione >= 24 bit
– Contengono direttamente la quantita’ di R, G, B, checompone il colore
Indicizzata– Celle di memoria di dimensione < 24 bit
– Contengono un indice di riga di una Color Lookup Table,
– La CLT contiene, alla riga j, la quantita’ di R, G, B, checompone il colore j
59
Adattatore Grafico (semplificato)
• L’AG legge ad intervalli di tempo regolari le locazioni della MV
• Una volta che ha letto il contenuto di una locazione associata ad un certo pixel, l’AG compie le seguenti azioni:1. Considera i bit letti come la codifica del colore che dovrà
caratterizzare il pixel2. Genera tre segnali corrispondenti ai tre colori fondamentali3. Trasmette tali segnali al monitor tramite i fili R, G e B
60
Memoria Video: esempio
C = Numero dei coloriP = Numero di pixeln = bit di indirizzo per la Memoria Videod = dimensione di una parola di Memoria Video
= ⎡ ⎤⎢ ⎥= ⎡ ⎤⎢ ⎥
2
2
log
log
n P
d C
N = Numero locazioni della Memoria Video = 2n (N ≥ P)
ESEMPIOModalità Grafica: 640 × 480; COLORI: 256 ⇒P = 307200 ⇒n = 19; d = 8 ⇒Memoria Video di 512 Kbyte
61
Pixel logici e pixel fisici
rete di interconnessione (bus di sistema)
processore memoria
SCHEDA VIDEO
adattatoregrafico
memoria video
RGB
Sinc. O.
Sinc. V.
62
Dalla BMP alla visualizzazione
La memoria video contiene, cella per cella, le informazionidi colore da visualizzare in ogni pixel dello schermo
– Celle di VRAM di dimensione maggiore di 24 bit (in pratica sempre): valori di R, G, B su 8 bit ciascuno
– Celle di VRAM di dimensione minore di 24 bit (in teoria): indice di colore in una color lookup table
Se devo visualizzare un’immagine bitmap, basta che la trasferisca nella memoria video “cosi’ com’e’”
Il formato bitmap e’ il piu’ semplice che si puo’ immaginareper memorizzare un’immagine, ed è quello che richiedemeno operazioni per la visualizzazione sullo schermo
63
Visualizzare immagini compresse
Un’immagine compressa (e.g., JPEG) non puo’essere copiata direttamente nella memoria video
Deve prima essere decompressa
Trade off tra spazio e tempo (tipico dell’informatica)
Chi fa la decompressione?– Normalmente, la CPU
– Se la scheda grafica contiene un processore (GPU, o 3d accelerator), e’ possibile che ad esso sia affidata parte del lavoro
64
Schede Video AGP e PCI express
L’architettura AGP (Accelerated Graphics Port) permette uno scambio diretto delle informazioni tra CPU e memoria centrale e scheda graficaIncremento della velocita’ di comunicazione tra chipset e scheda grafica; il limite di comunicazione del bus PCI è 132 MB/s, lo standard AGP 3.0 8x arriva a 2.1 GB/s di piccoNuovo standard (~2007): PCI express, consente di
– Raggiungere velocita’ di trasferimento maggiori– Inserire anche piu’ di una scheda video
65
Risoluzione nativa e cambio di risoluzione
In un monitor CRT, il numero di fosfori di cui sicompone lo schermo e’ fisso– Il pennello, pero’, si muove in maniera continua
– Se la scheda video invia immagini a risoluzione diversa(minore), il pennello colpisce “di striscio” alcuni fosfori
– La cosa avviene senza che l’utente se ne accorga
In un monitor LCD, il numero di contatti della matricetramite la quale si polarizzano I cristalli– Se la scheda video invia immagini a risoluzione diversa
(minore), le stesse vengono scalate verso l’alto dalmonitor
– L’effetto visivo e’ terribile
66
Stampanti
Differiscono per:
Tecnologia di stampa– Getto di inchiostro
– Laser
Capacità cromatica– Bianco e nero
– Colore
Velocità di stampa– N. di pagine al minuto
Risoluzione– 600-4800 dpi
Capacità di eseguire compiti complessi– Stampanti “PostScript”
67
Stampanti laserUn raggio laser, tramite specchi che lo deflettono, scandisce per righe successive un tamburo e ne carica elettricamente solo i punti che dovranno corrispondere ai pixel da stampare
Contemporaneamente un foglio di carta passa vicino ad un filo percorso da corrente e si carica elettrostaticamenteIl tamburo, ruotando, pesca toner da una vaschettaIl toner, a carica opposta al tamburo, si fissa ad esso solo nei punti caricati dal raggio laserQuando la carta passa a contatto con il tamburo, dato che la carta è molto piùcarica, il toner viene attirato dalla carta
Raggio Laser
Vasca delToner
Carta
Elementidi fusione
Lampadadi scarica
Tamburo
Filo a corona
Fili a corona
68
Stampanti laser
Il tamburo, continuando a ruotare, passa vicino alla lampada di scarica che lo scarica completamente
La carta passa invece da sistema di fusione che, con una combinazione di calore e pressione, fissa in permanenza, fondendolo, il toner alla carta
Raggio Laser
Vasca delToner
Carta
Elementidi fusione
Lampadadi scarica
Tamburo
Filo a corona
Fili a corona
69
Stampanti Inkjet
Al posto del toner, ci sono cartucce di inchiostro
Le cartucce sono montate su una testina ancorataad un braccio mobile che scandisceorizzontalmente il foglio
Viene rilasciato inchiostro su ogni pixel da annerire
Il foglio viene fatto avanzare per stampare nuoverighe
70
Stampanti a colori
Nelle stampanti a colori, ogni colore e’ rappresentato mescolando quattro colori
– Cyan, Magenta, Yellow, BlacK (CMYK)
In realta’, basterebbero i primi tre– Nero usato per convenienza e
precisione
Il processo appena descritto viene ripetuto 4 volte, ogni volta con un inchiostro di colore differente
Vale sia per stampanti laser cheper stampanti inkjet
CCC
MMM YYY
Nero (0,0,0)
Rosso (255,0,0)
Verde (0,255,0)
Blu (0,0,255)
Grigio
(x,x,
x)
Giallo (255,255,0)
Bianco (255,255,255)
Ciano (0,255,255)
Magenta (255,0,255)
71
Il processo di stampa
Come si passa da una pagina (ad esempio) di testo all’insieme di operazioni che devono essere effettuate sulla stampante per ottenere la pagina stampata?– Il software che elabora il documento (e.g. Word) interagisce
con il driver della stampanteTale interazione avviene secondo criteri standard, che non dipendono dal modello di stampante
– Il driver invia alla stampante i comandi nella maniera ad essa comprensibile
Tale interazione dipende dal modello di stampante. Infatti stampanti diverse hanno driver diversi
72
Stampanti PostScript
Hanno dei processori (RIP, Raster Image Processor) che eseguono comandi in linguaggio PostScript
Per inviare una pagina di testo, invece che convertirla in una matrice di punti posso darne una descrizione molto più sintetica in PS e lasciare che il RIP la interpreti
L’immagine viene creata all’interno della stampante
Una stampante b/n (a colori) ha inchiostri di un colore (4 colori)
Per realizzare (e.g.) il grigio o il magenta chiaro, si usa la retinatura
– Non tutti i pixel adiacenti vengono colorati
– Il cervello integra nello spazio punti bianchi e colorati vicini
74
Gamut
Ogni dispositivo e’ in grado di rappresentare un sottoinsieme finito dei colori visibili, detto gamut
Dispositivi diversi hanno gamut diversi
Diagramma ufficiale della CIE (Commission Internationale de l’Eclairage), 1931, cherappresenta I colori visibili in coordinate assolute (xyY)
Spettro di luce visibile
75
Gamut (2)
Il gamut di dispositivi a sintesi additiva (monitor) e sottrattiva (stampanti) e’ notevolmente differente– Non tutti i colori visibili sono stampabili e viceversa
– Monitor diversi in cui i tre fosfori sono illuminati con unadata intensita’ mostrano colori diversi
76
Stampanti 3d
5K $ (Feb 08)
Costo del materiale: 1$/in3 (Feb 08)
77
Regole per manipolare i raster
Acquisire una quantità di informazione (colore, n. di pixel) adatta allo scopo finale– Scansione di A4 per produrre un’immagine 5x5 cm
non ha senso lavorare a 1000 dpi
abbassare la risoluzione di scansione
– Scegliere il formato tenendo conto dell’effettivo numero di colori presente nell’immagine.
Impiego delle tecniche di compressione (GIF, JPEG)– Evitare di comprimere/decomprimere un JPEG molte volte
Ad ogni salvataggio, nuove approssimazioni (la parte frazionaria deicoefficienti DCT viene troncata)
– Manipolare l’immagine in formato non compresso, e comprimere come ultima operazione.
78
Rappresentare disegni tecnici
I disegni tecnici contengono oggetti, figure geometriche, descrivibili mediante curve e superfici (equazioni)
Ruotare (traslare, stirare, etc.) un oggetto significa applicare ad esso una trasformazione descrivibile in termini geometrici
Per conservare la possibilità di ruotare, muovere stirare, singoli oggetti all’interno di un disegno, è necessario rappresentarli tenendo conto delle loro proprietà geometriche
– Posizione relativa ad un riferimento
– Forma, colore, etc.
79
Rappresentazione Vettoriale
Si parla in tal caso di rappresentazione vettoriale di un’immagine– Non e’ memorizzato il colore di ogni pixel, ma una
descrizione di alto livello (astratta), in un particolare linguaggio, delle proprieta’ geometriche degli oggetti checompongono l’immagine
Esempio (inventato) di linguaggio di descrizione:
Image(1024,768,white)
Rect(30,30,100,200,black)
Circle(100,40,30,red)
x
y
80
Esempio
Un file salvato con AutoCAD è memorizzato in un formato vettoriale (proprietario Autodesk)
Il file salvato su disco contiene una descrizione ad alto livello di figure geometriche (poligoni e solidi contenuti nel progetto)
81
Formati grafici vettoriali
Esistono diversi formati grafici vettoriali, corrispondenti a diversi prodotti commerciali di grafica vettoriale, ad esempio:– Autocad (DWG)– Corel Draw (CDR)– Macromedia Freehand (FHx)– Adobe Illustrator (AI)– Microsoft Visio (VSD)– Windows Metafile (WMF)– PostScript ed Encapsulated PostScript (PS, EPS)– Portable Document Format (PDF)– …
Ognuno di questi definisce un proprio linguaggio di descrizione degli oggettiA meno che non incorporino dei raster, i file che contengono immagini vettoriali hanno dimensioni molto contenute
82
Periferiche Non-Raster
Plotter a penna (caduti in disuso)– Informazione grafica rappresentata sotto forma di
comandi di movimento della penna (funzionimatematiche).
83
Visualizzare un’immagine vettoriale
Per visualizzare su una periferica raster (e.g., lo schermo) una scena descritta in modo vettoriale, e’necessario creare in memoria video il raster che la contiene– Processo di rendering– Per ogni pixel logico (cella di memoria video), devo
decidere un colore, calcolato sulla base della descrizionevettoriale di tutti gli oggetti contenuti in un’immagine
Image(1024,768,white)
Rect(30,30,100,200,black)
Circle(100,40,30,red)
84
Rendering in memoria video
Se ci sono molti oggetti, è necessario fare molti contiper stabilire il colore di ogni singolo pixel
Rapp. Vettoriale…255, 255, 255
255, 255, 255
0,0,0
j
j+1
j+2
… in memoria video
… sullo schermo
Image(1024,768,white)
Rect(30,30,100,200,black)
Circle(100,40,30,red)
85
Rasterizzazione
In generale, trasformazione di un’immagine vettoriale in un raster– Ad esempio, salvataggio in un formato di tipo raster (e.g.,
BMP) di un’immagine memorizzata in un formato vettoriale (e.g., CDR)
E’ (grossomodo) la stessa operazione che viene fatta in memoria video per visualizzare l’immagine vettoriale
86
Vettorializzazione
Processo estremamente complesso, realizzabile solo con programmi avanzati, e per casi molto semplici.
Si tratta di analizzare un raster con l’obiettivo di riconoscere “contorni” di forme descrivibili in modo matematico.– Esempio: riconoscimento di caratteri scritti a mano (OCR)
A
87
Modificare un’immagine vettoriale
Un’immagine vettoriale può essere ingrandita o rimpicciolita senza perdita di qualità.
Si tratta solo di manipolare equazioni, il che può essere fatto con precisione.