Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Riflettanza
Velluto nero: 0,01
Acciaio: 0,65
Muro bianco pulito: 0,80
Neve: 0,93
= f(x0, y0)
con compreso tra i valori Lmin e Lmax. Nello specifico,
L = 2k
Se poniamo i livelli discreti come equidistanziati e interi, abbiamo allora livelli
di grigio compresi tra 0 e L-1. Questo insieme di valori pu essere chiamato
anche range dinamico, nell'accezione di "rapporto tra la massima intensit
misurabile e quella minima nel sistema". La regola vuole che il massimo sia
determinato dalla saturazione, mentre il minimo dal rumore.
Direttamente collegato il concetto di contrasto, che la differenza in
intensit tra le intensit minima e massima in un'immagine.
Il numero di bit richiesto per memorizzare un'immagine
b=MxNxk
Se l'immagine quadrata serviranno b = N2k pixel.
Risoluzione
Esistono sia la risoluzione spaziale che la risoluzione d'intensit: ciascuna
una misura del pi piccolo dettaglio individuabile in un'immagine. Un esempio
di risoluzione spaziale il ppi (pixel-per-inch, pixel per pollice). Questo ,
effettivamente, l'unico metro per capire l'effettiva qualit di un'immagine: la
sola risoluzione pu essere adottata come metro di giudizio delle capacit di
catturare dettagli di un sensore, non come metro di qualit.
La risoluzione dell'intensit si riferisce, invece, al pi piccolo cambiamento
individuabile nel livello di intensit. Solitamente vengono usati 8 bit, con 16 bit
usati in alcune applicazioni particolari e 32 bit che sono estremamente rari. La
risoluzione non , per, un metro affidabile per giudicare la qualit di
un'immagine, dato che rappresenta al pi una descrizione dei livelli teorici di
dettaglio nella riproduzione dei colori nell'immagine.
Curve di isopreferenza
Uno studio condotto da Huang nel 1965 ha mostrato come si possano variare
in contemporanea N e k per ottenere immagini la cui qualit percepita dagli
utenti la stessa. Egli mise a confronto immagini di un volto, di un
cameraman e di una folla, con dettagli crescenti. Huang chiese ai soggetti di
mettere le immagini in ordine di preferenza soggettiva in base al livello
percepito di qualit. Tali preferenze furono quindi rappresentate su un piano
Nk come curve di isopreferenza. I punti che appartengono a ciascuna retta
rappresentano immagini della stessa qualit percepita. Il risultato pi
interessante dell'esperimento che le immagini con molti dettagli solitamente
non richiedono molti livelli di intensit: a causa dei molti dettagli, infatti,
l'uomo percepisce gi profondit e complessit che non vengono aumentati
con maggiori livelli di intensit. Al contrario, minori livelli di intensit
provocano un aumento del contrasto e fanno s che l'immagine appaia di
qualit maggiore agli occhi dell'osservatore. Questo fatto viene rappresentato
con curve di isopreferenza pressoch verticali: varia k, ma non N.
Interpolazione
L'interpolazione un processo che, in sostanza, consiste nell'usare dati
conosciuti per ottenere dati sconosciuti in una certa posizione di un'immagine.
v(x, y) = ax + by + cxy + d
I quattro coefficienti sono determinati sostituendo i valori di x e y con i valori
dei quattro punti vicini.
Un approccio pi elaborato l'interpolazione bicubica, che coinvolge i sedici
punti pi vicini. Il valore dell'intensit v(x, y) in un punto dato dall'equazione
v(x, y) = i=03j=03aijxiyj
dove i sedici coefficienti sono determinati dalle sedici equazioni in sedici
incognite che possono essere scritte usando i sedici punti pi vicini.
L'interpolazione bicubica riesce a mantenere pi dettagli rispetto alla
controparte lineare ed lo standard impiegato in programmi commerciali come
Photoshop.
2
s = T(r)
dove s e r sono variabili che denotano, rispettivamente, le intensit di g e f in
qualunque punto
(x, y).
Funzioni di trasformazione dell'intensit
Le funzioni di trasformazione dell'intensit sono tra le pi semplici tra le
funzioni di elaborazione delle immagini. Il valore dei pixel prima
dell'elaborazione sar denotato con r, dopo con s all'interno della funzione s =
s=L-1r
Questo produce l'equivalente del negativo fotografico. Il processo
particolarmente indicato quando bisogna aumentare il livello di dettagli
grigi o bianchi in immagini con molte zone scure.
2. Trasformazioni logaritmiche
La forma generale delle trasformazioni logaritmiche
s = c log (1+r)
dove c una costante e r 0. Le trasformazioni logaritmiche permettono di
mappare pochi valori con bassa intensit (colori scuri) in molti pi valori,
permettendo in questo modo di aumentare il livello di risoluzione d'intensit dei
toni scuri. Di contro, la risoluzione d'intensit dei toni chiari diminuisce poich pi
valori vengono mappati in un unico valore. Questo signica che la funzione
logaritimica comprime il range dinamico di un'immagine con grandi variazioni di
intensit tra i pixel. Un esempio di applicazione nel miglioramento delle
immagini nello spettro di Fourier.
3. Trasformazioni con legge di potenza (gamma)
Le trasformazioni con legge di potenza sono espresse nella forma
s = cr
dove c e sono costanti positive. Gamma piccoli (es. 0.10) aumentano il
livello di dettaglio delle zone scure nelle immagini, mentre gamma grandi
(es. 5) aumentano il livello di dettaglio delle zone chiare.
Per convenzione gli esponenti delle leggi di potenza usate dai dispositivi
per interagire con le immagini (cattura, stampa, riproduzione) vengono
chiamati gamma, da cui correzione di gamma quando si correggono tali
esponenti nell'elaborazione delle immagini.
In generale, le trasformazioni con legge di potenza sono utili per
manipolare il contrasto nelle immagini.
4. Funzioni di trasformazione a linea spezzata
Un ulteriore metodo a disposizione quello delle funzioni di
trasformazione a linea spezzata, il cui principale vantaggio che si pu
alterare a piacere la forma per renderla arbitrariamente complessa; lo
svantaggio che le funzioni di trasformazione a linea spezzata
richiedono maggiore input da parte dell'utente.
1. Ampliamento del contrasto: l'ampliamento del contrasto consiste
nell'aumentare il range di livelli d'intensit in un'immagine in maniera
tale che esso si estenda per tutto il range di intensit consentito dal
dispositivo di cattura o di riproduzione. L'ampliamento del contrasto
varia tra una funzione nulla (che non provoca cambiamenti) e la
trasformazione dell'immagine originale in un'immagine binaria (in soli
bianco e nero).
2. Slicing dei livelli d'intensit: per esaltare porzioni di immagine o
dettagli presenti in certi range di intensit possibile binarizzare
s = T(r)
0 r L-1
che produce in output un livello di intensit s per ogni pixel nell'immagine con
intensit r. Sappiamo che:
r = T -1 (s)
0 s L-1
(2)
dove t una variabile d'integrazione. Si nota quindi che G(z) = T(r) e, quindi,
che z deve soddisfare la condizione
k nj k=0, , L-1
j=0
(a)
G(zq) = (L-1)
per un valore di q tale che
q pz (zi)
i=0
(b)
G(zq) = sk
dove pz (zi) il i-esimo valore dell'istogramma specificato. Come prima,
troviamo il valore desiderato zq ottenendo la trasformazione inversa:
zq = G-1 (sk)
In altre parole, questa operazione d un valore di z per ogni valore di s, quindi,
effettua una mappatura di s in z.
Non c' reale bisogno di calcolare l'inverso di G, poich lavoriamo con livelli di
intensit che sono interi ed semplice elaborare tutti i possibili valori di G
usando l'equazione (b) per q = 0, , L-1. Tali valori sono scalati e arrotondati
al valore intero pi vicino nell'intervallo [0, L-1] e sono quindi archiviati in una
tabella. Dato quindi un particolare valore di sk, si cerca il pi vicino
corrispondente tra i valori nella tabella. Esempio: se il 64o valore quello pi
vicino a sk, allora z63 la migliore soluzione all'equazione e il valore di sk
associato con z63. Poich le z sono le intensit utilizzate come base per
specificare l'istogramma pz (z), segue che z0 = 0, z1 = 1, , zL-1 = L-1, quindi z63
avr valore di intensit 63. Ripetendo questa procedura si scopre la mappatura
di ciascun valore di sk nel valore di zq che la pi vicina soluzione
all'equazione: queste mappature sono la soluzione del problema di
specificazione dell'istogramma.
possibile riassumere la procedura di specificazione dell'istogramma come
segue:
1. Si calcola l'istogramma pr (r) dell'immagine data e si usa per trovare la
trasformazione di equalizzazione dell'istogramma nell'equazione (a). Si
arrotondano i valori risultanti sk all'intervallo intero [0, L-1].
2. Si calcolano tutti i valori della funzione di trasformazione G usando
l'equazione (b) per q = 0, 1, , L-1, dove pz (zi) sono i valori
dell'istogramma specificato. Si arrotondano i valori di G agli interi
nell'intervallo [0, L-1] e si memorizzano tali valori in una tabella.
3. Per ciascun valore di sk, k = 0, 1, , L-1, si usano i valori memorizzati di
G per trovare i valori corrispondenti di zq in maniera tale che G(zq) sia il
pi vicino possibile a sk e si memorizzano queste mappature da s a z.
Quando pi di un valore di zq soddisfa sk (ad es. perch la mappatura
non univoca), si sceglie il valore pi piccolo per convenzione.
4. Si forma l'immagine con istogramma specificato equalizzando
l'istogramma dell'immagine in input e quindi si mappa ciascun valore
equalizzato dei pixel, sk, di questa immagine nel valore corrispondente zq
nell'immagine con istogramma specificato usando la mappatura del
passo precedente. Il passo intermedio di equalizzare l'immagine in input
concettuale e pu essere saltato combinando le due funzioni di
trasformazione T e G-1.
Affinch G-1 soddisfi le condizioni 1a. E 2., G deve essere strettamente
monotona; questo significa che nessuno dei valori pz (zi) dell'istogramma
specificato pu essere zero, secondo l'equazione (b). Il fatto che questa
condizione possa non essere rispettata lavorando con quantit discrete non
un problema grave.
Filtraggio spaziale
Il filtraggio spaziale uno dei principali metodi usati per elaborare le immagini.
Il termine filtro preso in prestito dal mondo dell'elaborazione delle
frequenze, dove filtro si riferisce all'accettare o rifiutare il passaggio di certe
componenti delle frequenze: per esempio, un filtro che passa le basse
frequenze chiamato filtro passa basso, il cui effetto quello di sfocare
un'immagine. Possiamo ottenere lo stesso effetto usando dei filtri spaziali
(chiamati anche maschere spaziali, kernel, template e finestre) direttamente
sull'immagine. I filtri spaziali lineari sono molto pi versatili delle controparti
che si basano sulle frequenze.
Le meccaniche del filtraggio spaziale
Un filtro spaziale consiste fondamentalmente di
1. un intorno di un pixel, tipicamente un piccolo rettangolo;
2. un'operazione predefinita che viene eseguita sui pixel dell'immagine
evidenziati dall'intorno.
Il filtraggio crea un nuovo pixel con coordinate uguali a quelle del centro
dell'intorno, e il cui valore il risultato dell'operazione di filtraggio.
Un'immagine elaborata viene generata ogni volta che il centro del filtro viene
applicato ad un nuovo pixel dell'immagine. Se il filtro impiegato lineare si
parla di filtro spaziale lineare, altrimenti di filtro spaziale non-lineare.
L'output g(x, y) del filtro in un certo punto dell'immagine la somma dei
prodotti dei coefficienti del filtro e dei pixel su cui viene applicato il filtro:
I filtri spaziali di smoothing vengono usati per sfocare e per ridurre il rumore
d'immagine. Altri usi sono nella pre-elaborazione di immagini, ad esempio per
eliminare dettagli fini quando si vuole estrarre oggetti di grandi dimensioni.
Filtri di smoothing lineari
L'output di un filtro di smoothing lineare spaziale la media dei pixel contenuti
nell'intorno della maschera di filtraggio. Questi filtri sono anche detti filtri di
media (averaging filters) e filtri passa-basso.
Rimpiazzando i pixel di un'immagine con un valore medio ottenuto da tutto ci
che circonda tale pixel si ottengono transizioni di intensit da un pixel all'altro
pi morbide e, quindi, si ottiene una sfocatura. Peraltro il rumore d'immagine
consiste spesso proprio in transizioni d'intensit molto nette e, quindi, i filtri di
smoothing (appiattimento, omogeneizzazione) riescono a ridurre il rumore
appiattendo le transizioni. L'effetto collaterale che anche i bordi, che
normalmente sono composti proprio da separazioni nette, vengono anch'essi
sfumati.
Si crea la maschera di dimensione n x n, in questo caso 3x3. In questo
esempio usiamo una maschera in cui ciascun pixel ha valore 1.
1
A questo punto si somma il peso dei pixel: in questo caso si ottiene il valore 9.
Si ottiene quindi la seguente equazione:
R = 1/9 i=1 9 zi
che non altro che la media dei pixel sotto la maschera. Per ottenere una
media pesata, in cui certi pixel (es. quello centrale) abbiano un peso maggiore
rispetto agli altri per ottenere un minore effetto di sfocatura, si possono
moltiplicare i singoli elementi della maschera per coefficienti decrescenti al
crescere della distanza dal centro. I vicini diagonali sono pi lontani dei vicini
ortogonali e, quindi, pesano di meno.
1
R = 1/16 i=1 9 zi
Il valore di R quindi il valore del pixel centrale.
Filtri non-lineari (con statistica d'ordine)
[pag 178]
Filtro Gaussiano
Il filtro gaussiano opera con una maschera di dimensione predefinita (es. 5x5)
e riporta su questa i valori che si trovano in una curva di distribuzione
gaussiana, con la classica forma a campana: il valore pi grande quello del
punto centrale, mentre gli altri degradano progressivamente con l'avvicinarsi ai
bordi della finestra.
La formula
1
f(x,y)=12exp(x+y2)
con che la varianza (ovvero il quadrato della deviazione standard) e x e y
che sono le coordinate dei punti dell'immagine.
Il vantaggio del filtro gaussiano sui filtri normali la sua maggiore
progressivit, che permette di ottenere sfocature pi tenui.
8
HP = O LP
con HP che sta per High Pass, O che sta per Originale e LP che sta per Low
Pass. A questo punto possiamo dire che:
High-Boost = A * O LP
(A-1) * O + O LP
(A-1) O + HP
con A fattore di guadagno. Se A = 1 il filtro di high-boost equivale ad un filtro
di high-pass, mentre se A > 1 il filtro di high-boost equivale al filtro di
high-pass pi vO.
2
Filtri derivativi
Come i filtri di sfocatura sono basati sugli integrali, cos i filtri di affilatura sono
basati sulle derivate.
Derivate di funzioni digitali
Una derivata prima:
deve essere zero in un'area di intensit costante;
deve essere diversa da zero all'inizio di un cambiamento o gradino di
intensit (es. bordo);
deve essere diversa da zero in corrispondenza di cambiamenti (ramps) di
intensit.
Una derivata seconda, invece:
deve essere zero in aree di intensit costante;
deve essere diversa da zero all'inizio e alla fine di cambiamenti e
gradini di intensit;
deve essere zero in aree di diminuzione o aumento costante d'intensit.
Si possono usare queste caratteristiche delle derivate per avere i seguenti
effetti:
derivate prime: contorni pi spessi, risposta pi forte agli edge ripidi;
derivate seconde: risposta pi forte ai dettagli fini, risposta doppia agli
edge.
In buona sostanza, la derivata prima individua le zone di cambiamento,
mentre la derivata seconda individua i punti precisi in cui il cambiamento
avviene (e quindi pi sensibile ai dettagli). Per questo motivo la derivata
prima si utilizza per estrarre i contorni, ma la derivata seconda quella pi
indicata per lo sharpening perch individua i singoli punti di passaggio di
intensit.
Gradienti
Gli operatori seguenti si basano sul concetto di gradiente. Il gradiente pu
essere intuitivamente definito come un vettore che rappresenta l'andamento
dell'intensit della funzione, orientato verso la zona di intensit maggiore. La
sua magnitudo l'inclinazione del grafico.
La definizione formale di gradiente la seguente:
f=[fxfy]
La derivata prima come segue:
3
fx=f(x+1)f(x)
La derivata seconda pu essere ricavata dalla derivata prima:
fx=x(fx)=x(f(x+1)f(x))=x(f(x+1))x(f(x))f(x+2)f(x+1)(f(x+1)f(x))=f(
x+2)2f(x+1)+f(x)f(x+1)2f(x)+f(x1)
La formula pressoch identica per derivate a due componenti (x, y).
2fx2=f(x+1,y)2f(x,y)+f(x1,y)2fy2=f(x,y+1)2f(x,y)+f(x,y1)
z1 z2
z3
z4 z5
z6
z7 z8
z9
Le componenti del gradiente rispetto alla tabella qui sopra possono essere
calcolate come segue:
f=[(z8z5)2+(z6z5)2]|z8z5|+|z6z5|
Il filtro gradiente utilizza una maschera derivata dalle equazioni di cui sopra e
mette in evidenza le variazioni di intensit nella direzione specificata (es.
verticale, orizzontale). Questo permette di evidenziare bordi e testo (che
solitamente ha una differenza di intensit notevole rispetto a ci che lo
circonda).
Il kernel ha un asse di simmetria che divide coefficienti positivi e negativi;
questo asse che fornisce l'orientamento.
Operatori di Prewitt e Sobel
Gli operatori di Prewitt e Sobel sono tra i pi diffusi nelle operazioni di
rilevamento dei bordi e del testo per via della loro capacit di individuare
correttamente bordi e testo e di essere meno sensibili al rumore rispetto ad
altri operatori.
Prewitt
-1 -1 -1
-1 0
-1 0
-1 0
-1 -2 -1
-1 0
-2 0
Sobel
-1 0
Laplaciano
Il filtro laplaciano consiste nella discretizzazione della derivata seconda del
gradiente.
L(x,y)=2fx2+2fy2=f(x+1,y)+f(x1,y)+f(x,y+1)+f(x,y1)4f(x,y)
L'operazione isotropa ed quindi indipendente dalla direzione delle
discontinuit delle immagini.
Il laplaciano ha una maschera isotropa per rotazioni di 90 come quella qui
sotto:
0
-4 1
-8 1
-1 0
-1 5
0
-1
-1 0
-1 -1 -1
-1 9
-1
-1 -1 -1
Il laplaciano pu quindi essere utilizzato sia per estrarre i contorni che per
evidenziarli.
La tabella qui sopra aiuta a capire quale sia il comportamento del laplaciano:
sex=2(|a|+|b|+|c|+|d|) allora estrae i contorni;
sex2(|a|+|b|+|c|+|d|) allora evidenzia i contorni.
Se la somma dei coefficienti uguale a 0, le zone costanti saranno poste a 0.
Marr
Il modello di Marr cerca di replicare il funzionamento della visione umana
applicandolo all'elaborazione delle immagini. Per questo motivo cerca di
riprodurre un primo schizzo dell'immagine (chiamato, per l'appunto, primal
sketch) all'interno del quale individua gli elementi pi grossolani e che
risaltano subito: bordi e linee che definiscono gli elementi principali
dell'immagine. Dopo questo passaggio procede a ricostruire mano a mano
l'immagine con dettagli sempre maggiori, fino a ritornare all'immagine
originale che, per, stata scomposta e ricomposta in tutte le sue parti.
Per ottenere il primal sketch necessario eliminare il rumore d'immagine, che
pu falsare i risultati di rilevazione dei bordi, e i dettagli pi fini. Per fare ci si
utilizzano filtri di smoothing, in particolare il gaussiano. A questo punto
bisogna individuare i bordi e l'operatore pi adatto il laplaciano.
L'operatore di Marr si pu quindi definire come l'applicazione del laplaciano
sull'operatore gaussiano: per limitare l'influenza negativa che ha il rumore
d'immagine sulla rilevazione dei bordi, si applica un filtro di smoothing con
kernel gaussiano; successivamente si procede ad impiegare il laplaciano per
rilevare i bordi. Il laplaciano del gaussiano detto Laplacian of Gaussian in
inglese e per questo motivo chiamato LoG; se lo proiettiamo su un piano e lo
facciamo ruotare intorno a se stesso otteniamo come risultato un grafico che
ricorda un sombrero e, per questo, si chiama anche Mexican hat operator.
4
Algoritmo di Marr-Hildreth
Siano I l'immagine in ingresso e G(x, y) il filtro gaussiano che vi viene
applicato. Otteniamo quindi:
2(IG(x,y))
con IG(x,y) che indica il filtraggio con la gaussiana e
2=2x2+2y2
A questo punto possiamo ottenere in forma esplicita il laplaciano del
gaussiano:
I(2G(x,y))
Il risultato il seguente:
2G(x,y)=x2+y22226exp(x2+y222)
-1 0
-1 -2 -1 0
-1 -2 16 -2 -1
0
-1 -2 -1 0
-1 0
Il valore positivo molto alto ed circondato da valori negativi che vanno via
via decrescendo fino a raggiungere lo zero.
La ricerca degli zero crossing, ovvero dei bordi, deve avvenire tenendo conto
delle diverse inclinazioni che possono avere i bordi e, pertanto, deve avvenire
seguendo questo schema:
I filtri non lineari sono filtri che effettuano operazioni sul pixel centrale
comparando e selezionando i pixel che ha intorno.
Tali filtri agiscono seguendo le seguenti fasi:
Filtro mediano
Il filtro mediano seleziona come valore di (x, y) il valore di mezzo tra quelli
ordinati presenti in W.
Ad esempio:
26 15
14 68 35
23 89 8
Ordiniamo i valori in modo che siano crescenti: 5 8 14 15 23 26 35 68 89. Il
valore di mezzo 23. A questo punto si inserisce 23 al posto di 68.
La stessa tecnica si pu utilizzare in maniere differenti:
Min: si prende il valore minimo (es. 5). Questo fa s che si cancelli il
rumore, ma si cancellano anche i dettagli fini e si espandono le zone
scure dell'immagine.
Mediano: si prende il valore di mezzo. Elimina il rumore impulsivo.
Max: si prende il valore massimo (es. 89). Questo pu aumentare il
rumore, cancellare i dettagli fini e aumentare le zone chiare
dell'immagine.
Propriet del mediano:
elimina il rumore impulsivo senza sfocare l'immagine;
lascia inalterate le rampe;
lascia le transizioni rapide inalterate;
distrugge le linee sottili;
dipende fortemente dalla dimensione della finestra per la rimozione del
rumore o la cancellazione dell'informazione.
Si pu pensare anche al filtro media: al posto di prendere il valore in mezzo, si
effettua una media aritmetica con i valori vicini. Il problema di questo
approccio che si modificano anche i pixel non rumorosi e si ottiene una netta
sfocatura.