Upload
dinhthuan
View
215
Download
0
Embed Size (px)
Citation preview
1
L Caponetti
Operatori locali
L Caponetti
Analisi di basso livello
Si applica ad una immagine per produrre una immagine utile all’ applicazione finale
Obiettivo è il miglioramento della immagine e riduzione del rumore – introdotto nella acquisizione e trasmissione
2
L Caponetti
Elaborazione intermedia
La descrizione per punti di una scena è troppo complessa per l’elaborazione di alto livello quale l’interpretazione
L’elaborazione intermedia si occupa di ottenere una descrizione significativa della scena mediante
la segmentazione – suddivisione della immagine in regioni a cui associare dei descrittoriIn ingresso si ha una immagine In uscita un insieme di descrittori
L Caponetti
Interpretazione
Viene definita di alto livello in analogia alla visione di alto livello dell’uomo
Utilizza tecniche di intelligenza artificialeRichiede un modello della scena che si vuole analizzareIn ingresso si hanno delle descrizioni – featuresIn uscita il risultato di un processo di classificazione
3
L Caponetti
Operatori locali
Gli operatori locali associano ad ogni pixel (i,j) di una immagine f un valore calcolato sulla base dei valori di un intorno o finestra centrata nel pixel (i,j)
Per eseguire una elaborazione locale l’immagine viene esplorata in una sequenza prefissata – ad esempio da sinistra a destra e dall’alto verso il basso
f(i,j)
L Caponetti
Obiettivi
Smoothing – rimuove il rumore dovuto allatrasmissione, acquisizione..
Enhancement – migliora la qualità delle immagini o enfatizza feature significative, come gli edge
Deblurring – migliora la nitidezza ( sharpness) delleimmagini sfocate (blurred)
4
L Caponetti
w(i,j) è una maschera 3 x 3 w1 w3w2
w4 w6w5
w7 w9w8
h =
)1,1(),1()1,1()1,(),()1,(
)1,1(),1()1,1(),(
987
654
321
+++++−+++++−+
+−+−+−−=
yxfwyxfwyxfwyxfwyxfwyxfw
yxfwyxfwyxfwyxg
(x,y)y
xf(x+1,y+1)f(x+1,y)f(x+1,y-1)
f(x,y+1)f(x,y)f(x,y-1)
f(x-1,y+1)f(x-1,y)f(x-1,y-1)Finestra immagine didimensione 3 x 3
Il valore del pixel centrale è calcolato come somma pesata di f secondo i coefficienti wi:
Operatori locali
L Caponetti
Convoluzione
Siano f(x,y) una immagine di dimensione NxNw(x,y) una maschera spaziale di dimensione LxL
L’operazione di convoluzione della immagine f(x,y) con w(x,y) con origine nel centro della maschera si può esprimere nel modo seguente
L’immagine di output g(x,y) è influenzata soltanto dai pixel che si trovano in un intorno di dimensione uguale a quella della maschera spaziale
)2/,2/(*),(),(1
0
1
0
jLyiLxfjiwyxgL
j
L
i
+−+−= ∑∑−
=
−
=
L’equazione descrive in effetti la correlazione – vedi lezione sui sistemi lineari
5
L Caponetti
Maschera
Maschera: matrice quadrata di pesi utilizzati nel calcolo del nuovo valore di un determinato pixel a partire dall’intorno del pixel stesso.
Può essere considerata una finestra che si muove sulla immagine
L Caponetti
ConvoluzioneLa convoluzione è una operazione complessa dal punto di vista computazionale
Ad esempio consideriamo la maschera seguente: 1 4 6 4 14 16 24 16 46 24 36 24 6 4 16 24 16 41 4 6 4 1
La convoluzione con la matrice 5x5 richiede 25 (moltiplicazioni + addizioni) per ogni pixel
Quando una matrice può scomporsi nel prodotto di 2 vettori èconveniente applicare i 2 vettori singolarmente alle righe e alle colonne della immagine
6
L Caponetti
ConvoluzioneLa maschera di convoluzione
1 4 6 4 14 16 24 16 46 24 36 24 6 4 16 24 16 41 4 6 4 1
Si può scrivere come prodotto dei vettori [1 4 6 4 1 ]T e [1 4 6 4 1 ]
In questo caso per ogni pixel sono sufficienti (5+5) moltiplicazioni e addizioni
L Caponetti
Elaborazione dei bordiSi applica l’operatore solo sui punti che hanno un intorno → l’immagine risultante è più piccola dell’originaleSi considera in aggiunta una cornice di punti (di solito uguali a zero) → l’immagine risultante ha le stesse dimensioni dell’originale
Bordo su cui non si può applicare l’operatore
7
L Caponetti
Image smoothing
Obiettibo: attenuare attenuare le brusche variazionidi livello di grigio tra un pixel e il suo intornoUn processo di smoothing può eliminare
le brusche transizioni (random noise) nei livelli di grigioi dettagli irrilevanti cioè associati a pochi pixels: questa operazione è detta blurring
Un semplice processo di Image smoothing è quello dicalcolare localmente per ogni pixel il valore medio(lowpass spatial filtering). Si può ottenere medianteuna convoluzione
L Caponetti
Image Smoothing
Se i valori della maschera w sono uguali a 1/9 la convoluzione di w con l’immagine iniziale produce per ogni pixel (i,j) un valore pari al valore medio dei pixel dell’intorno 3x3 di (i,j) – box mask
1 1 11 1 11 1 1
×91
Si ottiene una immagine meno contrastata di quella iniziale con riduzione del rumore
Equivale a un filtro passa basso
8
L Caponetti
Image Smoothing
L’applicazione della maschera precedente equivale a effettuare una media fra i pixel del contorno e sostituire al valore originale questa mediaIn questo approccio si dà la stessa importanza al valore originale del pixel e ai valori dei pixel vicini
In generale una averaging mask calcola una media pesata deivalori dei pixel in un intorno:
una maschera con pesi positivi, con somma uguale a 1, ènormalizzata in modo tale che I valori risultanti siano nellostesso range di quelli iniziali
Questa operazione è anche detta neighborhood averaging
L Caponetti
010111010
51
010141010
81
111111111
91
1313163131
321
Averaging mask
9
L Caponetti
Esempio di Image Blurring
Average maskNN
N×
11
111
2
L
LLK
L
Immagine originale N=5
N=9
L Caponetti
Filtro Gaussiano
Si utilizza quando si vuole che il pixel in esame abbia maggiore importanza nel calcolo del nuovo valore di grigio, rispetto a quelli del suo intorno: il peso di tale pixel sarà maggiore rispetto a quello dei pixel dell’intorno
1 2 12 4 21 2 1
×161
Il fattore moltiplicativo serve a normalizzare la somma dei pesi a 1. In tal modo il range dei valori di output risulta uguale a quello dei valori di input
10
L Caponetti
Filtro Gaussiano
Il filtro gaussiano corrisponde a una funzione gaussiana discreta bidimensionale
Dove σ è la larghezza della funzione – standard deviation- ed r la distanza – raggio- dal centro.
Il pixel al centro ha il peso massimo, e gli altri hanno un peso che diminuisce con la distanza dal pixel centrale.
Il filtro gaussiano è isotropico cioè circolarmente simmetrico
2
22
222
1 σ
πσ
yx
e+−
L Caponetti
Normalizzazione
Se l’immagine risultante è finalizzata alla visualizzazione, i valori dei pixel devono restare entro la gamma dei livelli di grigio rappresentabili (es. 0 - 255)A questo scopo, i coefficienti del filtro devono soddisfare la
condizione:
In tal modo una zona a valore di grigio costante entro la maschera del filtro resta immutata dopo il filtraggio
∑=
==mn
iimn
R1
11 ω
11
L Caponetti
L Caponetti
Image sharpening
Ha l’obiettivo di evidenziare i dettagli più fini in una immagine che potrebbero essere sfocati
Si può implementare mediante una maschera di pesi positivi e negativi
Un processo di sharpening – affilamento- tende a evidenziare le brusche variazioni di livello di grigio
12
L Caponetti
Sharpening mask
(affilatura)
La maschera di sharpening ha un valore centrale positivo e i valori nell’intorno negativi. Lo scopo è di evidenziare i dettagli
-1 -1 -1-1 8 -1-1 -1 -1
×91
Equivale a un filtro passa alto
L Caponetti
g(m,n) = f(m,n) – lowpass(f(m,n))
Image sharpening
E’ equivalente a un filtro passa-alto
Una immagine filtrata con un filtro passa-alto si può pensare come la differenza tra l’immagine originale f ed una versione filtrata con un filtro passa-basso
13
L Caponetti
Esempio
L Caponetti
Filtri 5x5 – box – gaussiano - sharpening
14
L Caponetti
Unsharp masking
Un processo usato molto nella pubblicità; consiste nel sottrarre dalla immagine originale una versione sfocata della immagine stessa:
Una generalizzazione è detta High-boost filtering; consiste nelsottrarre una versione sfocata di f da una amplificata di un fattore A
g(m,n) = A f(m,n) – lowpass(f(m,n))
= (A-1) f(m,n) + f(m,n) – lowpass(f(m,n))
= (A-1) f(m,n) + highpass(f(m,n))Dove A>1
g(m,n) = f(m,n) – lowpass(f(m,n))
L Caponetti
High-boost mask
Il filtro high-boost può essere implementato con le seguenti maschere:
8-1
0-10
-1A+ 4-1
0-10
-1-1-1
-1A+8-1
-1-1-1
15
L Caponetti
L’immagine risultante ha i contorni più evidenziati rispettoall’immagine originale
Esempio di high-boost filtering
L Caponetti
Filtri derivatoriObiettivo è quello di analizzare le variazioni fra un pixel e quello adiacente - ad esempio per evidenziare i contorni: equivale a studiare la derivata di una funzione e, nel caso di funzioni a due dimensioni, a studiarne il gradiente:
∂∂∂∂
=∇
yfxf
f e poi calcolarne il modulo:
22
∂∂
+
∂∂
=∇yf
xff
che può essere approssimato come differenze finite
( ) ( )22ii yyxx fffff −+−=∇
16
L Caponetti
Operatori differenziali
Obiettivo è la ricerca di discontinuità (un brusco cambiamento di intensità)
Il problema viene affrontato tramite l'analisi delle derivate
In generale il problema della differenziazione risulta mal postoUn problema è ben posto se la sua soluzione:
Esiste
È unica
Dipende con continuità dai dati iniziali
L Caponetti
Operatori differenziali
I punti in cui si hanno delle variazioni brusche di intensità possono essere rilevati dall’analisi delle derivate:
Si può scegliere il massimo (minimo) della derivata prima o lo zero (punto di attraversamento dell'asse x) della derivata seconda
17
L Caponetti
Operatori differenziali
f(x) è l'intensità dell'immagine
L Caponetti
Derivata discreta
La derivata può essere approssimata tramite una differenza
Lo stesso approccio vale per la derivata seconda
Nello spazio bidimensionale al posto della derivata si ha il gradiente - un vettore
hhxfhxfxf
2)()()( −−+
≈′
2
)()(2)()(h
hxfxfhxfxf −+−+≈′′
18
L Caponetti
Approssimazione derivate prime
),()1,( ),(),1( yxfyxfyfyxfyxf
xf
−+≅∂∂
−+≅∂∂
L Caponetti
Approssimazione derivate seconde
( )
( )
f(x,y) )-f(x,y) f(x,y
yxfyxfyxfyxfyf
f(x,y) ,y)-f(x-,y)f(x
,y)f(xf(x,y)f(x,y),y)f(xxf
211
)1,(),(),()1,(
211
11
2
2
2
2
−++
=−−−−+≅∂∂
++
=−−−−+≅∂∂
19
L Caponetti
Approssimazioni del gradiente
Il gradiente è un vettore (ha due componenti)
Gli operatori differenziali nel discreto sono realizzati tramite maschere a somma nulla:
l'applicazione a una regione uniforme deve dare risultato zero
∂∂
∂∂
=∇
yyxf
xyxf
yxf ),(
),(
),(
L Caponetti
Approssimazione del gradiente
L’ampiezza del gradiente è:
Consideriamo la seguente regione:
2/122 ),(),(),(
∂
∂+
∂∂
=∇y
yxfx
yxfyxf
z1 z3z2
z4 z6z5
z7 z9z8
yx
)()1( xfxfxf
−+=∂∂
20
L Caponetti
Approssimazione del gradiente
Possiamo usare la seguente approssimazione:
Si possono usare le maschere h1 e h2 lungo i 2 assi:
[ ] 2/1265
285 )()(),( zzzzyxf −+−≈∇
−
=1
11h [ ]112 −=h
[ ] 2/122
21 )()(),( hfhfyxf ∗+∗≈∇
L Caponetti
Approssimazione del gradienteRoberts cross-gradient operators
In alternativa si può usare la seguente approssimazione:
Si possono usare le maschere h1 e h2 lungo le diagonali:
[ ] 2/1286
295 )()(),( zzzzyxf −+−≈∇
−
=10
011h
−
=0110
1h
[ ] 2/122
21 )()(),( hfhfyxf ∗+∗≈∇
operatori diRoberts
21
L Caponetti
Approssimazione del gradientePrewitt operators
Una migliore approssimazione si può ottenere nel modo seguente:
Si possono usare le maschere h1 e h2
[ ] 2/122
21 )()(),( hfhfyxf ∗+∗≈∇
operatori diPrewitt
[ ] 2/12741963
2321987 ))()(())()((),( zzzzzzzzzzzzyxf ++−+++++−++≈∇
−−−=
111000111
1h
−−−
=101101101
2h
L Caponetti
Approssimazione del gradienteSobel operators
Un’altra approssimazione si può ottenere con le maschere h1 e h2
Gli operatori di Robert, Prewitt e Sobel sono utilizzati nell’edge detector
operatori diSobel
−−−=
121000121
1h
−−−
=101202101
2h
22
L Caponetti
Prewitt e SobelMaschere di Prewitt per evidenziare linee orizzontali e
linee verticali
-1 -1 -10 0 01 1 1
-1 0 1-1 0 1-1 0 1
-1 -2 -10 0 01 2 1
-1 0 1-2 0 2-1 0 1
Maschere di Sobel per evidenziare linee orizzontali e linee verticali
L Caponetti
Operatore di Sobel
Operatori di Sobel:
000
121
-1-2-1
20-2
10-1
10-1
Discontinuità nella direzione x 0 gradi
Discontinuità nella direzione y 90 gradi
23
L Caponetti
SobelMaschere di Sobel per evidenziare linee orizzontali a 0
gradi e 180 gradi
-1 0 1-2 0 2-1 1 1
1 0 -12 0 -21 0 -1
-1 -2 -10 0 01 2 1
1 2 10 0 2-1 -2 -1
Maschere di Sobel per evidenziare linee verticali a 90 gradi e 270 gradi
L Caponetti
Operatore di Sobel000
121
-1-2-1
Maschera per contorni verticali
20-2
10-1
10-1
Maschera per contorni orizzontali
Vengono create duenuove immagini
000
121
-1-2-1
20-2
10-1
10-1
000
2149
-2-6-2
100
-16
20-9
20-2
Gx=15
Gy=-13
G≈28φ=arctg(-13/15)
24
L Caponetti
Operatore di Sobel
È il negativo del risultato Colori diversi rappresentanoangoli diversi
L Caponetti
Oppure: 4
0-10
-1-1
-10 0
valore centrale positivo
25
L Caponetti
Derivate I e II
L Caponetti
26
L Caponetti
L Caponetti
27
L Caponetti
L Caponetti
Operatori di rango
Sono operatori non lineariSi considerano ancora i valori su una finestra locale, si riordinano e si usa come risultato quello in una posizione particolareGli operatori più comuni sono:
Massimo (il massimo locale)Minimo (il minimo locale)Mediano (il valore nella posizione centrale del vettore ordinato)
28
L Caponetti
Filtro medianoSostituisce il valore di ogni pixel con il valore mediano calcolato in una finestra centrata sul pixel in esame
Il valore mediano si calcola ordinando i valori dei pixel e scegliendo quello centrale.
10 20 2020 15 2020 25 90
10 15 20 20 20 20 20 25 90^
valore mediano
porzione di immagine
Scopo: rimozione del rumore tipo salt & pepper
L Caponetti
Operatore mediano
È utilizzato per eliminare il rumore da una immagineRispetto ad una media locale ha il vantaggio di essere meno sensibile rispetto al rumore salt & pepper (sale & pepe) e di non introdurre nuovi valoriEsempio considerando i valori: 1, 3, 5, 7, 14
Media=6Mediana=5
29
L Caponetti
Filtro mediano
E’ un filtro non lineare
Funzione: forza i pixel i con intensità molto diverse ad essere simili ai loro vicini; si eliminano in questo modo gli “ spikes” isolati nell’area di azione della maschera
In caso di spikes residui si può usare il filtro piùvolte: in altre parole elimina il rumore impulsivo, detto sale e pepe
L Caponetti
Comportamento del filtro media e mediano applicati a rumore impulsivo(maschera di 3 pixel)
Media e filtro mediano
30
L Caponetti
Comportamento del filtro media e mediano applicati a un gradino impulsivo (maschera di 3 pixel)
Media e filtro mediano
L Caponetti
Media e filtro mediano
La media tende a creare nuovi livelli di grigio
Attenua non solo il rumore, ma anche tutte le alte frequenze spaziali in modo indiscriminato, causando sfocatura, perdita di dettaglio fine e attenuazione dei fronti di salita delle transizioni di livello di grigio
Il filtro mediano non deteriora i fronti di salita, ma elimina i picchi con base sufficientemente piccola rispetto all’ampiezza della maschera
31
L Caponetti
Operatori di rango
Generalizzando:Si riordinano i valoriSi considerano quelli in un certo intervallo
Per esempio si escludono il 10% dei valori più grandi e il 10% dei valori più piccoli
Si calcola la media dei rimanenti