ELABORAZIONE DELLE IMMAGINI DIGITALI

Transcript

ELABORAZIONE DELLE IMMAGINI DIGITALI
ELABORAZIONE DELLE IMMAGINI DIGITALI
(Corso di Laurea in Ingegneria Informatica, SSD: ING-INF/05, CFU:5)
Prof. Edoardo Ardizzone
Il corso si propone di fornire agli allievi le conoscenze di base relative alla elaborazione ed alla analisi delle
immagini numeriche statiche e in sequenza, negli aspetti sia teorici sia applicativi. Il corso è costituito, in linea di
massima, da 32 ore di lezione e 16 ore di esercitazione in aula, che si tengono nel 1° modulo del I semestre.
Propedeucità E’ richiesto il possesso dei crediti relativi agli insegnamenti di: Fondamenti di Informatica, Reti Logiche,
Programmazione e Teoria dei Segnali. E’ consigliata la conoscenza di Comunicazioni Elettriche e di Informatica
Grafica.
Verifiche dell’apprendimento Sulla base di quanto previsto dal Regolamento Didattico di Facoltà, sono previste una
prova in itinere e una prova di completamento, le cui modalità e date di svolgimento vengono comunicate dal Docente
all’inizio del corso.
PROGRAMMA DEL CORSO
•
Formazione ed acquisizione dell'immagine. Principali caratteristiche del sistema visivo umano. Caratteristiche
e rappresentazione delle immagini digitali. Relazioni tra pixel. Operazioni aritmetiche e logiche. Dispositivi di
acquisizione, visualizzazione e stampa
•
Trasformate delle immagini: Fourier, Walsh-Hadamard, Coseno discreto, Hotelling
•
Elaborazione per miglioramento della qualità nel dominio dei pixel e nei domini trasformati. Tecniche di
elaborazione puntuali, locali, globali. L’istogramma dei livelli di grigio. Filtraggio per miglioramento e
ripristino di qualità.
•
Elaborazione delle immagini a colori. Principali formati per la memorizzazione delle immagini. Compressione
delle immagini (cenni).
•
Analisi di immagini. Estrazione dei contorni. Metodi “locali” basati sul gradiente di intensità luminosa. Metodi
basati sulla derivata seconda dell’intensità luminosa. Trasformata di Hough. Segmentazione delle immagini.
Metodi a soglia. Crescita delle regioni.
•
Trattamento di forme. Tecniche di descrizione e rappresentazione di forme bidimensionali. Descrizione di
regioni mediante codici, approssimazioni poligonali e scheletri. Descrittori topologici. Descrizione di contorni.
Descrittori di Fourier. Momenti.
TESTI CONSIGLIATI
R.C. Gonzalez, R. E. Woods, Digital Image Processing, Addison-Wesley.
B. Jahne, Digital Image Processing (4th ed.), Springer
Altro materiale didattico fornito dal docente.
TESTI DI CONSULTAZIONE
K.R. Castleman, Digital Image Processing, Prentice Hall.
W. Pratt, Digital Image Processing (2nd ed.), Wiley.
Università degli Studi di Palermo
Elaborazione delle Immagini Digitali
Parte A
Prof. Edoardo Ardizzone
A.A. 2001-2002
Università degli Studi
di Palermo
Relazione tra V.O. e N.O.
V.O.
N.O.
Elaborazione delle
Immagini Digitali
Teoria e Tecniche
di Elaborazione
della Immagine
(a scelta, corso annuale)
(obbligatorio, 5 CFU)
(propedeucità)
Trattamento e
Compressione di
Dati Multimediali
E. Ardizzone
(a scelta, 5 CFU)
2
Università degli Studi
di Palermo
NOTA
Le immagini utilizzate in questi appunti sono tratte dai libri di testo
consigliati o da altre pubblicazioni e pertanto coperte da copyright.
Il loro uso è consentito esclusivamente per studio personale.
E. Ardizzone
3
Università degli Studi
di Palermo
Immagine: rappresentazione di oggetti
✔ Immagini visibili: percepibili dall'occhio
✔ Immagini fisiche (non visibili): distribuzioni bidimensionali di
proprietà fisiche misurabili
✔ Funzioni matematiche: funzioni continue di due variabili e funzioni
discrete di due indici (sequenze bidimensionali) discrete
✔ Immagine digitale: funzione (bidimensionale) a valori discreti di
variabili discrete
E. Ardizzone
4
Università degli Studi
di Palermo
Elaborazione numerica
✔ Insieme di azioni compiute da appositi algoritmi su una immagine
numerica per modificarla in modo da raggiungere un prefissato
obiettivo, producendo un risultato che è ancora una immagine
Inoltre, sono oggi considerati temi di image processing anche:
✔ Compressione di immagini (image coding)
✔ Analisi di immagini (image analysis)
✔ Riconoscimento di forme (pattern recognition)
✔ Trattamento di video (video processing)
E. Ardizzone
5
Università degli Studi
di Palermo
Gerarchia delle operazioni di elaborazione delle immagini
E. Ardizzone
6
Università degli Studi
di Palermo
Discipline collegate e aree affini
✔ Comprensione di immagini (image understanding)
✔ A nalisidiscene (scene analysis)e visione artificiale (com putervision)
✔ Grafica computerizzata (computer graphics)
✔ Sintesi di scene
✔ Realtà virtuale (virtual reality)
✔ Realtà arricchita (augmented reality)
E. Ardizzone
7
Università degli Studi
di Palermo
Aspetti tipici dell’image processing
✔ Caratterizzazione e formazione (acquisizione)
✔ Filtraggio
✔ Estrazione di informazioni
✔ Compressione
✔ Descrizione
✔ Archiviazione
E. Ardizzone
8
Università degli Studi
di Palermo
Componenti di un sistema di elaborazione di immagini
E. Ardizzone
9
Università degli Studi
di Palermo
Caratterizzazione dell’immagine
Una immagine può essere caratterizzata come la distribuzione spaziale
di energia radiante prodotta da una sorgente luminosa:
f = f (x , y , λ , t )
f è reale, non negativa, finita e limitata (rispetto alle variabili spaziali e
temporale).
L'immagine effettivamente percepita (da un osservatore umano) o
acquisita (mediante un trasduttore) è la f modificata dalla risposta
dell'osservatore o del trasduttore, tipicamente secondo una media
temporale e una media rispetto alle varie lunghezze d'onda.
E. Ardizzone
10
Università degli Studi
di Palermo
Caratterizzazione dell’immagine
✔ L'immagine può quindi essere caratterizzata, d’accordo con
l’intuizione, come una distribuzione bidimensionale di intensità
(luminosa):
f = f (x , y )
✔ Più precisamente, in alcuni testi la f è detta irradianza o illuminanza, ed
è definita come:
E=
dΦ
dA0
✔ L’irradianza si misura pertanto in W x m-2. Unità di misura più
comunemente adoperate in altre discipline sono il Lambert [Lm/cm2] e
il Lux [Lm/m2].
E. Ardizzone
11
Università degli Studi
di Palermo
Caratterizzazione dell’immagine
✔ Altre grandezze correlate con la radiazione luminosa sono:
●
Potenza [W] Φ = dQ/dt alla quale corrisponde il flusso luminoso
misurato in Lumen [Lm]
●
Energia radiante Q [W x s = Joule] alla quale corrisponde
l’energia luminosa [Lm x s]
●
Intensità radiante I = dΦ/dΩ [W x sr-1] alla quale corrisponde
l’intensità luminosa [Lm/sr = candela]
E. Ardizzone
12
Università degli Studi
di Palermo
Acquisizione dell’immagine
✔ E’ il processo di rivelazione e registrazione che "ferma" l'immagine su
un supporto adatto agli usi successivi.
✔ Tecnologie principali: fotochimiche (es. pellicola fotografica) e
fotoelettroniche (es. telecamera + dispositivo di memoria).
✔ L'acquisizione di una immagine digitale deve produrre come risultato
una immagine numerica su un supporto accessibile da parte di un
dispositivo di calcolo.
E. Ardizzone
13
Università degli Studi
di Palermo
Fasi dell'acquisizione
♦ Scansione
♦ Trasduzione o rivelazione
♦ Campionamento
♦ Quantizzazione
♦ Scrittura o memorizzazione
E. Ardizzone
14
Università degli Studi
di Palermo
Richiami sul sistema visivo umano
✔ L’occhio umano (qui rappresentato in sezione orizzontale) è di forma
approssimativamente sferica,
con un diametro medio di circa
20 mm. Tre membrane
circondano l’occhio:
• la cornea (trasparente, parte
anteriore) e la sclera
(opaca, parte posteriore)
• la coroide, ricca di vasi
sanguigni e pesantemente
pigmentata
• la retina, contenente i
ricettori fotosensibili
E. Ardizzone
15
Università degli Studi
di Palermo
Richiami sul sistema visivo umano
✔ L’estremità anteriore della coroide costituisce l’iride, un diaframma
che si contrae e si espande per regolare la quantità di luce che entra
nell’occhio
✔ L’apertura centrale dell’iride è la pupilla, il cui diametro varia da 2 a 8
mm circa
✔ La lente o cristallino, in larga misura costituita da acqua e grassi,
contiene un pigmento che le conferisce una lieve colorazione gialla,
che si appesantisce con l’invecchiamento. La lente assorbe circa l’8%
della luce incidente, in maniera non uniforme rispetto allo spettro della
luce visibile (l’assorbimento è maggiore nella regione del blu)
✔ Sia la radiazione infrarossa che l’ultravioletta sono invece assorbite in
maniera notevole, e se di entità eccessiva possono danneggiare
l’occhio
E. Ardizzone
16
Università degli Studi
di Palermo
Richiami sul sistema visivo umano
✔ La retina occupa l’intera parete posteriore dell’occhio. Quando un
oggetto o una scena sono messe a fuoco dalla lente, l’immagine ottica
è proiettata sulla retina, consentendo ai ricettori fotosensibili di
assorbire l’energia della radiazione elettromagnetica e di convertirla in
segnali elettrochimici che vengono convogliati verso il cervello
attraverso le fibre nervose che costituiscono il nervo ottico
✔ I ricettori presenti nella retina sono di due tipi: coni e bastoncelli
✔ I coni (circa 6 o 7 milioni per occhio) sono concentrati principalmente
nella porzione centrale della retina, detta fovea, e sono fortemente
sensibili al colore.
✔ I coni sono attivati in condizioni di illuminazione di intensità medioalta, per cui essi sono responsabili della cosiddetta visione diurna o
fotopica
E. Ardizzone
17
Università degli Studi
di Palermo
Richiami sul sistema visivo umano
✔ La distribuzione dei ricettori sulla superficie della retina è radialmente
simmetrica rispetto al punto centrale della fovea:
E. Ardizzone
18
Università degli Studi
di Palermo
Richiami sul sistema visivo umano
✔ La forte concentrazione dei coni e il fatto che ogni cono sia collegato
ad una fibra nervosa danno all’occhio la capacità di discriminare
dettagli molto fini, in condizioni di illuminazione medio-alta
✔ A tal fine, i muscoli che controllano l’occhio ruotano il globo oculare
finché l’immagine dell’oggetto di interesse non cade all’interno della
fovea, che rappresenta pertanto la zona di massima acuità visiva. Essa
ha un diametro di circa 1.5 mm
✔ I bastoncelli, in numero molto maggiore (da 75 a 150 milioni per
occhio) sono distribuiti in modo più uniforme sull’intera superficie
della retina e sono praticamente insensibili al colore
✔ I bastoncelli sono attivati in condizioni di illuminazione di bassa
intensità, per cui essi sono responsabili della cosiddetta visione
notturna o scotopica
E. Ardizzone
19
Università degli Studi
di Palermo
Richiami sul sistema visivo umano
✔ Inoltre, la distribuzione in un’area più ampia e il fatto che parecchi
bastoncelli siano collegati ad un’unica fibra nervosa diminuisce la
capacità di risoluzione dei dettagli: i bastoncelli danno cioè
un’immagine globale e meno precisa della scena presente nel campo
visivo
✔ Per questi motivi la visione notturna è caratterizzata dalla assenza di
colore e da scarsa acuità
✔ La mancanza di ricettori nella zona in cui si innesta il nervo ottico dà
luogo al cosiddetto punto cieco: il movimento continuo del globo
oculare durante la visione evita però la mancanza di percezione in
questa zona
E. Ardizzone
20
Università degli Studi
di Palermo
Richiami sul sistema visivo umano
✔ Una considerazione quantitativa interessante può essere la seguente:
– Supponiamo che la fovea sia un quadrato di 1.5 mm x 1.5 mm.
Poiché la densità dei coni in questa regione è di circa 150,000 per
mm2, la fovea può essere considerata come un array quadrato di
circa 337,000 fotosensori
– La tecnologia odierna consente sicuramente di realizzare chip di
sensori di dimensioni paragonabili
– I problemi della visione artificiale non sono quindi nei sensori, ma
nel fatto che oggi non è ancora possibile integrare l’intelligenza e
l’esperienza che gli esseri umani usano per completare il processo
di percezione visiva
E. Ardizzone
21
Università degli Studi
di Palermo
Richiami sul sistema visivo umano
✔ Il sistema visivo umano risponde alla radiazione elettromagnetica nel
campo del visibile, tra 360 nm e 800 nm circa (anche se la sensibilità
dell’occhio è molto ridotta tra 360 nm e 410 nm circa e tra 720 nm e
800 nm circa):
✔ L’energia luminosa è assorbita dalla pigmentazione fotosensibile dei
ricettori. Nei coni, questa pigmentazione è di tre tipi, il che rende i coni
sensibili a differenti gamme spettrali e quindi rende possibile la
percezione del colore
E. Ardizzone
22
Università degli Studi
di Palermo
Richiami sul sistema visivo umano
✔ La gamma dei livelli di intensità ai
quali l’occhio può adattarsi è enorme,
dell’ordine di 1010, dalla soglia
scotopica al limite dell’abbagliamento
✔ La luminosità soggettiva (cioè la
luminosità percepita dal sistema visivo
umano) è una funzione logaritmica
dell’intensità della luce incidente
sull’occhio
✔ E’ importante notare che l’occhio non funziona simultaneamente sulla
intera gamma dei livelli. Piuttosto, il sistema passa attraverso una serie
di livelli di adattamento alla intensità della luce
E. Ardizzone
23
Università degli Studi
di Palermo
Richiami sul sistema visivo umano
✔ Se per esempio l’occhio si trova, in certe condizioni ambientali, al
livello di adattamento Ba, la gamma dei livelli che esso può
discriminare è soltanto quello indicato dalla curva corta, che ha Bb
come limite sotto il quale nessuno stimolo produce una sensazione
diversa dal nero
✔ La porzione tratteggiata indica che a livelli superiori a Ba in realtà
l’occhio si sposta su un livello di adattamento superiore
✔ E’ molto importante la capacità dell’occhio di discriminare tra
variazioni della luminosità, ai diversi livelli di adattamento
✔ Una grandezza utile, in termini quantitativi, è il cosiddetto rapporto
di Weber
E. Ardizzone
24
Università degli Studi
di Palermo
Richiami sul sistema visivo umano
✔ Si tratta del rapporto ∆I / I, essendo ∆I la variazione di luminosità e I la
luminosità: un piccolo valore di ∆I / I significa che una piccola
variazione percentuale dell’intensità è discriminabile (quindi una
buona capacità di discriminazione delle variazioni)
✔ Viceversa, alti valori del raporto di Weber indicano la necessità di forti
variazioni di luminosità, affinchè le variazioni stesse siano avvertibili
✔ Come il grafico mostra, la capacità di
discriminazione migliora al crescere
del livello di illuminazione
E. Ardizzone
25
Università degli Studi
di Palermo
Richiami sul sistema visivo umano
✔ La luminosità percepita non è
soltanto funzione dell’intensità
✔ Infatti, il sistema visivo umano
tende a “confondersi” al
confine fra zone di differente
intensità
✔ Benché l’intensità sia a strisce
di valore costante, la
sensazione è di un pattern di
luminosità variabile, in
particolare al confine fra le
strisce.
E. Ardizzone
26
Università degli Studi
di Palermo
Richiami sul sistema visivo umano
✔ Un altro fenomeno tipico è quello del contrasto simultaneo: il contesto
contribuisce alla determinazione della luminosità di una regione.
✔ I quadrati hanno la stessa intensità, ma quello su sfondo scuro appare
più chiaro di quello su sfondo chiaro. Appaiono uguali solo quando
sono a contatto.
E. Ardizzone
27
Università degli Studi
di Palermo
Un semplice modello dell’immagine
✔ L’irradianza (ma da ora in poi adotteremo il termine intensità, più
comune in Image Processing ) può essere rappresentata mediante il
prodotto di due termini, l’illuminazione i(x,y) e la riflettanza r(x,y):
f ( x , y ) = i ( x, y ) ⋅ r ( x , y )
con 0 < f ( x, y ) < ∞, 0 < i ( x, y ) < ∞, 0 < r ( x, y ) < 1
✔ L’immagine è cioè costituita da una componente dovuta alla luce
proveniente direttamente dalla sorgente di illuminazione e da una
componente dovuta alla luce riflessa dagli oggetti presenti nella scena
✔ La componente di illuminazione è responsabile delle variazioni lente di
luminosità (basse frequenze spaziali), mentre la componente di
riflettanza dà luogo alle variazioni brusche di luminosità, per esempio
in corrispondenza ai contorni degli oggetti (alte frequenze spaziali)
E. Ardizzone
28
Università degli Studi
di Palermo
Un semplice modello dell’immagine
✔ L’effettiva natura di i(x,y) è determinata dalla sorgente luminosa,
mentre r(x,y) dipende dalle caratteristiche degli oggetti presenti nella
scena, e varia tra 0 (assorbimento totale) e 1 (riflettanza completa)
✔ I limiti mostrati sono ovviamente teorici, valori reali tipici sono per
esempio i seguenti:
Sorgente luminosa
Luce solare
Cielo nuvoloso
Chiaro di luna
Interno (amb. di lavoro)
Oggetto
Velluto nero
Parete bianca
Argento e altri metalli
Neve fresca
E. Ardizzone
i (candele)
9000
1000
0.01
100
r
0.01
0.80
0.90
0.93
29
Università degli Studi
di Palermo
Un semplice modello dell’immagine
✔ Si può pertanto assumere che LMin ≤ f ( x, y ) ≤ LMax , dove valori
ragionevoli per LMin e LMax sono:
LMin ≈ 0.005
LMax ≈ 100 (in interni)
✔ Per una immagine monocromatica, l’intervallo [LMin, LMax] prende il
nome di scala dei grigi, mentre l’intensità f(x,y) è detta anche livello di
grigio dell’immagine nel punto di coordinate (x,y)
✔ In pratica si usa una scala dei grigi convenzionalmente compresa in [0,
L-1], in cui 0 corrisponde al nero e L-1 rappresenta il bianco
✔ Si considerano L livelli discreti di grigio per tenere conto del carattere
digitale della f dopo la quantizzazione dell’intensità
E. Ardizzone
30
Università degli Studi
di Palermo
Un semplice modello dell’immagine
✔ Tenendo conto anche del campionamento spaziale che rende discreti
gli intervalli di variazione di x e y, e assumendo che l’immagine
continua sia approssimata mediante M x N campioni equispaziati lungo
le due dimensioni dell’immagine, con:
si ha:
0 ≤ x ≤ M −1 e
 f (0,0)
 f (1,0)
f ( x, y ) = 
M

 f ( M − 1,0)

0 ≤ y ≤ N −1
f (0,1)
L
f (1,1)
L
M
M
f ( M − 1,1) L
E. Ardizzone
f (0, N − 1) 
f (1, N − 1) 

M

f ( M − 1, N − 1)
31
Università degli Studi
di Palermo
Riassumendo, dopo l’acquisizione ...
✔ Un'immagine digitale monocromatica è una matrice f(x,y) di valori
✔
✔
✔
✔
discreti di intensità luminosa (livelli di grigio)
Essa è costituita da M*N pixel (picture elements, detti talvolta pel),
ciascuno dei quali ha un valore appartenente all'intervallo [0, L-1]
essendo L i livelli possibili di intensità (o di grigio)
Si ha tipicamente L = 2b, dove b è il numero di bit usato per codificare
ciascun pixel (profondità del pixel)
Per esempio, con 8 bit si ha la possibilità di rappresentare un numero
di livelli (256) tale da consentire una discriminazione dei grigi
accettabile nella maggior parte delle applicazioni, in quanto abbastanza
prossima a quella dell'occhio umano
Una immagine monocromatica tipica (512 * 512 * 8) occupa pertanto
≈ 2 Mbit ≈ 256 kbyte di memoria (esigenza di compressione)
E. Ardizzone
32
Università degli Studi
di Palermo
Riassumendo, dopo l’acquisizione ...
✔ In realtà, si è fatta l’ipotesi implicita di una quantizzazione lineare per
la produzione degli L livelli discreti di grigio a partire dalla intensità
luminosa
✔ Sappiamo invece che la risposta del sistema visivo umano non è
lineare, bensì logaritmica: questo mette l’occhio in condizione di
discriminare un numero enorme di levelli di luminosità, ben maggiore
dei 256 precedentemente ipotizzati.
✔ Pertanto una immagine digitalizzata ha una dinamica molto meno
ampia di quella del sistema visivo umano
✔ Per tale motivo la qualità dell’immagine digitalizzata è normalmente
peggiore di quella dell’immagine percepita direttamente
E. Ardizzone
33
Università degli Studi
di Palermo
Riassumendo, dopo l’acquisizione ...
✔ Questo è particolarmente evidente quando la scena è ad elevato
contrasto: se il sensore è lineare, le parti scure risulteranno sottoesposte
(ripresa effettuata con obiettivo poco aperto), oppure le parti chiare
risulteranno sovraesposte (obiettivo molto aperto):
E. Ardizzone
34
Università degli Studi
di Palermo
Riassumendo, dopo l’acquisizione ...
✔ La capacità di discriminazione è peggiore nelle zone più scure, come si
era detto a proposito del rapporto di Weber
✔ Vedremo che alcune elaborazioni (filtraggi omomorfi) riescono a
migliorare immagini con i difetti evidenziati, riuscendo
contemporaneamente a comprimere la gamma dinamica e a ampliare il
contrasto nelle zone più scure
✔ Una soluzione più generale al problema delle scene caratterizzate da
dinamica troppo ampia è adottata nelle videocamere, in cui la
grandezza quantizzata non è direttamente l’intensità, ma una sua
funzione esponenziale
✔ Se g è il livello digrigio e f l’intensità, si ha cioè:
g= fγ
e non
g= f
E. Ardizzone
35
Università degli Studi
di Palermo
Riassumendo, dopo l’acquisizione ...
✔ Questa correzione permette di approssimare la caratteristica
logaritmica del sistema visivo umano
✔ Il valore di γ che meglio realizza questa condizione è (tipicamente) 0.4
✔ Naturalmente si deve porre γ = 1 nelle applicazioni in cui è essenziale
mantenere lineare la relazione tra intensità e scala dei grigi
E. Ardizzone
36
Università degli Studi
di Palermo
Rappresentazione di immagini digitali
✔ Ogni pixel rappresenta
l’intensità nella corrispondente
posizione della griglia di
campionamento
✔ Un pixel rappresenta in realtà
non soltanto un punto
dell’immagine, ma piuttosto
una regione rettangolare
coincidente con una cella della
griglia
✔ Il valore associato al pixel deve
rappresentare pertanto la
intensità media nella cella
E. Ardizzone
37
Università degli Studi
di Palermo
Effetti della variazione di risoluzione spaziale
✔ Una stessa immagine può essere rappresentata con un numero
differente di pixel:
192 x 256
12 x 16
48 x 64
E. Ardizzone
3x4
38
Università degli Studi
di Palermo
Effetti della variazione di risoluzione spaziale
✔ Avendo consentito la variazione delle dimensioni dei pixel, le
dimensioni dell’immagine restano invariate al variare della risoluzione
✔ Se la dimensione dei pixel resta invariata, la variazione di risoluzione
provoca invece una variazione delle dimensioni dell’immagine
✔ Un altro esempio:
E. Ardizzone
39
Università degli Studi
di Palermo
Effetti della variazione di risoluzione spaziale
✔ Con pixel di grande dimensione, non solo la risoluzione spaziale è
✔
✔
✔
✔
scadente, ma appaiono ben visibili le discontinuità di grigio al confine
tra i pixel
Man mano che la dimensione dei pixel si riduce, l’effetto diventa meno
visibile, fino al punto che si ha l’impressione di una immagine
continua.
Questo accade quando la dimensione dei pixel diventa più piccola
della risoluzione spaziale del sistema visivo umano
Siccome quest’ultima dipende dalla distanza e dalle altre condizioni di
osservazione, in generale non è definibile a priori il numero di pixel
necessari a garantire una buona qualità dell’immagine
Sicuramente la dimensione dei pixel deve essere piccola in relazione
alla scala degli oggetti rappresentati nell’immagine
E. Ardizzone
40
Università degli Studi
di Palermo
Effetti della variazione di risoluzione spaziale
✔ In realtà è la tecnologia dei sensori che determina la dimensione dei
pixel e la risoluzione dell’immagine, piuttosto che i requisiti
dell’applicazione
✔ D’altra parte anche la condizione di “immagine di buona qualità” è
strettamente dipendente dall’applicazione, nel caso generale, e
fortemente soggettiva, nel caso dell’osservazione visuale.
✔ Si noti che altre disposizioni spaziali, oltre alla griglia rettangolare,
sono teoricamente possibili:
E. Ardizzone
41
Università degli Studi di Palermo
Elaborazione delle Immagini Digitali
Parte B
Prof. Edoardo Ardizzone
A.A. 2001-2002
Università degli Studi
di Palermo
Effetti della variazione di quantizzazione
✔ La qualità
dell’immagine
dipende anche
dal numero di
livelli adoperati
per la
quantizzazione
dei valori di
intensità
16
8
4
2
E. Ardizzone
2
Università degli Studi
di Palermo
Effetti della variazione di quantizzazione
✔ La riduzione del numero di livelli provoca il peggioramento della
qualità dell’immagine: appaiono falsi contorni, e non è possibile
distinguere oggetti che differiscono per variazioni di grigio lente
✔ Si noti che 16 livelli di grigio possono sembrare sufficienti nelle
immagini stampate, ma non lo sono per immagini visualizzate a
monitor
✔ Nell’esempio successivo, si noterà come le immagini a 256, 128 e 64
livelli di grigio siano praticamente identiche dal punto di vista visuale
✔ Nelle altre immagini si manifesta (in misura crescente al diminuire del
numero di livelli) il fenomeno dei falsi contorni nelle zone di lenta
variazione dei grigi, fino al caso limite delle immagini a due livelli (o
bi-livello o binarie)
E. Ardizzone
3
Università degli Studi
di Palermo
Effetti della variazione di quantizzazione
256
64
16
4
128
32
8
2
E. Ardizzone
4
Università degli Studi
di Palermo
Variazione contemporanea di risoluzione e quantizzazione
✔ La relazione tra questi due parametri e l’effetto della loro variazione
contemporanea possono essere studiate sperimentalmente
✔ L’esperimento (dovuto a Huang) consiste in un insieme di test
soggettivi, effettuati sottoponendo al giudizio di un gruppo di
osservatori la qualità di diverse versioni (ottenute cambiando i valori di
L e di N) di alcune immagini-campione, del tipo:
E. Ardizzone
5
Università degli Studi
di Palermo
Variazione contemporanea di risoluzione e quantizzazione
✔ Le immagini-campione sono scelte in modo da contenere un numero
✔
✔
✔
✔
relativamente piccolo di dettagli (il volto di donna), o un numero
medio di dettagli (il cameraman), o un numero elevato di dettagli (la
folla)
I risultati del test possono essere illustrati utilizzando le curve di
isopreferenza nel piano Nb
Ogni punto in questo piano rappresenta una immagine con valori di N
e b uguali alle coordinate del punto stesso
Le curve di isopreferenza raccordano punti rappresentativi di immagini
caratterizzate dalla medesima qualità soggettiva
Le curve di isopreferenza relative a immagini del tipo di quelle
utilizzate per il test sono riportate di seguito. Da sinistra verso destra le
curve rappresentano immagini di qualità soggettiva crescente
E. Ardizzone
6
Università degli Studi
di Palermo
Variazione contemporanea di risoluzione e quantizzazione
volto
cameraman
E. Ardizzone
folla
7
Università degli Studi
di Palermo
Variazione contemporanea di risoluzione e quantizzazione
✔ Le linee tratteggiate raccordano punti a numero di bit costante. Come
si può vedere, esse si distaccano nettamente dalle curve di
isopreferenza
✔ Osservando le curve di isopreferenza, si può notare che la qualità delle
immagini tende ovviamente a crescere all’aumentare di b ed N. In
qualche caso, fissato N, la qualità migliora se si diminuisce b. Questo è
probabilmente dovuto al fatto che la diminuzione di b in genere
accresce il contrasto apparente dell’immagine.
✔ All’aumentare dei dettagli nell’immagine, le curve tendono a diventare
più verticali. Pertanto per immagini con grandi quantità di dettagli
sono necessari solo pochi livelli di grigio
E. Ardizzone
8
Università degli Studi
di Palermo
Campionamento e quantizzazione non uniformi
✔ Fissata la risoluzione spaziale, o meglio il numero dei pixel a
disposizione per la digitalizzazione, si potrebbe pensare di ricorrere a
tecniche di campionamento adattive rispetto alle caratteristiche
dell’immagine
✔ Infatti, nelle zone dell’immagine caratterizzate da un andamento
uniforme dei livelli di grigio (quindi con pochi dettagli), il
campionamento potrebbe essere più grossolano. Per esempio, questo
potrebbe essere fatto per lo sfondo dell’immagine del volto o di quella
del cameraman
✔ Invece, un campionamento più fine sarebbe vantaggioso nelle zone
dell’immagine più ricche di dettagli, quindi con molte variazioni del
livello di grigio
E. Ardizzone
9
Università degli Studi
di Palermo
Campionamento e quantizzazione non uniformi
✔ Quindi i campioni “risparmiati” per lo sfondo potrebbero essere meglio
utilizzati per i dettagli, dando luogo ad un risultato complessivamente
migliore
✔ Naturalmente un approccio del genere richiederebbe l’identificazione e
la classificazione preventiva delle regioni dell’immagine, e la
disponibilità di hardware adeguato alla digitalizzazione non uniforme
✔ Analogamente, si potrebbe pensare ad un processo di quantizzazione
con livelli non uniformemente distribuiti nella scala dei grigi
✔ In tal caso, data la relativa incapacità del sistema visivo umano di
stimare le sfumature in prossimità delle brusche variazioni di grigio, si
potrebbero utilizzare meno livelli nelle zone dell’immagine con molti
dettagli
E. Ardizzone
10
Università degli Studi
di Palermo
Campionamento e quantizzazione non uniformi
✔ Si potrebbero invece impiegare più livelli nelle zone di grigio
approssimativamente uniforme, dove sarebbero utili per prevenire o
ridurre la formazione dei falsi contorni
✔ Naturalmente anche la quantizzazione non uniforme è soggetta alle
stesse osservazioni mosse al campionamento non uniforme
✔ Esistono tuttavia tecniche per la ridistribuzione dei livelli di grigio
(ovviamente a valle dell’acquisizione) che consentono di ridurne il
numero complessivo senza introdurre un degrado eccessivo
dell’immagine (per esempio, la cosidddetta procedura di
quantizzazione IGS - Improved Gray Scale, che vedremo)
E. Ardizzone
11
Università degli Studi
di Palermo
Relazioni tra pixel
✔ Dato un pixel p di coordinate (x,y), i quattro vicini (in orizzontale e
verticale) hanno coordinate:
(x +1, y), (x -1. y), (x, y +1), (x, y -1)
e costituiscono l’insieme N4(p)
dei 4-vicini (4-neighbors) di p
✔ I quattro vicini diagonali di p hanno
coordinate (x +1, y +1), (x +1, y-1),
(x-1, y +1), (x-1, y -1) e formano
l’insieme ND(p)
✔ L’insieme degli 8-vicini di p è dato da:
N4(p)
ND(p)
N 8 ( p) = N 4 ( p) ∪ N D ( p)
E. Ardizzone
12
Università degli Studi
di Palermo
Relazioni tra pixel
✔ Oltre alle relazioni di adiacenza spaziale, sono importanti nell’analisi
di immagini quelle di connessione (connectivity) tra i pixel
✔ Due pixel sono connessi se, oltre ad essere tra loro in una certa
relazione di adiacenza spaziale, i loro livelli di grigio soddisfano uno
specifico criterio di similarità, per esempio sono uguali
✔ Più in generale, il criterio di similarità può consistere nell’appartenenza
di entrambi i valori dei pixel ad uno specifico intervallo dei valori di
grigio.
✔ Denotando con V è l’insieme dei valori di grigio usati per definire la
connettività, si può avere per esempio V = {1} per una immagine
binaria, ovvero V = {32, 33, … ,63, 64} per una immagine a livelli di
grigio
E. Ardizzone
13
Università degli Studi
di Palermo
Relazioni tra pixel
✔ In base alla relazione di adiacenza spaziale adoperata, si definiscono i
seguenti tipi di connettività:
# 4-connettività: due pixel p e q con valori di grigio in V si dicono 4connessi se q è nel set N4(p)
# 8-connettività: due pixel p e q con valori di grigio in V si dicono 8connessi se q è nel set N8(p)
# m-connettività: due pixel p e q con valori di grigio in V si dicono
m-connessi se
– q è nel set N4(p), oppure
– q è nel set ND(p), e risulta vuoto l’insieme dei pixel 4-vicini sia
di p che di q: N 4 ( p ) ∩ N 4 (q ) = Φ
E. Ardizzone
14
Università degli Studi
di Palermo
Relazioni tra pixel
✔ La m-connettività (o connettività mista) è una variante della 8-
connettività, introdotta per eliminare l’ambiguità nella determinazione
del percorso di connessione tra due pixel che può nascere con la 8connettività
✔ Nell’immagine binaria seguente, considerando V = {1}, il pixel
centrale risulta 8-connesso con tutti gli altri aventi valore 1, e questo dà
luogo all’ambiguità nella definizione dei percorsi di connessione:
8-connettività
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
E. Ardizzone
m-connettività
15
Università degli Studi
di Palermo
Relazioni tra pixel
✔ Due pixel 4-,8- o m-connessi stanno tra loro in una relazione di 4-, 8✔
✔
✔
✔
o m-adiacenza
Due subset S1 e S2 di una immagine sono adiacenti se almeno un pixel
di S1 è connesso con almeno un pixel di S2
Un cammino (path) dal pixel p di coordinate (x,y) al pixel q di
coordinate (s,t) è una sequenza di pixel distinti di coordinate:
(x0,y0), (x1,y1), … , (xn,yn)
dove (x0,y0) = (x,y) e (xn,yn) = (s,t), e inoltre, per 1≤ i ≤ n, (xi,yi) è
adiacente a (xi-1,yi-1)
n è la lunghezza del cammino
Dati due pixel p e q di un subset S dell’immagine, p è connesso a q in S
se esiste un path tra p e q interamente costituito da pixel di S
E. Ardizzone
16
Università degli Studi
di Palermo
Componenti connesse
✔ Per ogni pixel p di S, l’insieme di pixel in S connessi a p costituisce
✔
✔
✔
✔
una componente connessa di S
Ogni coppia di pixel di una componente connessa è costituita da pixel
connessi, mentre componenti connesse distinte sono disgiunte
Si noti l’importanza della definizione di adiacenza utilizzata nella
determinazione delle componenti connesse di una immagine
Se si utilizza la 4-adiacenza, l’immagine
binaria contiene due componenti connesse,
mentre ne contiene una sola se si utilizza
la 8-adiacenza
E lo sfondo?
E. Ardizzone
17
Università degli Studi
di Palermo
Labeling di componenti connesse
✔ La capacità di individuare automaticamente le diverse componenti
connesse disgiunte di una immagine, assegnando loro differenti
etichette (label), è di fondamentale importanza nella analisi automatica
di immagini, ai fini per esempio della segmentazione, del calcolo di
aree, della classificazione di oggetti, etc.
✔ La procedura sequenziale di labeling di componenti connesse che
viene di seguito illustrata opera su immagini binarie, con pixel aventi
valore 0 (lo sfondo) oppure 1 (gli oggetti o regioni), prendendo in
considerazione due righe dell’immagine alla volta
✔ Si scandisca l’immagine da sinistra verso destra e dall’alto verso il
basso, pixel dopo pixel, e si supponga di cercare regioni 4-connesse
✔ Sia p il pixel preso in considerazione durante un generico passo del
processo di scansione, e siano r e t, rispettivamente, il 4-vicino
superiore e il 4-vicino di sinistra
E. Ardizzone
18
Università degli Studi
di Palermo
Labeling di componenti connesse
✔ La natura del processo di scansione assicura che
quando si raggiunge il pixel p, i pixel r e t sono
già stati analizzati, ed eventualmente etichettati
(se di valore 1)
✔ Se p = 0, si passa al pixel successivo
✔ Se p = 1, si analizzano r e t:
• se r = t = 0, si assegna una nuova label a p, in quanto è la prima
volta che si incontra questa componente connessa
• se r = 1 e t = 0 (oppure se r = 0 e t = 1), si assegna a p la label del
pixel di valore 1
• se r = t = 1, si possono presentare due casi:
* r e t hanno la stessa label, che viene assegnata a p
* r e t hanno label diverse; una delle due viene assegnata a p, e si
annota che le due label sono equivalenti, (r e t sono connessi
attraverso p)
E. Ardizzone
19
Università degli Studi
di Palermo
Labeling di componenti connesse
✔ Alla fine della scansione, tutti i pixel di valore 1 hanno ricevuto una
label, ma alcune di esse risulteranno equivalenti
✔ Si definiscono pertanto delle classi di equivalenza, si assegna una label
differente ad ogni classe, e si effettua una seconda scansione, durante
la quale ogni label è sostituita da quella della sua classe di equivalenza
✔ E se si cercano componenti 8-connesse ?
✔ E se l’immagine analizzata è a livelli di grigio ?
E. Ardizzone
20
Università degli Studi
di Palermo
Misure di distanza
✔ Dati i pixel p(x,y), q(s,t) e z(u,v), D è una metrica o funzione distanza
se:
* D(p,q) ≥ 0 (D(p,q) = 0 iff p = q)
* D(p,q) = D(q,p)
* D(p,z) ≤ D(p,q) + D(q,z)
✔ La distanza euclidea tra p e q è definita come:
De ( p, q ) = ( x − s ) 2 + ( y − t ) 2
Con questa definizione di distanza, i pixel a distanza da (x,y) minore o
uguale a r sono contenuti in un disco di raggio r con centro in (x,y)
E. Ardizzone
21
Università degli Studi
di Palermo
Misure di distanza
✔ La distanza D4 (o city-block) è definita come:
D4 ( p , q ) = x − s + y − t
I pixel a distanza da (x,y) minore o uguale a r costituiscono un
diamante centrato in (x,y). Per esempio, i pixel a distanza D4 ≤ 2 dal
punto centrale formano i contorni alla distanza costante indicata:
2
2
2
1
2
1 (x,y) 1 2
2 1 2
2
Si noti che i pixel a D4 = 1 sono i
4-vicini di (x,y)
E. Ardizzone
22
Università degli Studi
di Palermo
Misure di distanza
✔ La distanza D8 (o chessboard) è definita come:
D8 ( p, q ) = max( x − s , y − t )
I pixel a distanza da (x,y) minore o uguale a r costituiscono un
quadrato centrato in (x,y). Per esempio, i pixel a distanza D8 ≤ 2 dal
punto centrale formano i contorni alla distanza costante indicata:
2
2
2
1
2
1
2
1
2
2
2
2
2
1 (x,y) 1
1 1 1
2 2 2
2
2
2
Si noti che i pixel a D8 = 1 sono gli
8-vicini di (x,y)
E. Ardizzone
23
Università degli Studi
di Palermo
Misure di distanza
✔ Le metriche così definite dipendono soltanto dalle coordinate dei punti,
e non dalla eventuale esistenza di un cammino connesso tra di essi.
✔ Tuttavia è facile vedere che la D4 tra due punti coincide con la
lunghezza del 4-cammino più breve tra di essi, mentre la D8 è uguale
alla lunghezza dell’8-cammino più breve
✔ Nel caso della m-connettività, invece, la lunghezza del cammino tra
due pixel dipende dal valore dei pixel lungo il cammino, e dal valore
dei loro vicini. Si consideri l’esempio seguente, dove si assume che p,
p2 e p4 abbiano valore pari a 1, e che per la connettività sia V = {1}:
Se p1 = p3 = 0, la m-distanza tra p e p4 è 2
Se p1 oppure p3 è pari a 1, la m-distanza è 3
Se p1 = p3 = 1, la m-distanza è pari a 4
E. Ardizzone
24
Università degli Studi
di Palermo
Operazioni aritmetiche tra pixel
✔ Le operazioni aritmetiche tra due pixel, p e q, sono quelle ordinarie di
* addizione:
p+q
* sottrazione:
p-q
* moltiplicazione: p x q
* divisione:
p:q
✔ Le operazioni aritmetiche tra due immagini hanno luogo normalmente
tra pixel omologhi delle due immagini, per tutti i pixel.
✔ Dato che il risultato dell’operazione in ogni posizione (x,y) dipende
solo dai valori dei pixel nella stessa posizione nelle immagini di
partenza, le operazioni aritmetiche trovano largo impiego nelle
elaborazioni appartenenti alla classe delle operazioni puntuali (pixelby-pixel operations)
E. Ardizzone
25
Università degli Studi
di Palermo
Operazioni aritmetiche tra pixel
✔ Appartengono invece alla classe delle operazioni locali (neighborhood
operations) le elaborazioni che coinvolgono i valori dei pixel in un
intorno, generalmente piccolo, della posizione (x,y) di interesse
✔ Nelle operazioni di questo tipo ci si avvale delle cosiddette maschere (o
filtri o finestre o template)
✔ Il valore assegnato dalla elaborazione locale ad un pixel in posizione
(x,y) è funzione sia del suo livello di grigio che dei valori dei pixel
vicini. Si considerino la porzione di immagine e la maschera seguenti:
E. Ardizzone
26
Università degli Studi
di Palermo
Operazioni aritmetiche tra pixel
✔ Il valore del pixel centrale della porzione di immagine, che
inizialmente è pari a z5, si ottiene “centrando” la maschera su di esso,
moltiplicando ogni pixel dell’intorno la cui dimensione è definita dalla
dimensione della maschera per il corrispondente coefficiente o peso, e
sommando i risultati:
9
z = w1 z1 + w2 z 2 + L + w9 z 9 = ∑ wi z i
i =1
✔ L’effetto della elaborazione dipende dai coefficienti della maschera
✔ Per esempio, se si vuole sostituire al pixel originale il valore medio dei
livelli di grigio in un intorno 3 x 3, si può porre wi = 1/9 per i = 1,…,9,
ottenendo:
1 9
z = ∑ zi
9 i =1
Questa è una operazione di filtraggio passa
basso (filtro di media mobile)
E. Ardizzone
27
Università degli Studi
di Palermo
Operazioni aritmetiche tra pixel
✔ Le operazioni locali sono tra le più adoperate in elaborazione delle
immagini a basso e medio livello (riduzione del rumore, miglioramento
di qualità, restauro, estrazione di contorni e di altre caratteristiche,
analisi di tessitura e del moto, etc.)
✔ E’ importante notare che il risultato di una operazione locale è ancora
una immagine, e che elaborazioni di questo tipo comportano comunque
una perdita di informazione: il livello di grigio di un pixel, una volta
sostituito per esempio dalla media nell’intorno, non può essere più
recuperato
✔ Per questo motivo si parla di operazioni di filtraggio, e le maschere
sono anche dette filtri
✔ Applicare un filtro a tutti i pixel di una immagine è comunque una
operazione computazionalmente costosa
E. Ardizzone
28
Università degli Studi
di Palermo
Operazioni aritmetiche tra pixel
✔ Per esempio, applicare una maschera 3 x 3 ad una immagine 512 x 512
richiede 9 moltiplicazioni e 8 addizioni in ogni posizione, per un totale
di 2.359.296 moltiplicazioni e 2.097.152 addizioni
✔ Questo è il motivo per cui si è sviluppato nel corso degli anni
dell’hardware dedicato, capace di effettuare operazioni aritmeticologiche in parallelo, a velocità di video frame nel caso di elaborazione
in tempo reale di filmati
✔ La enorme capacità di calcolo dei moderni sistemi (diciamo dalla
introduzione della tecnologia MMX in poi, 1997) rende oggi gran parte
delle applicazioni di image processing disponibili su apparati di costo
medio-basso
E. Ardizzone
29
Università degli Studi
di Palermo
Operazioni logiche tra pixel
✔ Le principali operazioni logiche usate nella elaborazione delle
✔
✔
✔
✔
immagini sono quelle solite di:
AND: p ⋅ q oppure p AND q
OR:
p + q oppure p OR q
q oppure NOT q
NOT:
Queste operazioni sono, come è noto, funzionalmente complete, nel
senso che ogni altra operazione logica tra pixel può essere realizzata
mediante una loro combinazione
Le operazioni logiche si applicano esclusivamente ad immagini binarie
L’uso più interessante si ha nelle operazioni di estrazione di
caratteristiche, analisi della forma, applicazione di maschere, etc.
L’applicazione ad intere immagini si effettua tra pixel omologhi delle
due immagini, per tutti i pixel.
E. Ardizzone
30
Università degli Studi
di Palermo
Operazioni logiche tra pixel
✔ Per esempio, l’operazione di AND dà luogo ad una immagine nella
quale sono pari a 1 solo i pixel nelle posizioni in cui i pixel valgono
1anche nelle due immagini di ingresso:
✔ Esempio di NOT:
E. Ardizzone
31
Università degli Studi
di Palermo
Operazioni logiche tra pixel
✔ Esempio di OR:
✔ Esempio di operazione composta:
E. Ardizzone
32
Università degli Studi di Palermo
Elaborazione delle Immagini Digitali
Parte C
Prof. Edoardo Ardizzone
A.A. 2001-2002
Università degli Studi
di Palermo
Trasformazioni geometriche
✔ Da un punto di vista geometrico, il processo di formazione della
✔
✔
✔
✔
immagine (detto imaging) è una proiezione sul piano (dell’immagine)
di una scena 3-D
La perdita di una coordinata, intrinseca al processo, rappresenta una
severa perdita di informazione
Tuttavia, sia pur inconsciamente, sperimentiamo continuamente come
il sistema visivo riesca a percepire la sensazione di tridimensionalità in
modo sufficiente a consentirci di interagire con il mondo esterno
Il sistema visivo ricostruisce la scena 3-D partendo dalle immagini 2-D
che si formano sulla retina. L’apparente semplicità di questo processo
può far credere ad una sua agevole realizzazione artificiale
In realtà, la ricostruzione 3-D delle scene è, nel caso generale, uno dei
task più complessi della visione artificiale
E. Ardizzone
2
Università degli Studi
di Palermo
Trasformazioni geometriche
✔ Per descrivere la posizione degli oggetti nello spazio 3-D, occorre fare
✔
✔
✔
✔
riferimento ad un sistema di coordinate cartesiane ortogonali
Esistono in realtà due modi differenti di descrivere la posizione di un
oggetto: rispetto ad un riferimento esterno, posizionato nella scena
osservata (world coordinates), e rispetto ad un riferimento solidale col
dispositivo di ripresa (camera coordinates)
Siano (X, Y, Z) le coordinate mondo di un punto nello spazio 3-D. Le
sue coordinate omogenee sono (kX, kY, kZ, k)
Le coordinate omogenee sono un elegante formalismo che consente di
descrivere in modo unificato le principali trasformazioni geometriche e
di rappresentarne efficacemente le concatenazioni: l’intero processo di
imaging può essere descritto con una sola matrice 4 x 4
Note le coordinate omogenee, le coordinate 3-D possono essere
calcolate dividendo le prime tre coordinate omogenee per la quarta
E. Ardizzone
3
Università degli Studi
di Palermo
Trasformazioni geometriche
✔ Le trasformazioni geometriche di traslazione, scaling e rotazione sono
tra le più importanti
✔ In coordinate 3-D, la traslazione del punto (X, Y, Z) di una quantità (X0,
Y0, Z0) dà luogo ad un nuovo punto di coordinate:
X * = X + X0
Y * = Y + Y0
Z * = Z + Z0
✔ In forma matriciale:
X 
v = Y 
 
 Z 
v* = v + v 0
X 0 
v 0 =  Y0 
 
 Z 0 
E. Ardizzone
essendo, rispettivamente:
X *
 
v* =  Y * 
 Z * 
4
Università degli Studi
di Palermo
Trasformazioni geometriche
✔ Questa forma matriciale prevede la somma dei vettori, il che la rende
scomoda da utilizzare quando si devono concatenare più trasformazioni
(per esempio, una traslazione seguita da uno scaling e quindi da una
rotazione) per dar luogo ad una trasformazione risultante, da esprimere
in funzione delle trasformazioni componenti
✔ Se queste fossero tutte esprimibili come prodotti di matrici, la matrice
che esprime la trasformazione risultante sarebbe facilmente calcolabile
come prodotto delle matrici che rappresentano le singole trasformazioni
✔ Per esempio, data una prima trasformazione v1 = Av ed una successiva
v 2 = Bv 1 si può scrivere: v 2 = Bv 1 = B(Av ) = Cv, dove C = BA
✔ E’ da notare che l’ordine in cui devono essere effettuate le
trasformazioni si riflette sull’ordine in cui vanno effettuati i prodotti
delle relative matrici, dato che il prodotto matriciale, in generale, non è
commutativo
E. Ardizzone
5
Università degli Studi
di Palermo
Trasformazioni geometriche
✔ Le equazioni della traslazione possono essere espresse in forma
matriciale anche nel modo seguente:
X 
X0  
Y



Y0
 Z 
Z 0   
1
✔ L’uso di matrici di trasformazione 3 x 4 è poco appropriato, in quanto i
calcoli risultano semplificati se tutte le matrici componenti sono
quadrate
✔ Per questo motivo viene introdotta la notazione che fa uso delle
coordinate omogenee, con k = 1:
 X *  1 0 0
 * 
 Y  = 0 1 0
 Z *  0 0 1
v * = Tv
E. Ardizzone
6
Università degli Studi
di Palermo
Trasformazioni geometriche
dove:
X *
 *
Y
v* =  * 
Z 
 
1 
X 
Y 
v= 
Z 
1
 
1
0
T=
0
0

0
1
0
0
0
0
1
0
X0
Y0 

Z0 
1 
✔ T è la matrice 4 x 4 della traslazione
✔ Riassumendo, si parte da un punto in coordinate 3-D, se ne
considerano le coordinate omogenee, si usa la matrice T per calcolare
le coordinate omogenee del punto di arrivo, si calcolano le coordinate
3-D di quest’ultimo. Avere posto k = 1 semplifica i calcoli
E. Ardizzone
7
Università degli Studi
di Palermo
Trasformazioni geometriche
✔ Nel caso 2-D, la rotazione di un punto attorno all’origine può essere
espressa facilmente in funzione delle coordinate iniziali (X,Y) del
punto e dell’angolo di rotazione θ :
X * = R cos(α + θ )
X = R cos α
Y * = R sin(α + θ )
Y = R sin α
X * = R cos α cosθ − R sin α sin θ = X cosθ − Y sin θ
Y * = R cos α sin θ + R sin α cosθ = X sin θ + Y cosθ
In forma matriciale:
 X *  cosθ
 *  =  sin θ
Y  
− sin θ   X 
cosθ   Y 
ovvero:
E. Ardizzone
v * = Rθ v
8
Università degli Studi
di Palermo
Trasformazioni geometriche
✔ Nel caso 3-D, quella appena vista è la rotazione attorno all’asse Z, in
qualunque piano parallelo al piano XY. Ovviamente in questo caso la
coordinata Z non cambia per effetto della rotazione. Si può pertanto
scrivere:
 cosθ sin θ 0 0
Il cambiamento di segno è
− sin θ cosθ 0 0
giustificato dall’avere assunto il

Rθ = 
segno positivo per gli angoli presi
0
1 0
 0

 0
in senso orario:
0
0
1


Analogamente si possono esprimere le
rotazioni attorno agli assi X e Y:
E. Ardizzone
9
Università degli Studi
di Palermo
Trasformazioni geometriche
0
1
0 cos α
Rα = 
0 − sin α
0
0

0
sin α
cos α
0
0
0

0
1
cos β
 0
Rβ = 
 sin β
 0

0 − sin β
1
0
0 cos β
0
0
0
0

0
1
✔ Le tre matrici Rα , Rβ , Rθ rappresentano rotazioni di un punto
attorno ad uno degli assi coordinati
✔ Il caso più generale della rotazione di un punto attorno ad un altro
punto qualsiasi dello spazio richiede tre trasformazioni consecutive: la
prima per traslare il centro della rotazione nell’origine, la seconda per
effettuare la rotazione (semplice o combinata), la terza per riportare il
centro della rotazione nella posizione iniziale
E. Ardizzone
10
Università degli Studi
di Palermo
Trasformazioni geometriche
✔ La trasformazione di scaling lungo i tre assi, rispettivamente secondo i
fattori Sx, Sy e Sz, è espressa dalla matrice:
S x
0
S=
0
0

0
Sy
0
0
0
0
Sz
0
0
0

0
1
✔ Una trasformazione complessa può essere rappresentata dalla
concatenazione delle trasformazioni semplici
✔ Per esempio, la traslazione, lo scaling e la rotazione attorno all’asse Z
di un punto v sono date da:
v * = R θ (S(Tv )) = Av dove A = R θ ST
E. Ardizzone
11
Università degli Studi
di Palermo
Trasformazioni geometriche
✔ Anche la trasformazione simultanea di un set di m punti può essere
espressa mediante una sola matrice di trasformazione
✔ Siano v1, v2, … , vm i vettori colonna con le coordinate omogenee
degli m punti. Si consideri la matrice (4 x m) V, le cui colonne sono
costituite da questi vettori colonna. La trasformazione simultanea di
tutti gli m punti per effetto di una qualunque matrice di trasformazione
(4 x 4) A è data da V* = AV
✔ La matrice risultante (4 x m) V* ha nella i-ma colonna le coordinate
del punto trasformato corrispondente a vi
E. Ardizzone
12
Università degli Studi
di Palermo
Trasformazione prospettica
✔ E’ la classica trasformazione, detta anche di imaging, che proietta i
punti 3-D della scena sul piano dell’immagine. Rappresenta una
buona approssimazione del modo in cui si svolge (dal punto di vista
geometrico) il processo di formazione dell’immagine, nell’ipotesi che
per il dispositivo di ripresa possa adottarsi il modello detto della
macchina fotografica (pinhole camera), in base al quale l’elemento di
imaging è considerato un foro infinitamente piccolo attraverso il quale
passano tutti i raggi luminosi che contribuiscono alla formazione
dell’immagine
✔ In pratica, secondo questo modello l’elemento di imaging è una lente
che può essere attraversata dai raggi luminosi solo nel suo centro
✔ La trasformazione è non lineare, al contrario delle precedenti, in
quanto richiede la divisione per il valore di una coordinata
E. Ardizzone
13
Università degli Studi
di Palermo
Trasformazione prospettica
✔ Inizialmente si suppone che il sistema di coordinate della camera
(x,y,z) sia allineato con il sistema di coordinate mondo (X,Y,Z)
✔ Si suppone inoltre che il piano dell’immagine coincida con il piano xy,
e che l’asse ottico (la perpendicolare al piano dell’immagine passante
per il centro della lente) coincida con l’asse z:
In tal modo l’origine è nel centro
del piano dell’immagine, ed il
centro della lente è a distanza λ.
Quando la camera è a fuoco, λ
coincide con la distanza focale
della lente
✔ Si suppone ancora che sia Z > λ , cioè che tutti i punti 3-D di interesse
siano davanti alla lente
E. Ardizzone
14
Università degli Studi
di Palermo
Trasformazione prospettica
✔ Dato un punto 3-D di coordinate mondo (X, Y, Z), determiniamo le
coordinate camera della sua proiezione sul piano dell’immagine
✔ Consideriamo nel piano ZY i triangoli simili OCO’ e CP’P, dove P è la
proiezione di (X, Y, Z) sul piano ZY, mentre O’ è la proiezione di (x,y)
sull’asse Y, e C è il centro della lente:
− PP' OO'
=
cioè
CP '
OC
y
−Y
=
Z −λ λ
Il segno - indica esplicitamente
l’inversione causata dalla proiezione.
Analogamente per l’altra coordinata:
x
−X
=
Z −λ λ
E. Ardizzone
15
Università degli Studi
di Palermo
Trasformazione prospettica
✔ Pertanto:
x=
λX
λ−Z
y=
λY
λ−Z
✔ La presenza della coordinata Z a denominatore rende non lineare la
trasformazione
✔ In alternativa, le coordinate camera del punto (x,y) possono essere
ottenute in forma matriciale. Sia wh il vettore delle coordinate mondo
del punto (X,Y,Z) in forma omogenea.
1 0 0 0
Si consideri la trasformazione ch = Pwh,
0 1 0 0 
dove P è la matrice della trasformazione
P = 0 0 1 0
prospettica
−1 

0 0 λ 1
E. Ardizzone
16
Università degli Studi
di Palermo
Trasformazione prospettica
✔ Si ha quindi:
1 0 0 0 kX   kX 
0 1 0 0    kY 
kY




=
c h = Pw h = 0 0 1 0
 kZ   kZ 
− 1     − kZ


k
+
0
0
1

  k   λ

λ
✔ Per ottenere le coordinate camera 3-D occorre dividere le prime tre
coordinate omogenee per la quarta. Pertanto:
 λX 
 x   λ − Z 
λY
c =  y = 

 
Z
−
λ
 z   λZ 


 λ − Z 
Le prime due componenti di c sono le coordinate
(x,y) della proiezione di (X,Y,Z) (e sono ovviamente
uguali a quelle trovate precedentemente). La terza
componente non ha senso in termini del modello
adottato, dato che z = 0 in tutto il piano xy
E. Ardizzone
17
Università degli Studi
di Palermo
Trasformazione prospettica
✔ Affrontiamo adesso il problema della trasformazione prospettica
inversa, che ha lo scopo di determinare, partendo da un punto (x,y)
dell’immagine, il punto 3-D dal quale è stato generato durante la
proiezione di imaging
✔ Premoltiplicando per P-1 entrambi i membri della equazione della
trasformazione prospettica si ottiene:
w h = P −1c h
dove:
1 0 0 0
0 1 0 0 
P −1 = 0 0 1 0
1


0
0
1


λ
E. Ardizzone
18
Università degli Studi
di Palermo
Trasformazione prospettica
✔ Supponiamo che il punto dell’immagine preso in considerazione abbia
coordinate (x0, y0, 0). La terza coordinata è 0 poiché z = 0 è il piano
dell’immagine. In coordinate omogenee:
kx0 
Applicando l’equazione
ky 
precedente si ottiene:
ch =  0 
 0 
 k 
 
✔ Passando alle coordinate 3-D:
 X   x0 
w =  Y  =  y0 
   
 Z   0 
kx0 
ky 
wh =  0 
 0 
 k 
 
Questo risultato è palesemente assurdo
perché dà Z = 0 per qualunque punto 3-D
E. Ardizzone
19
Università degli Studi
di Palermo
Trasformazione prospettica
✔ Il problema è che la proiezione di imaging è una trasformazione non
invertibile, in quanto many-to-one: il punto (x0,y0) nel piano
dell’immagine è la proiezione di tutti i punti 3-D allineati lungo la retta
passante per (x0,y0, 0) e (0, 0, λ).
✔ L’equazione di questa retta in coordinate mondo si può ricavare dalle
espressioni delle coordinate camera già calcolate:
x0 =
λX
λ−Z
y0 =
λY
λ−Z
✔ Risolvendo rispetto a X e Y si ottiene:
X =
x0
(λ − Z )
λ
Y=
E. Ardizzone
y0
(λ − Z )
λ
20
Università degli Studi
di Palermo
Trasformazione prospettica
✔ Queste equazioni mostrano che la ricostruzione completa del punto 3-
D a partire dall’immagine non è possibile, a meno che non si abbia
qualche altra conoscenza (per esempio della coordinata Z) che
consenta di ripristinare l’informazione di profondità
✔ Le tecniche di shape-from-x cercano di risolvere il problema
ricorrendo ad informazioni desunte dall’analisi, per esempio, del
movimento, della tessitura, di coppie stereo, etc.
✔ L’equazione ch = Pwh rappresenta il modello matematico elementare
dell’operazione di imaging. Essa è stata ricavata nell’ipotesi che i
sistemi di coordinate, mondo e camera, siano coincidenti.
✔ In realtà non è difficile rimuovere questa limitazione: basta ricondursi
al caso precedente mediante appropriate trasformazioni di
rototraslazione, e poi applicare la trasformazione di imaging
E. Ardizzone
21
Università degli Studi
di Palermo
Trasformazione prospettica
✔ Più in dettaglio, le trasformazioni geometriche che permettono di
passare dalle coordinate mondo alle coordinate camera (qui l’ipotesi è
che il piano dell’immagine sia ancora il piano xy, e l’asse ottico sia
ancora coincidente con l’asse z) sono:
– una traslazione dell’origine del sistema di coordinate mondo nel
punto centrale dello snodo che permette i movimenti angolari della
camera
– una o più rotazioni attorno agli assi del sistema di coordinate
mondo, per allineare i suoi assi con quelli del sistema di coordinate
camera
– una traslazione per coprire la distanza tra il centro dello snodo e
l’origine del sistema di coordinate camera, posto al centro del
piano della immagine
E. Ardizzone
22
Università degli Studi
di Palermo
Trasformazione prospettica
✔ I movimenti angolari della camera sono definiti attraverso due angoli:
– angolo di tilt, tra gli assi z e Z (è l’inclinazione rispetto al piano
orizzontale), denotato con α nel seguito
– angolo di pan, tra gli assi x e X (è l’inclinazione rispetto al piano
verticale), denotato con θ nel seguito
w è un generico punto 3-D, c è la sua
proiezione sul piano dell’immagine
w0 è lo spostamento del centro dello
snodo rispetto all’origine, mentre r è
lo spostamento del centro del piano
dell’immagine dal centro dello snodo
E. Ardizzone
23
Università degli Studi
di Palermo
Trasformazione prospettica
✔ Supponiamo che inizialmente la camera sia in posizione normale, ossia
posta nell’origine del sistema di coordinate mondo e con gli assi
allineati a quelli di quest’ultimo
✔ Effettuare le trasformazioni geometriche nell’ordine visto in
precedenza consente di spostare la camera nella posizione mostrata. Lo
stesso risultato può essere ottenuto applicando esattamente la stessa
sequenza di operazioni a tutti i punti 3-D di interesse
✔ La traslazione che permette di spostarsi dall’origine al centro dello
snodo è definita dalla matrice:
1 0 0 − X 0 
0 1 0 − Y 
0

G=
0 0 1 − Z 0 
0 0 0
1 

E. Ardizzone
24
Università degli Studi
di Palermo
Trasformazione prospettica
✔ La rotazione dell’asse x corrispondente all’angolo θ di pan è attorno
all’asse z, quindi è una Rθ
✔ La rotazione dell’asse z corrispondente all’angolo α di tilt è attorno
all’asse x, quindi è una Rα
✔ Le due rotazioni possono essere concatenate in una sola matrice:
R = RαRθ
✔ Infine, lo spostamento dal centro dello snodo all’origine del sistema di
coordinate camera è rappresentato da un’altra matrice di traslazione:
1
0
C=
0
0

0
1
0
0
0 − r1 
0 − r2 

1 − r3 
0 1 
r1, r2 e r3 sono le componenti dello
spostamento r
E. Ardizzone
25
Università degli Studi
di Palermo
Trasformazione prospettica
✔ La sequenza di queste trasformazioni porta i due sistemi di riferimento
a coincidere, e quindi si può applicare la trasformazione di imaging:
ch = PCRGwh
✔ La matrice di trasformazione di imaging nel caso generale è pertanto:
A = PCRG
✔ Una volta ottenuto ch, dividendo le prime due componenti per la quarta
si possono ricavare le coordinate cartesiane (x,y) del punto proiettato.
Il risultato finale è:
( X − X 0 ) cosθ + (Y − Y0 ) sen θ − r1
− ( X − X 0 ) sen θ sen α + (Y − Y0 ) cosθ sen α − ( Z − Z 0 ) cos α + r3 + λ
− ( X − X 0 ) sen θ cos α + (Y − Y0 ) cosθ cos α + ( Z − Z 0 ) sen α − r2
y=λ
− ( X − X 0 ) sen θ sen α + (Y − Y0 ) cosθ sen α − ( Z − Z 0 ) cos α + r3 + λ
x=λ
E. Ardizzone
26
Università degli Studi
di Palermo
Calibrazione della camera
✔ L’uso delle equazioni di imaging richiede la conoscenza di parametri
✔
✔
✔
✔
come la lunghezza focale, gli angoli di pan e tilt, etc.
Alla misura diretta di questi parametri, spesso di difficile realizzazione,
in particolare se la camera si sposta frequentemente, è preferibile la
loro determinazione mediante l’uso della camera stessa
Questo processo (calibrazione della camera) richiede la conoscenza di
un set di punti dell’immagine corrispondenti a punti mondo di
coordinate note
Tutti i parametri della camera sono infatti presenti nella matrice A =
PCRG, per cui il problema è risolto se, dai punti 3-D e dalle rispettive
proiezioni, si determinano i valori degli elementi della A
Scriviamo allora le equazioni di imaging, usando la rappresentazione
omogenea con k = 1:
E. Ardizzone
27
Università degli Studi
di Palermo
Calibrazione della camera
 ch1   a11
c   a
 h 2  =  21
ch3   a31
c   a
 h 4   41
a12
a 22
a32
a 42
a13
a23
a33
a43
a14   X 
a24   Y 
 
a34   Z 
a44   1 
✔ Dato che x = ch1/ch4 e y = ch2/ch4 , sostituendo e sviluppando i prodotti
si ha:
xch 4 = a11 X + a12Y + a13 Z + a14
ych 4 = a21 X + a22Y + a23 Z + a24
ch 4 = a41 X + a 42Y + a43 Z + a44
avendo trascurato lo sviluppo di ch3 che è legato a z
E. Ardizzone
28
Università degli Studi
di Palermo
Calibrazione della camera
✔ Sostituendo l’ultima nelle prime due si ottengono due equazioni con 12
coefficienti incogniti:
a11 X + a12Y + a13 Z − a 41 xX − a 42 xY − a 43 xZ − a 44 x + a14 = 0
a 21 X + a 22Y + a 23 Z − a 41 yX − a 42 yY − a 43 yZ − a 44 y + a 24 = 0
✔ Per risolvere questo sistema sono necessari almeno 6 punti 3-D di
coordinate mondo note, di cui si conoscano anche le proiezioni sul
piano dell’immagine
E. Ardizzone
29
Università degli Studi
di Palermo
Imaging stereo e geometria epipolare
✔ Come detto a proposito della trasformazione prospettica inversa, la
ricostruzione completa del punto 3-D è possibile solo se si ha a
disposizione una qualche informazione di profondità
✔ Una tecnica classica prende in considerazione due immagini differenti
della stessa scena, mediante due dispositivi di ripresa della cui
collocazione rispetto alla scena è nota la geometria (imaging
stereoscopico o semplicemente stereo)
✔ Alla base dell’imaging stereo ci sono alcuni concetti relativi alla
geometria epipolare, che adesso vengono brevemente richiamati
✔ In un tipico sistema di ripresa stereo sono presenti due camere che
riprendono uno stesso oggetto (un solo punto w nel nostro caso) da due
diversi punti di vista.
E. Ardizzone
30
Università degli Studi
di Palermo
Imaging stereo e geometria epipolare
L’obiettivo è trovare le coordinate mondo
(X,Y,Z) di w, note le coordinate delle due
immagini (x1,y1) e (x2,y2)
L’ipotesi è che le due camere siano identiche
e che i loro sistemi di coordinate siano
perfettamente allineati, differendo solo nella
posizione delle rispettive origini
Questa condizione (normalmente ben approssimata nelle applicazioni di
stereo imaging) fa sì che la coordinata Z di w sia esattamente la stessa per
entrambe le camere
Anche la distanza B tra i centri delle due lenti (detta baseline) è nota.
Se il primo sistema di coordinate camera è pensato coincidente con le
coordinate mondo, si ha come è noto:
E. Ardizzone
31
Università degli Studi
di Palermo
Imaging stereo e geometria epipolare
X1 =
x1
(λ − Z1 )
λ
Quindi il punto w sta su questa linea
✔ Pensando adesso il secondo sistema di coordinate camera coincidente
con il sistema di coordinate mondo, w sta sulla linea:
x
X 2 = 2 (λ − Z 2 )
λ
✔ Dato che Z è la stessa nei due sistemi, si può porre Z = Z1 = Z2. Inoltre
si ha X2 = X1 + B. Pertanto:
x1
(λ − Z )
λ
✔ Sostituendo e risolvendo per Z:
X1 =
X1 + B =
E. Ardizzone
x2
(λ − Z )
λ
32
Università degli Studi
di Palermo
Imaging stereo e geometria epipolare
λB
x2 − x1
✔ Pertanto, se la lunghezza focale e la baseline sono note, e se la
differenza tra le coordinate camera x2 e x1 può essere determinata, il
calcolo della Z è immediato. Possono quindi essere calcolate X e Y, ed
il punto 3-D è completamente ricostruito.
✔ Il problema fondamentale di questo approccio è la determinazione
nelle due immagini di coppie di punti corrispondenti agli stessi punti 3D, ed a tal fine molti ricercatori hanno investigato, proponendo
approcci basati su tecniche di correlazione all’interno di piccole aree
oppure sulla individuazione di feature corrispondenti
Z =λ−
E. Ardizzone
33
Università degli Studi di Palermo
Elaborazione delle Immagini Digitali
Parte D
Prof. Edoardo Ardizzone
A.A. 2001-2002
Università degli Studi
di Palermo
Elaborazione di immagini per
9 miglioramento di qualità (image enhancement)
9 ripristino di qualità o restauro (image restoration)
9 estrazione di informazione (feature detection)
E. Ardizzone
2
Università degli Studi
di Palermo
Tecniche di elaborazione
9 puntuali
9 sequenziali
9 locali
9 parallele
9 globali
Elaborazioni
9 tra domini diversi (trasformate bidimensionali)
9 nello stesso dominio (di particolare interesse il dominio spaziale e
quello delle frequenze spaziali)
9 con riduzione dei dati tra ingresso e uscita (per esempio estrazione di
informazioni o compressione)
9 (spesso) lineari e spazio-invarianti (convoluzioni bidimensionali)
E. Ardizzone
3
Università degli Studi
di Palermo
Miglioramento di qualità
9 Mediante riduzione del rumore
9 Mediante aumento del contrasto
9 Manca in realtà una teoria generale del miglioramento di qualità, dato
che non esiste uno standard generale di qualità delle immagini.
E. Ardizzone
4
Università degli Studi
di Palermo
Metodi nel dominio spaziale
9 Le elaborazioni nel dominio spaziale possono essere espresse come:
g ( x, y ) = T [ f ( x, y ) ]
essendo f l’immagine di ingresso alla elaborazione, g quella di uscita e
T un operatore su f, definito in un intorno di (x,y)
9 In certi casi T agisce su un set di immagini di ingresso, come nel caso
di elaborazione di sequenze di immagini o, più semplicemente, nel
caso di operazioni pixel-by-pixel (somme, etc.)
9 La dimensione dell’intorno di (x,y) definisce il carattere della
elaborazione: puntuale (l’intorno coincide con il pixel stesso), locale
(nei casi più comuni l’intorno è una piccola regione quadrata centrata
sul pixel) o globale (l’intorno coincide con l’intera f)
E. Ardizzone
5
Università degli Studi
di Palermo
Elaborazioni puntuali
9 Il risultato di una elaborazione puntuale omogenea dipende solo dal
valore del pixel cui è applicata, per cui tali elaborazioni vengono anche
dette manipolazioni della scala dei grigi o dei colori
9 Se invece il risultato dell’elaborazione dipende anche dalla posizione del
pixel nell’immagine, si parla di elaborazioni puntuali non omogenee
9 Alcune tipiche elaborazioni puntuali omogenee:
✦ Aggiunta o sottrazione di una costante a tutti i pixel (per compensare sotto o
sovraesposizioni)
✦ Inversione della scala dei grigi (negativo)
✦ Clipping
✦ Espansione del contrasto
✦ Modifica (equalizzazione o specifica) dell'istogramma
✦ Presentazione in colore falso
E. Ardizzone
6
Università degli Studi
di Palermo
Elaborazioni puntuali omogenee
9 L’elaborazione si effettua applicando una specifica operazione a
ciascun pixel dell’immagine di partenza, e costruendo una nuova
immagine in cui ciascun pixel assume un valore che è il risultato della
operazione stessa
9 L’elaborazione puntuale omogenea può pertanto essere rappresentata
da una trasformazione o mapping dei livelli di grigio, del tipo:
s = T(r)
dove r è la variabile che rappresenta il livello di grigio dell’immagine
di ingresso alla elaborazione ed s è la variabile che rappresenta il
livello di grigio dell’immagine di uscita
E. Ardizzone
7
Università degli Studi
di Palermo
Elaborazioni puntuali omogenee
9 Per esempio, se la trasformazione ha la forma mostrata in figura, il suo
effetto è di produrre una immagine di uscita con contrasto maggiore di
quella di ingresso:
I livelli inferiori ad m nell’immagine originale
vengono abbassati di valore, quindi resi più
scuri, mentre quelli di valore superiore a m
vengono resi più chiari (stretching di contrasto)
Nel caso limite, la trasformazione diventa una
operazione di soglia (globale) che produce una
immagine binaria:
 0 per r < m
s=
 L − 1 per r ≥ m
E. Ardizzone
8
Università degli Studi
di Palermo
Elaborazioni puntuali omogenee
9 Le operazioni puntuali, in generale, non sono invertibili, e comportano
pertanto una perdita di informazione
9 Un esempio di operazione puntuale invertibile è invece l’inversione
della scala dei grigi o negazione (in senso fotografico) dell’immagine.
Perché?
T (r ) = L − 1 − r
E. Ardizzone
9
Università degli Studi
di Palermo
Elaborazioni puntuali omogenee
9 Un esempio di stretching (m = 128) ed un esempio di soglia (a 128):
originale
stretching di contrasto
E. Ardizzone
soglia
10
Università degli Studi
di Palermo
Elaborazioni puntuali omogenee
9 Una immagine ripresa in condizioni di scarsa illuminazione spesso
risulta sottoesposta, cioè molto scura e scarsamente contrastata
9 Per esempio, nell’immagine seguente è evidente la presenza di una
piccola dinamica, concentrata nella parte bassa della scala dei grigi:
Istogramma dei
livelli di grigio
E. Ardizzone
11
Università degli Studi
di Palermo
Elaborazioni puntuali omogenee
9 In un caso come questo l’elaborazione di stretching di contrasto è poco
utile. E’ possibile tuttavia migliorare notevolmente l’apparenza della
immagine applicando una trasformazione che effettui il mapping di un
piccolo intervallo di livelli di grigio sull’intera gamma possibile
9 Per esempio, si può applicare la trasformazione:
 4r per r < 64
s=
255 per r ≥ 64
Questa è una espansione del contrasto o
contrast enhancement con clipping dei valori
al valore massimo
Se la pendenza della curva di mapping fosse
minore di 45° si parlerebbe di compressione
del contrasto
E. Ardizzone
12
Università degli Studi
di Palermo
Elaborazioni puntuali omogenee
9 Il risultato dell’espansione di contrasto è mostrato nelle figure seguenti, ed
evidenzia come il miglioramento dell’apparenza non corrisponda del tutto
ad un miglioramento della qualità dell’immagine. Infatti l’istogramma
mostra che la risoluzione dei livelli di grigio è ancora insufficiente
E. Ardizzone
13
Università degli Studi
di Palermo
Elaborazioni puntuali omogenee
9 Abbiamo già visto la conversione gamma, una trasformazione che
consente di comprimere la gamma dinamica, permettendo la
memorizzazione o la visualizzazione, con una scala dei grigi usuale, di
immagini caratterizzate da escursioni di intensità molto ampie
9 La trasformazione può essere espressa anche nel modo seguente
(compressione logaritmica):
s = c log(1 + r )
9 c è una costante di scala, che va scelta opportunamente per far rientrare
i valori trasformati nel range voluto, cioè in [0, L-1]
9 Supponendo che sia 0 < r < R, si ha 0 < s <c log(1+R). Se R >> 1,
come normalmente avviene, per esempio, per lo spettro di Fourier di
una immagine, si può porre clogR = L-1, da cui c = (L-1)/logR
E. Ardizzone
14
Università degli Studi
di Palermo
Elaborazioni puntuali omogenee
9 In tal modo è possibile, per esempio, visualizzare su un dispositivo a
256 livelli di grigio un’immagine con una gamma dinamica molto più
ampia, anche dell’ordine dei milioni, senza che siano visualizzabili
solo i valori più alti, come avverrebbe se il mapping tra le due gamme
dinamiche fosse lineare
9 Quest’ultima trasformazione ci permette anche di considerare le
elaborazioni puntiformi dal punto di vista del loro peso
computazionale
9 Per una immagine 1024 x 1024, la compressione logaritmica
dell’intensità richiederebbe più di un milione di volte la sequenza: a)
conversione intero-float; b) calcolo del logaritmo; c) moltiplicazione
per c; d) conversione float-intero
E. Ardizzone
15
Università degli Studi
di Palermo
Elaborazioni puntuali omogenee
9 Una implementazione più efficiente delle elaborazioni puntuali si può
avere ricorrendo ad una tabella di look-up (LUT), cioè una tabella con
tante entry quante sono i possibili valori di ingresso all’operazione
9 Ogni entry della LUT contiene il valore (precalcolato) della
trasformazione corrispondente al valore di grigio che fa da indice
9 Quindi il calcolo si riduce alla sostituzione di un valore di grigio con
l’elemento della tabella che ha come indice quel valore di grigio
9 L’operazione è ancora più efficiente se le LUT sono realizzate in
hardware
E. Ardizzone
16
Università degli Studi
di Palermo
Elaborazioni puntuali omogenee
9 Un’altra tecnica utile per evidenziare zone dell’immagine caratterizzate
da una specifica gamma di livelli di grigio è quella detta di slicing dei
livelli di grigio
9 Una trasformazione utile a questo scopo è quella mostrata, che produce
un elevato valore di grigio per tutti i livelli compresi nella gamma da
evidenziare, e un valore basso all’esterno di essa
Di fatto questa operazione produce
un’immagine binaria nella quale si è perduta
l’informazione all’esterno della gamma
evidenziata
E. Ardizzone
17
Università degli Studi
di Palermo
Elaborazioni puntuali omogenee
9 Un approccio che invece preserva i toni di grigio esterni all’intervallo
evidenziato, che molto spesso costituiscono l’informazione di sfondo,
è il seguente:
9 Il risultato è ottenuto ponendo m = 20 ed n = 80, con valore alto pari a
255
E. Ardizzone
18
Università degli Studi
di Palermo
Elaborazioni puntuali omogenee
9 In alcune applicazioni può essere utile evidenziare il contributo di
specifici bit alla apparenza complessiva dell’immagine
9 Se per codificare i pixel di una immagine si utilizzano 8 bit, si può
considerare l’immagine costituita da 8 piani di 1 bit, dal piano 0 (che
contiene il bit meno significativo di ogni pixel) al piano 7 (che
contiene il bit più significativo)
9 Si consideri il valore di ogni pixel dell’immagine espresso in binario.
Ovviamente il bit più significativo si trova nel piano 7, il bit di peso
immediatamente inferiore si trova nel piano 6, e così via per tutti gli
altri.
E. Ardizzone
19
Università degli Studi
di Palermo
Elaborazioni puntuali omogenee
9 Per esempio, consideriamo un’immagine i cui primi pixel abbiano
rispettivamente i valori 192, 255, 65.... Si ha:
Decimale
Binario
Piano
192 255 65 ….
1 1 0 ....
7
1 1 1 ….
6
0 1 0 ….
5
0 1 0 ….
4
0 1 0 ….
3
0 1 0 ….
2
0 1 0 ….
1
0 1 1 ….
0
E. Ardizzone
20
Università degli Studi
di Palermo
Elaborazioni puntuali omogenee
Un esempio reale:
7
6
4
3
1
0
E. Ardizzone
5
2
21
Università degli Studi
di Palermo
Elaborazioni puntuali omogenee
9 Il bit-plane slicing consiste quindi nello scomporre un’immagine in
9
9
9
9
otto immagini binarie, rappresentate dai vari piani.
I piani di bit più significativi contengono informazioni sulla struttura
dell’immagine, mentre quelli via via meno significativi forniscono i
dettagli sempre più piccoli
Si noti che solo i piani dal 7 al 3 contengono dati significativi dal
punto di vista visuale
Inoltre l’immagine binaria del piano 7 è esattamente quella che si
ottiene binarizzando con soglia pari a 128 l’immagine di partenza
Quali sono gli intervalli di valori di grigio coperti dagli altri piani?
E. Ardizzone
22
Università degli Studi di Palermo
Elaborazione delle Immagini Digitali
Parte E
Prof. Edoardo Ardizzone
A.A. 2001-2002
Università degli Studi
di Palermo
Modifica dell’istogramma
9 L'istogramma di un'immagine digitale con livelli di grigio rk (k = 0,
…, L-1) è la funzione discreta
p (rk ) =
nk
n
dove nk è il numero di pixel dell'immagine con valore rk e n è il
numero totale di pixel
9 E' pertanto una stima a posteriori delle probabilità di occorrenza dei
livelli di grigio dell'immagine, utile perchè fornisce una descrizione
globale della cosiddetta "apparenza" dell'immagine.
9 Può essere utilizzato per avere un'idea della possibilità di
miglioramento dell'immagine, soprattutto in termini di manipolazione
del contrasto.
E. Ardizzone
2
Università degli Studi
di Palermo
Modifica dell’istogramma
Alcuni esempi:
Immagine scura
Immagine con
poco contrasto
E. Ardizzone
3
Università degli Studi
di Palermo
Modifica dell’istogramma
Alcuni esempi:
Immagine scura
e con poco
contrasto
Immagine chiara
con poco contrasto
E. Ardizzone
4
Università degli Studi
di Palermo
Modifica dell’istogramma
Alcuni esempi:
Immagine
bilanciata
Immagine bilanciata ma
con minore contrasto
E. Ardizzone
5
Università degli Studi
di Palermo
Modifica dell’istogramma
9 Oltre che a scopo orientativo, l’istogramma può essere direttamente
utilizzato per la definizione della elaborazione, che risulta così
finalizzata alla modifica dell’istogramma
9 Si noti che alcuni autori considerano non puntuali ma globali le
elaborazioni di questo tipo, in quanto l’istogramma rappresenta una
descrizione in un certo senso globale delle caratteristiche visuali
dell’immagine. In senso stretto, però, la manipolazione
dell’istogramma è una operazione puntuale
9 In particolare, l’equalizzazione (o linearizzazione) dell’istogramma di
una immagine è l’elaborazione che idealmente produce una immagine
con istogramma “piatto”, cioè con livelli di grigio uniformemente
distribuiti sui pixel (ogni livello di grigio caratterizza lo stesso numero
di pixel dell’immagine)
E. Ardizzone
6
Università degli Studi
di Palermo
Equalizzazione dell’istogramma
9 In realtà una distribuzione perfettamente uniforme dei livelli di grigio non
può essere ottenuta, principalmente a causa della natura discreta delle
grandezze trattate
9 Supponiamo inizialmente che r sia una variabile continua, normalizzata in
modo che 0 ≤ r ≤ 1, e che l'operazione s = T(r) soddisfi le due condizioni:
a) T(r) è una funzione a un solo valore e monotonicamente crescente
nell’intervallo 0 ≤ r ≤ 1
b) 0 ≤ Τ(r ) ≤ 1 per 0 ≤ r ≤ 1
9 La condizione a) conserva l'ordine dei livelli nella scala dei grigi (dal nero al
bianco), mentre la condizione b) garantisce una trasformazione consistente
con i livelli di grigio permessi (tra 0 e 1)
9 La trasformazione inversa è r = T-1(s) per 0 ≤ s ≤ 1 , e si assume che anche
T-1(s) soddisfi le condizioni a) e b) rispetto a s
E. Ardizzone
7
Università degli Studi
di Palermo
Equalizzazione dell’istogramma
9 Se r e s vengono viste come variabili random nell'intervallo [0,1], è
possibile caratterizzarle mediante le rispettive densità di probabilità,
pr (r ) e p s ( s )
9 Dalla teoria della probabilità, se pr(r) e T(r) sono note e T-1(s) soddisfa
la condizione a), si ha:
dr 

p s ( s ) =  pr (r ) 
ds  r =T −1 ( s )

9 E' possibile pertanto controllare la distribuzione dei livelli di grigio
nell'immagine trasformata adoperando una adeguata funzione di
trasformazione.
E. Ardizzone
8
Università degli Studi
di Palermo
Equalizzazione dell’istogramma
9 In particolare si consideri la trasformazione costituita dalla funzione di
distribuzione cumulativa (CDF) di r:
r
s = T (r ) = ∫ p r ( w)dw, 0 ≤ r ≤ 1
0
9 La CDF soddisfa entrambe le condizioni a) e b), in quanto cresce
monotonicamente fra 0 e 1 in funzione di r .
9 Derivando rispetto a r si ottiene:
ds
= pr (r )
dr
e quindi:

1 
= [1]r =T −1 ( s ) = 1, 0 ≤ s ≤ 1
p s ( s) =  pr (r )

p r ( r )  r =T −1 ( s )

E. Ardizzone
9
Università degli Studi
di Palermo
Equalizzazione dell’istogramma
9 Pertanto la densità di probabilità della variabile trasformata è uniforme
nel suo intervallo di definizione, indipendentemente dalla funzione di
trasformazione inversa T-1(s). Questo è importante perché l’inversione
della T(r) non è, in generale, una operazione analiticamente semplice
9 Utilizzando come trasformazione la CDF di r si ottiene dunque una
immagine con densità di probabilità uniforme dei livelli di grigio. Ne
deriva un incremento nella gamma dinamica dei pixel che può avere
notevoli effetti sulla "apparenza" dell'immagine.
9 Benchè per l’equalizzazione sia necessario solo applicare all’immagine
una trasformazione coincidente con la CDF, può essere utile illustrare
tutto il processo con un esempio
E. Ardizzone
10
Università degli Studi
di Palermo
Equalizzazione dell’istogramma
9 Si supponga pertanto che i livelli r abbiano la seguente densità:
− 2 r + 2
pr (r ) = 
0
per 0 ≤ r ≤ 1
altrove
9 Sostituendo nella CDF:
r
s = T ( r ) = ∫ (−2w + 2)dw = −r 2 + 2r
0
9 A questo punto avremmo finito, ma
continuiamo per verificare che la
densità risultante è uniforme
E. Ardizzone
11
Università degli Studi
di Palermo
Equalizzazione dell’istogramma
9 Esprimendo r in funzione di s:
r = T −1 ( s ) = 1 ± 1 − s
9 Poiché r è definita in [0,1], è valida solo la soluzione:
r = T −1 ( s ) = 1 − 1 − s
9 Si ha pertanto:
dr 
dr 


= (−2r + 2) 
p s ( s ) =  pr (r ) 
ds  r =1−
ds  r =T −1 ( s ) 

d


= (2 1 − s ) (1 − 1 − s ) 
ds

 r =1−
=
1− s
= −2 1 − s
1− s
E. Ardizzone
−1
=1
2 1− s
c.v.d.
12
Università degli Studi
di Palermo
Equalizzazione dell’istogramma
9 Tornando a considerare discreta la variabile r si ha:
nk
per 0 ≤ rk ≤ 1 e k = 0, K , L − 1
p (rk ) =
n
9 La funzione da utilizzare per l'equalizzazione dell'istogramma nel caso
discreto è la seguente:
k
s k = T (rk ) = ∑
nj
k
= ∑ p r (r j ), 0 ≤ rk ≤ 1 e k = 0,1,K, L − 1
n j =0
9 La trasformazione inversa è rk = T-1(sk), con 0 ≤ sk ≤ 1
9 Sia
T(rk) che
T-1(sk) devono soddisfare le condizioni a) e b)
precedentemente viste
9 La T(rk) si calcola direttamente dall'immagine, mentre il calcolo della
T-1(sk) non è necessario per l'equalizzazione.
j =0
E. Ardizzone
13
Università degli Studi
di Palermo
Equalizzazione dell’istogramma
9 Un esempio di equalizzazione:
E. Ardizzone
14
Università degli Studi
di Palermo
Equalizzazione dell’istogramma
9 Come si può notare, l’istogramma della immagine equalizzata non è
piatto. D’altro canto, l’uniformità della ps(s) è stata verificata solo nel
caso continuo, e non nel caso discreto.
9 I livelli di grigio dell’immagine equalizzata spaziano su tutta la
dinamica possibile (anche se alcuni livelli possono non essere
presenti), ed in particolare raggiungono sempre il bianco
9 Al conseguente incremento del contrasto si possono aggiungere effetti
sgradevoli quali lo “sgranamento” dell’immagine, la comparsa di
“false” regioni, etc., soprattutto quando il contrasto dell’immagine
originale è molto basso
9 L’apparenza dell’immagine può essere migliorata anche con altre
tecniche di modifica del contrasto, ma l’equalizzazione
dell’istogramma ha il vantaggio di essere completamente automatica
E. Ardizzone
15
Università degli Studi
di Palermo
Equalizzazione dell’istogramma
9 Perché l’equalizzazione non produce in realtà un istogramma piatto?
9 Vediamolo con un esempio. Si consideri una semplice immagine con L
= 8 livelli di grigio (k = 0,…,7) e la seguente distribuzione di
probabilità:
r
0
1/7
2/7
3/7
4/7
5/7
6/7
1
nk/n
0.015
0.1
0.25
0.4
0.2
0.035
0
0
0,45
0,4
0,4
0,35
0,3
Probabilità
k
0
1
2
3
4
5
6
7
0,25
0,25
0,2
0,2
0,15
0,1
0,1
0,05
0,035
0,015
0
0
1
2
3
4
5
0
0
6
7
Livelli r
E. Ardizzone
16
Università degli Studi
di Palermo
Equalizzazione dell’istogramma
9 Applicando la trasformazione di equalizzazione:
k
sk = T ( rk ) = ∑
j =0
nj
n
k
= ∑ pr ( rj ), 0 ≤ rk ≤ 1 e k = 0,1,K , L − 1
j =0
si ottengono i seguenti valori:
0 n
1 n
n n
j
s0 = T ( r0 ) = ∑ = 0.015 s1 = T ( r1 ) = ∑ j = ( 0 + 1 ) = 0.015 + 0.1 = 0.115
n n
j =0 n
j =0 n
2 n
s3 = T ( r3 ) = L = 0.765
s2 = T ( r2 ) = ∑ j = L = 0.365
j =0 n
s4 = T ( r4 ) = L = 0.965
s5 = T ( r5 ) = L = 1
s6 = T ( r6 ) = L = 1
s7 = T ( r7 ) = L = 1
E. Ardizzone
17
Università degli Studi
di Palermo
Equalizzazione dell’istogramma
9 Analizzando i valori sk così ottenuti, si può notare che essi non coincidono
con i valori rk iniziali. Però ad essi vanno ricondotti, poiché per ipotesi
esistono solo quegli 8 livelli di grigio
9 Pertanto, seguendo il criterio dell’approssimazione al valore possibile più
vicino e denotando con ss i valori approssimati:
s
r
ss
k
r0
0
0
0
0.015
r1
1
0.143 0.115 0.143
r3
2
0.286 0.365 0.428
r5
3
0.428 0.765 0.714
r7
1
4
0.571 0.965
r7
1
5
0.714
1
r7
6
0.857
1
1
r7
7
1
1
1
E. Ardizzone
18
Università degli Studi
di Palermo
Equalizzazione dell’istogramma
9 Ridistribuendo i pixel sui nuovi livelli, la densità di probabilità dei pixel
dell’immagine di uscita è la seguente:
ps(0) = 0.015 ps(0.143) = 0.1 ps(0.286) = 0 ps(0.428) = 0.25
ps(0.571) = 0 ps(0.714) = 0.4 ps(0.857) = 0 ps(1) = 0.235
9 Confrontiamo gli istogrammi delle immagini di ingresso e di uscita:
0,45
0,45
0,4
0,4
0,35
0,35
0,3
0,25
0,25
Probabilità
Probabilità
0,3
0,2
0,2
0,15
0,25
0,25
0,235
0,2
0,15
0,1
0,1
0,05
0,4
0,4
0,035
0,015
0
0
1
0,1
0,1
2
3
4
5
0,05
0
0
6
7
0,015
0
0
0
1
2
0
3
4
0
5
6
7
Livelli s
Livelli r
E. Ardizzone
19
Università degli Studi
di Palermo
Equalizzazione dell’istogramma
9 E’ l’approssimazione nel calcolo dei nuovi livelli, dovuta alla natura
discreta dei livelli stessi, a causare la non uniformità dell’istogramma
9 Inoltre si può notare che il livello massimo è necessariamente presente,
per effetto del meccanismo di trasformazione utilizzata
9 Qual è l’effetto prodotto dalla equalizzazione di una immagine già
equalizzata?
E. Ardizzone
20
Università degli Studi
di Palermo
Specifica diretta dell’istogramma
9 L'equalizzazione dell'istogramma ha il vantaggio di essere un metodo
completamente automatico, ma proprio per questo è limitato
nell'applicazione: infatti non è possibile specificare forme particolari
dell'istogramma, che possono invece essere utili quando si vogliono
evidenziare determinati intervalli della gamma dei livelli di grigio.
9 Supponiamo nuovamente che i livelli di grigio siano continui, essendo
pr(r) e pz(z), rispettivamente, le densità di probabilità dell'immagine
originale e di quella desiderata.
9 Equalizziamo l'istogramma dell'immagine originale:
r
s = T ( r ) = ∫ p r ( w)dw
0
E. Ardizzone
21
Università degli Studi
di Palermo
Specifica diretta dell’istogramma
9 Se l'immagine desiderata fosse già disponibile, potremmo equalizzare
anche il suo istogramma, ottenendo:
z
v = G ( z ) = ∫ p z ( w)dw
0
9 A questo punto, invertendo la G(z), potremmo ottenere i livelli di
grigio z = G-1(v) dell'immagine desiderata
9 Questa formulazione è ipotetica perchè, non conoscendo z, non
possiamo equalizzarla
9 Tuttavia sappiamo che ps(s) e pv(v) sarebbero identiche, in quanto
densità di probabilità uniformi derivanti da una equalizzazione.
Usando allora nell'inversione, al posto di v, i livelli uniformi s ottenuti
dall'equalizzazione dell'immagine originale, i livelli così ottenuti, z =
G-1(s) , avrebbero la densità di probabilità desiderata, pz(z)
E. Ardizzone
22
Università degli Studi
di Palermo
Specifica diretta dell’istogramma
9 Assumendo che G-1(s) sia una funzione ad un solo valore, l'algoritmo
di specifica diretta dell'istogramma può essere così riassunto:
1. Equalizzare l'immagine originale, ottenendo i livelli s
2. Specificare la densità di probabilità desiderata e ricavare:
z
G ( z ) = ∫ p z ( w)dw
0
3. Applicare la trasformazione inversa, z = G-1(s), ai livelli s, ottenendo
così i livelli z caratterizzati dalla densità di probabilità desiderata
9 In pratica, non è necessario effettuare due trasformazioni consecutive,
s = T(r) e z = G-1(s), in quanto i due passi possono essere conglobati in
uno solo, che fornisce i livelli desiderati a partire da quelli originali.
Poichè s = T(r) si ha infatti: z = G-1[T(r)].
E. Ardizzone
23
Università degli Studi
di Palermo
Specifica diretta dell’istogramma
9 In sostanza non è necessario equalizzare esplicitamente l’immagine
originale. Il problema è nell'inversione della G, cosa non sempre
semplice nel caso continuo
9 Nel caso discreto, invece, il problema diventa quello, più semplice
visto che il numero di livelli discreti è normalmente abbastanza
contenuto, di approssimare i livelli calcolati a quelli originali
9 Per specificare l'istogramma si può partire da una forma prefissata di
densità di probabilità (gaussiana, iperbolica, etc.), che va
opportunamente resa discreta. In alternativa, si può utilizzare un
dispositivo grafico di input, per fornire al programma di specifica la
forma dell'istogramma
9 La difficoltà di base di questo approccio è nella individuazione di una
forma adeguata dell’istogramma da utilizzare
E. Ardizzone
24
Università degli Studi
di Palermo
Elaborazioni puntuali non omogenee
9 In questo caso il risultato della elaborazione dipende anche dalla
posizione del pixel. In generale, questo rende computazionalmente più
onerosi gli algoritmi, e non si possono utilizzare le tabelle di look-up.
Perché?
9 Esempi semplici di elaborazioni puntuali non omogenee sono le
operazioni aritmetiche già viste. La più adoperata è probabilmente
l’operazione di differenza tra due immagini, che possiamo scrivere
come:
g ( x, y ) = f ( x, y ) − b ( x, y )
ovvero come
s = Txy (r )
pensando inserita nell’operatore Txy la dipendenza del risultato dai
pixel dell’immagine b(x,y)
9 La differenza tra due immagini trova importanti applicazioni sia nel
miglioramento di qualità che nella segmentazione
E. Ardizzone
25
Università degli Studi
di Palermo
Elaborazioni puntuali non omogenee
9 Frequentemente l’immagine b è costituita da uno sfondo fisso rispetto al
quale bisogna isolare degli oggetti, fissi o in movimento, per esempio
nelle applicazioni di tracking o di video-sorveglianza, in molte
applicazioni in medicina o biologia, etc. Per esempio:
-
=
9 Come si vede, l’operazione di differenza elimina tutta l’informazione
(statica) che non serve, e nel risultato rimane soltanto ciò che è cambiato
tra la prima e la seconda immagine
E. Ardizzone
26
Università degli Studi
di Palermo
Elaborazioni puntuali non omogenee
9 Siamo abituati a considerare i livelli di grigio come valori positivi, e di
conseguenza è naturale rappresentarli come numeri senza segno (per
esempio, interi da 0 a 255)
9 Da una operazione aritmetica come la differenza possono però anche
risultare valori negativi
9 In questi casi, per evitare errori nella rappresentazione (il valore -1
verrebbe interpretato come + 255), può essere conveniente utilizzare
direttamente, all’interno degli algoritmi, rappresentazioni dei pixel
come numeri con segno
9 Questo può essere fatto sottraendo 128 a ciascun pixel, cosicché il
livello di grigio medio diventa 0, i valori negativi indicano livelli di
grigio sotto la media, i valori positivi indicano livelli di grigio sopra la
media. La trasformazione puntuale inversa deve essere applicata prima
della visualizzazione
E. Ardizzone
27
Università degli Studi
di Palermo
Elaborazioni puntuali non omogenee
9 Un’altra operazione puntuale non omogenea molto comune è la media di
più immagini, spesso usata per ridurre il rumore introdotto, durante
l’acquisizione, da parte del dispositivo di ripresa
9 Una immagine rumorosa può essere modellata come:
g ( x , y ) = f ( x, y ) + η ( x, y )
dove f(x,y) è l'immagine ideale (priva di rumore) e η(x,y) è il rumore, che si
suppone incorrelato e a valor medio nullo in ogni punto.
9 In tali ipotesi, la media di M differenti immagini rumorose, che può essere
scritta come:
1 M
g ( x, y ) = ∑ g i ( x, y )
M i =1
è tale che:
1
σ
=
σ η ( x, y )
E{g ( x, y )} = f ( x, y )
g ( x, y )
M
E. Ardizzone
28
Università degli Studi
di Palermo
Elaborazioni puntuali non omogenee
σ g ( x , y ) e σ η ( x , y ) rappresentano le deviazioni standard di g ( x, y ) e η ( x, y )
nel punto (x,y). Come si vede, al crescere di M la variabilità dei valori dei
pixel in ogni punto diminuisce. Pertanto, quando il numero di immagini
usate cresce, g(x, y) approssima f(x,y)
9 Nell’esempio, la media è effettuata su 16 immagini di temperatura, rilevate
con un apposito sensore (una di esse è mostrata sulla sinistra), della
superficie dell’acqua di raffreddamento di un impianto. L’intera dinamica
dei grigi corrisponde ad una fluttuazione di temperatura di circa 1 °C
E. Ardizzone
29
Università degli Studi
di Palermo
Miglioramento locale
9 Come già notato, qualunque elaborazione puntuale diviene non omogenea
se viene applicata localmente, cioè in regioni più o meno ampie
dell’immagine. Talvolta l’elaborazione può essere applicata con
caratteristiche differenti da una regione all’altra
9 Nessuno dei due metodi di manipolazione dell’istogramma visti in
precedenza si presta ad un miglioramento dell'immagine relativo a dettagli
in piccole aree (piccolo numero di pixel), in quanto entrambi prevedono
una trasformazione basata sulla distribuzione dei livelli di grigio nell'intera
immagine
9 Possono essere più efficaci dei metodi basati sulla distribuzione dei livelli
di grigio (o di altre proprietà dei pixel) in piccole aree dell'immagine
E. Ardizzone
30
Università degli Studi
di Palermo
Miglioramento locale
9 E’
abbastanza semplice rendere locali le manipolazioni
dell’istogramma. Occorre definire una regione (quadrata o
rettangolare) e farla scorrere sull’immagine, in modo che il suo centro
coincida successivamente con tutti i pixel dell’immagine
9 In ogni nuova posizione si calcola l’istogramma dei soli pixel
contenuti nell’intorno, e si applica una procedura di equalizzazione (o
di specifica diretta)
9 La trasformazione così definita viene utilizzata per calcolare il nuovo
valore del pixel centrale dell’intorno
9 Si sposta quindi la finestra in una nuova posizione, e la procedura
viene ripetuta, finchè tutta l’immagine non è stata analizzata
E. Ardizzone
31
Università degli Studi
di Palermo
Miglioramento locale
9 Oltre all’istogramma, altre proprietà frequentemente usate in
elaborazioni locali di questo tipo sono l'intensità media, che è una
misura della luminosità media dell'intorno considerato, e la varianza,
che è una misura del contrasto nell'intorno.
9 Un esempio è il seguente:
dove:
g ( x, y ) = A( x, y )[ f ( x, y ) − m( x, y )] + m( x, y )
M
, con 0 < k < 1
A( x, y ) = k
σ ( x, y )
m(x.y) e σ(x,y) sono rispettivamente la media e la deviazione standard
dei livelli di grigio nell'intorno di (x,y), M è la media globale di f(x,y) e
k è una costante. La trasformazione così definita viene utilizzata per
calcolare il nuovo valore del pixel centrale dell’intorno
E. Ardizzone
32
Università degli Studi
di Palermo
Miglioramento locale
9 A(x,y) ha il significato di un fattore di guadagno locale, e come m e σ
dipende dai valori dei pixel dell'intorno considerato
9 Il guadagno locale, applicato alla differenza tra f(x,y) e la media locale,
amplifica questa differenza. Poichè A è inversamente proporzionale alla
varianza, le aree dell'immagine a minore contrasto vengono a guadagnare
di più.
9 La media locale è aggiunta per ripristinare l'intensità media dell'immagine
nell'intorno.
E. Ardizzone
33
Università degli Studi di Palermo
Elaborazione delle Immagini Digitali
Parte F
Prof. Edoardo Ardizzone
A.A. 2001-2002
Università degli Studi
di Palermo
Operazioni geometriche
9 Una operazione geometrica, in teoria, modifica soltanto la posizione
spaziale del pixel cui è applicata:
x′ = M (x)
dove x′ e x sono, rispettivamente, la posizione del pixel dopo e prima della
operazione. M è in questo caso un operatore di trasformazione (o mapping)
geometrica
9 Le operazioni geometriche possono essere considerate complementari a
quelle puntuali finora esaminate, e trovano largo impiego sia in fase di preprocessing, per esempio per correggere eventuali distorsioni geometriche
introdotte dal dispositivo di ripresa, sia per elaborazioni specifiche, come
quelle di warping, caratteristiche della computer graphics
E. Ardizzone
2
Università degli Studi
di Palermo
Operazioni geometriche
9 Anche se in teoria ciascun punto dell’immagine di ingresso può essere
spostato in un punto qualunque dell’immagine finale, nella maggior
parte delle applicazioni le trasformazioni sono opportunamente
vincolate, in modo che vengano rispettate la continuità delle linee e la
connettività delle regioni (oggetti) presenti nell’immagine
9 In realtà, in molte applicazioni di image processing la funzione di
mapping M non è nota esplicitamente, ma deve essere ricavata da
corrispondenze note tra punti dell’immagine di ingresso e punti
dell’immagine di uscita
9 Inoltre, data la natura discreta dell’immagine, molto raramente la nuova
posizione di un pixel, risultante dalla elaborazione M, cade esattamente
su una delle posizioni possibili, che sono le stesse di quelle della
immagine originale
E. Ardizzone
3
Università degli Studi
di Palermo
Operazioni geometriche
9 Pertanto, è normalmente richiesto anche un passo di interpolazione del
livello di grigio del nuovo pixel, che consiste nel calcolo del suo valore
(secondo una certa regola) a partire dai valori dei pixel vicini
9 Una volta fissato l’algoritmo di interpolazione, le caratteristiche della
operazione geometrica dipendono soltanto dalla M
9 Se f(x,y) e g(x,y) sono, rispettivamente, l’immagine di ingresso e quella
di uscita, l’operazione geometrica può essere definita esplicitamente
come:
g ( x, y ) = M [ f ( x, y )] = f [a ( x, y ), b( x, y )]
essendo a(x,y) e b(x,y) le funzioni che specificano la trasformazione
spaziale M. Se esse sono continue, la connettività delle regioni della
immagine è preservata
E. Ardizzone
4
Università degli Studi
di Palermo
Operazioni geometriche
9 Se per esempio la trasformazione spaziale fosse specificata da:
a ( x, y ) =
3
x+ y
2
b ( x, y ) =
1
x + 2y
2
si otterrebbe:
(x,y) in f
(x,y) in g
(1,1)
(2,1)
(2.5,2.5)
(4,3)
(3,1)
(5.5,3.5)
…….
…….
Nell’immagine di ingresso i pixel si trovano
soltanto in posizioni discrete, specificate, per
esempio, da coordinate intere
Invece, dopo il mapping, un pixel si verrebbe
a trovare, in generale, in una posizione
intermedia tra quelle possibili
Da ciò deriva la necessità dell’algoritmo di
interpolazione
E. Ardizzone
5
Università degli Studi
di Palermo
Operazioni geometriche
9 Quello appena definito è il cosiddetto mapping diretto o pixel carryover:
9 In un caso del genere, non è appropriato assegnare semplicemente il
valore del pixel di ingresso al pixel di uscita più vicino (nearest neighbor
mapping): infatti l’immagine di uscita potrebbe contenere dei punti nei
quali nessun pixel di ingresso risulta trasferito ovvero dei punti
provenienti da più pixel dell’immagine di ingresso
E. Ardizzone
6
Università degli Studi
di Palermo
Operazioni geometriche
9 Una possibile soluzione consiste nel distribuire il valore del pixel di input
su più punti dell’immagine di uscita, secondo la regola di interpolazione
adottata
9 Applicando questo criterio all’esempio precedente, nel quale i pixel si
trasferivano in posizioni esattamente intermedie:
Il valore (ovvero
l’energia) del pixel
di input viene
suddiviso tra quattro
pixel di uscita
9 Più in generale, la suddivisione può essere effettuata considerando i pixel
come quadrati e assumendo come “peso” la frazione dell’area del pixel di
input che copre ogni quadrato di uscita
E. Ardizzone
7
Università degli Studi
di Palermo
Operazioni geometriche
9 Ogni pixel di uscita può accumulare più frazioni derivanti da differenti
pixel di ingresso
9 E’ possibile esprimere la trasformazione geometrica, mediante la inversa
M-1 della M, come:
x = M −1 ( x′)
9 Si può pertanto definire un mapping inverso o pixel filling, nel quale le
coordinate di un punto dell’immagine di output sono trasferite
sull’immagine di input:
E. Ardizzone
8
Università degli Studi
di Palermo
Operazioni geometriche
9 Ovviamente questo secondo approccio supera il problema della copertura
non uniforme dell’immagine di output, dato che tutti i pixel di
quest’ultima vengono analizzati sequenzialmente
9 Si pone naturalmente un problema di interpolazione dei pixel della
immagine di ingresso
9 Il mapping inverso risulta più pratico ed efficace ed è il metodo
normalmente preferito
E. Ardizzone
9
Università degli Studi
di Palermo
Operazioni geometriche
9 Infatti il mapping diretto può comportare calcoli superflui, se le
posizioni finali dei pixel cadono fuori dell’immagine di output
9 Inoltre, ad ogni pixel di output potrebbero contribuire più pixel di
input, in tempi successivi (la scansione per linee e colonne avviene
sull’immagine di input)
9 In caso di trasformazione con diminuzione della risoluzione
(demagnificazione), più di quattro pixel di input potrebbero contribuire
ad ogni pixel di output, mentre in caso di trasformazione con aumento
della risoluzione (magnificazione), potrebbero mancare pixel
nell’immagine di output
9 Nel mapping inverso, invece, ogni pixel dell’immagine di uscita è
determinato in un solo passo di interpolazione, riguardante al più
quattro pixel di input
E. Ardizzone
10
Università degli Studi
di Palermo
Trasformazioni spaziali
9 Naturalmente l’immagine di input deve essere completamente
accessibile in modo diretto, secondo le modalità dettate dalla
trasformazione spaziale adoperata
9 Vediamo alcune trasformazioni spaziali elementari:
9 Sappiamo già come esprimere queste trasformazioni. Per esempio,
l’operazione di traslazione può essere realizzata ponendo:
E. Ardizzone
11
Università degli Studi
di Palermo
Trasformazioni spaziali
a ( x, y ) = x + x 0
b ( x, y ) = y + y 0
ovvero, in coordinate omogenee:
a( x, y ) 1 0
 b ( x, y )  =  0 1
 

 1  0 0
x0   x 
y0   y 
 
1   1 
9 Analogamente, per la rotazione (oraria) attorno all’origine:
a( x, y )  cosθ
b( x, y )  =  sin θ
 

 1   0
− sin θ
cosθ
0
E. Ardizzone
0  x 
0  y 
 
1  1 
12
Università degli Studi
di Palermo
Trasformazioni spaziali
9 L’espansione o magnificazione o scaling di un fattore c lungo x e di un
fattore d lungo y è data da:
1
 a ( x, y )   c
 b ( x, y )  =  0
 

 1   0

0
1
d
0
0  x 
 
0 y
 

1  1 

9 Queste trasformazioni elementari, più quelle di streching e shearing,
possono essere conglobate in una trasformazione lineare di coordinate,
chiamata trasformazione affine:
a( x, y )  a11
b ( x, y )  =  a
  21

 1   0
a12
a22
0
E. Ardizzone
tx   x
t y   y
 
1   1 
13
Università degli Studi
di Palermo
Trasformazioni spaziali
9 La trasformazione affine ha pertanto sei gradi di libertà: due per la
traslazione (tx e ty), ed uno ciascuno per la rotazione, lo scaling, lo
stretching e lo shearing (rispettivamente a11, a12, a21 e a22)
9 La trasformazione affine preserva i triangoli e trasforma i rettangoli in
parallelogrammi. Distorsioni geometriche più generali, come il
mapping di un rettangolo in un generico quadrilatero, richiedono
trasformazioni più complesse, come la trasformazione prospettica
9 Quando la trasformazione spaziale da implementare è difficile o
impossibile da esprimere in una forma analitica semplice nota a priori,
la si può specificare in termini di una o più misure effettuate su
immagini reali, che consentono di determinare la posizione effettiva di
alcuni punti dopo la trasformazione
E. Ardizzone
14
Università degli Studi
di Palermo
Trasformazioni spaziali
9 Noti tali punti corrispondenti, è possibile determinare, in funzione delle loro
9
9
9
9
coordinate, i coefficienti della trasformazione, che può quindi essere
applicata a tutti gli altri punti dell’immagine da correggere
Un esempio classico è quello della calibrazione geometrica di una
telecamera che produce distorsioni geometriche nelle immagini acquisite
Assumendo che tali distorsioni non dipendano dalla scena ripresa, ma
soltanto dai difetti del dispositivo, si può prendere a riferimento l’immagine
di una griglia rettangolare, che a causa della distorsione dà luogo ad un
pattern non perfettamente rettangolare
La trasformazione cercata è proprio quella che rende rettangolare il pattern
della griglia. L’applicazione della medesima trasformazione ad altre
immagini acquisite dalla stessa telecamera consente la loro correzione
Quella descritta è una classica operazione di restauro di immagini
E. Ardizzone
15
Università degli Studi
di Palermo
Trasformazioni spaziali
9 Il metodo normalmente utilizzato per la determinazione dei coefficienti
della trasformazione a partire da un set di punti corrispondenti consiste
nell’ipotizzare delle espressioni funzionali, tipicamente polinomiali,
per a(x,y) e b(x,y), individuare un numero adeguato di punti
corrispondenti di coordinate note e risolvere le equazioni in funzione
dei coefficienti stessi
9 Per esempio, se la trasformazione ipotizzata è affine, occorre
determinare sei coefficienti, quindi è sufficiente conoscere tre punti
non collineari
9 Scrivendo l’equazione della trasformazione affine per i tre punti,
denotati con (x1, y1), (x2, y2), e (x3, y3), si ottiene il seguente sistema di
equazioni lineari (in forma matriciale):
E. Ardizzone
16
Università degli Studi
di Palermo
Trasformazioni spaziali
 x1′
 y′
 1
 1
ovvero:
dalla quale:
x2′
y 2′
1
x3′   a11
y3′  = a21
 
1   0
a12
a 22
0
t x   x1
t y   y1

1   1
x2
y2
1
x3 
y3 

1 
P ′ = AP
A = P ′P −1
9 L’inversa della P esiste se i tre punti sono linearmente indipendenti,
cioè non collineari
9 Se i punti corrispondenti sono più di tre, occorre applicare una
procedura di best fitting per determinare i coefficienti incogniti, dato
che il sistema diventa sovradeterminato
E. Ardizzone
17
Università degli Studi
di Palermo
Interpolazione dei livelli di grigio
9 Come detto, il mapping geometrico da immagine di ingresso a immagine
di uscita dà in generale luogo a punti in posizioni intermedie fra i vertici
della griglia di campionamento spaziale
9 Tipicamente, assumendo come riferimento il paradigma del mapping
inverso, un pixel di uscita viene trasferito in una regione avente come
vertici quattro pixel di input
9 L’interpolazione dei livelli di grigio dei quattro pixel di input è quindi
necessaria per attribuire il valore corretto al pixel di uscita
9 Lo schema di interpolazione più semplice è quello cosiddetto di ordine zero
o del nearest neighbor: per il pixel di uscita si assume semplicemente il
valore del pixel di input più vicino alla posizione nella quale la
trasformazione spaziale adottata trasferisce il pixel di output
E. Ardizzone
18
Università degli Studi
di Palermo
Interpolazione dei livelli di grigio
9 Questo è il metodo computazionalmente più semplice, dato che in effetti
non richiede un calcolo del valore di grigio
9 Può però introdurre distorsioni nelle immagini con struttura molto fine,
caratterizzata da significative variazioni dei livelli di grigio da un pixel
all’altro
9 L’interpolazione bilineare o del primo ordine dà risultati più accettabili, a
spese di un leggero aumento della complessità computazionale
9 Il problema è la determinazione del valore di una f(x,y) in un punto
arbitrario interno ad un quadrato di lato unitario, ai cui vertici la f è nota:
0,1
0,0
x,y
1,0
1,1
Senza ledere la generalità, si può ipotizzare
che le coordinate dei quattro vertici siano
quelle mostrate
Il problema è sovradeterminato se si tratta di
far passare un piano per quattro punti
E. Ardizzone
19
Università degli Studi
di Palermo
Interpolazione dei livelli di grigio
9 Si può invece utilizzare l’equazione bilineare che definisce un
paraboloide iperbolico:
f ( x, y ) = ax + by + cxy + d
9 I quattro coefficienti devono essere scelti in modo che f(x,y) soddisfi i
valori noti ai quattro angoli:
f(0,0)
f(0,1)
f(0,y)
f(x,y)
0,1
0,y
f(0,y)
f(1,1)
0
f(1,0)
1,0
1,1
1,y
x
f(0,0)
y
x,y
0,0
x,0
f(0,1)
y
1
y
Si ha pertanto:
[ f (0, y ) − f (0,0)]: y = [ f (0,1) − f (0,0)]: 1
E. Ardizzone
20
Università degli Studi
di Palermo
Interpolazione dei livelli di grigio
9 Quindi:
f (0, y ) = f (0,0) + y[ f (0,1) − f (0,0)]
9 Analogamente:
f (1, y ) = f (1,0) + y[ f (1,1) − f (1,0)]
9 Interpolando fra i due valori f(0,y) e f(1,y):
f ( x, y ) = f (0, y ) + x[ f (1, y ) − f (0, y )]
9 Sostituendo e raggruppando:
f ( x, y ) = [ f (1,0) − f (0,0)]x + [ f (0,1) − f (0,0)]y +
+ [ f (1,1) + f (0,0) − f (0,1) − f (1,0)]xy + f (0,0)
9 Si ottengono così i quattro coefficienti cercati:
E. Ardizzone
21
Università degli Studi
di Palermo
Interpolazione dei livelli di grigio
a = f (1,0) − f (0,0)
b = f (0,1) − f (0,0)
c = f (1,1) + f (0,0) − f (0,1) − f (1,0)
d = f (0,0)
9 Questo metodo di interpolazione, pur dando risultati migliori di quello
di ordine zero, introduce un certo grado di blurring nell’immagine,
dato che, in generale, esso dà luogo a livelli di grigio inesistenti
nell’immagine di input
9 Questo effetto può essere inaccettabile, in quanto causa la scomparsa
dei dettagli molto fini, soprattutto in caso di magnificazione
9 Un altro problema può nascere dal fatto che se il metodo è applicato a
regioni contigue, le superfici risultanti hanno gli stessi valori sui
confini, ma in generale differenti pendenze, per cui la continuità delle
derivate non è garantita
9 Può essere pertanto necessario ricorrere a metodi di interpolazione di
ordine superiore, nei quali la procedura di best fitting usa funzioni più
complesse, come le spline cubiche, le funzioni di Legendre, etc
E. Ardizzone
22
Università degli Studi
di Palermo
Elaborazioni locali
9 Fanno uso, come già detto, delle cosiddette maschere spaziali (dette
anche filtri spaziali)
9 Nell’image processing si usano sia filtri lineari che filtri non lineari
9 L’operazione di una maschera lineare può essere descritta, come è
noto, dalla seguente equazione, dove R è il valore calcolato per il pixel
inizialmente di valore z5:
9
R = w1 z1 + w2 z 2 + L + w9 z 9 = ∑ wi z i
i =1
E. Ardizzone
23
Università degli Studi
di Palermo
Elaborazioni locali
9 L’operazione è ripetuta per tutti i pixel dell’immagine
9 Attenzione particolare meritano i pixel di bordo, in quanto per essi
occorre stabilire delle convenzioni per la definizione dell’intorno, che
potrebbe cadere in parte fuori dall’immagine
9 Anche i filtri non lineari operano in un intorno del pixel corrente, ma
l’elaborazione è normalmente basata soltanto sui valori dei pixel
dell’intorno stesso
9 Per esempio, la risposta di un filtro di massima è:
R = max{z k | k = 1,2, K,9}
9 Un filtro siffatto può essere usato per determinare i punti più luminosi
dell’immagine
E. Ardizzone
24
Università degli Studi
di Palermo
Filtri di smoothing
9 I filtri di smoothing sono usati per il blurring dell’immagine e per la
riduzione del rumore
9 L’operazione di blurring è normalmente utilizzata in fase di
preelaborazione, allo scopo di eliminare piccoli dettagli inutili o
addirittura dannosi per le successive elaborazioni (per esempio
finalizzate all’estrazione di regioni piuttosto ampie), ovvero di
compensare piccole imperfezioni quali le interruzioni che spesso si
verificano nelle linee di contorno
9 Il filtro di smoothing più semplice può essere realizzato mediante una
maschera con pesi tutti uguali, di valore tale da dare un risultato
compatibile con la scala dei grigi adottata
9 Per esempio, alcune maschere 3 x 3, 5 x 5, 7 x 7 valide sono le
seguenti:
E. Ardizzone
25
Università degli Studi
di Palermo
Filtri di smoothing
1 1 1
1
× 1 1 1
9
1 1 1
1
×
49
1
1
1
1
1
1
1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1
1
1
1
1
1
1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1
1
1
1
1
1
1
1
1
1
× 1
25
1
1
1 1
1 1
1 1
1 1
1 1
1
1
1
1
1
1
1
1
1
1
Altri esempi di filtri di smoothing:
1 1 1
1
× 1 2 1
10
1 1 1
E. Ardizzone
1 2 1
1
× 2 4 2
16
1 2 1
26
Università degli Studi
di Palermo
Filtri di smoothing
originale
blur 3 x 3
blur 5 x 5
blur 7 x 7
E. Ardizzone
27
Università degli Studi
di Palermo
Filtri di smoothing
9 I filtri precedenti realizzano un’operazione di media mobile, in quanto
sostituiscono a ciascun pixel la media dei valori nell’intorno, quindi un
valore di grigio non necessariamente presente nell’immagine iniziale.
E’ proprio l’introduzione di tali valori che dà luogo al blurring, ed
anche alla riduzione del rumore (noise cleaning)
9 Si noti ancora come l’effetto di smoothing sia tanto più accentuato
quanto più grande è la dimensione dell’intorno, e come l’applicazione,
per esempio, di un filtro 5 x 5 sia equivalente a due applicazioni
consecutive di un filtro 3 x 3
9 La riduzione dell’evidenza dei dettagli presenti nell’immagine, e
quindi del contrasto, è una operazione che riduce le componenti di alta
frequenza spaziale presenti nell’immagine, e pertanto queste
operazioni sono dei filtraggi passa-basso
E. Ardizzone
28
Università degli Studi
di Palermo
Filtri di smoothing
9 La somma dei pesi delle maschere è sempre 1. Questo significa che in
una zona dell’immagine uniformemente grigia l’applicazione del filtro,
correttamente, non altera i valori dei pixel: in tal modo il filtro non
introduce bias di intensità
9 Se l’obiettivo del filtraggio è la riduzione del rumore ma non il
blurring, cioè si desidera una immagine meno rumorosa ma che
mantenga i dettagli, i filtri di media non danno risultati soddisfacenti:
Rumore
10%
3x3
5x5
E. Ardizzone
29
Università degli Studi
di Palermo
Filtro mediano
9 Un approccio alternativo fa ricorso al filtro mediano, per effetto del
quale un pixel è sostituito dal valore mediano dei pixel nell’intorno. Si
tratta di un filtro non lineare
9 Per esempio, dato un frammento di immagine come il seguente, un
filtro mediano 3 x 3 opera nel modo illustrato:
35 52 29
115 52 38
110 57 40
35 52 29
115107 38
110 57 40
9 Si ricorda che il mediano M di un insieme di valori è tale che metà dei
valori sono minori di M e metà dei valori sono maggiori di M
E. Ardizzone
30
Università degli Studi
di Palermo
Filtro mediano
9 Pertanto, nell’intorno di ogni pixel si devono ordinare i valori dei pixel
in esso contenuti, compreso quello centrale, ed il valore mediano di
essi è assegnato al pixel centrale. Nell’esempio:
29, 35, 38, 40, 52,57, 107, 110, 115
9 Quindi l’effetto del filtro mediano è di forzare i pixel ad assumere un
valore uguale a quello di uno dei pixel circostanti, eliminando così
eventuali spike isolati di intensità, che sono quelli con cui di solito si
manifesta il rumore
E. Ardizzone
31
Università degli Studi
di Palermo
Filtro mediano
9 Per confrontare gli effetti dei due tipi di filtraggio:
Rumore
10%
Blur 5x5
E. Ardizzone
Mediano
32
Università degli Studi
di Palermo
Filtri di sharpening
9 I filtri di sharpening sono utilizzati per aumentare il contrasto locale
9
9
9
9
dell’immagine, in modo da arricchire i dettagli fini, o per evidenziare i
contorni degli oggetti (edge crispening)
A tal fine questi filtri lavorano accrescendo le differenze tra pixel vicini.
Sono pertanto complementari ai filtri di smoothing.
Possono quindi provocare l’aumento del rumore presente nell’immagine,
per cui la loro azione va spesso compensata con quella di un filtro per la
riduzione del rumore
Evidenziare le differenze tra pixel significa esaltare il contenuto delle
componenti ad alta frequenza spaziale presenti nell’immagine, per cui
queste operazioni sono dei filtraggi passa-alto
Per accrescere le differenze tra pixel vicini, una maschera deve avere i
pesi centrali di segno opposto a quelli periferici:
E. Ardizzone
33
Università degli Studi
di Palermo
Filtri di sharpening
0 -1 0
-1 5 -1
0 -1 0
-1 -1 -1
-1 9 -1
-1 -1 -1
1 -2 1
-2 5 -2
1 -2 1
9 Negli esempi precedenti la somma dei pesi delle maschere è 1, per
evitare l’introduzione di bias di intensità nell’immagine di output
9 Esempi:
E. Ardizzone
34
Università degli Studi
di Palermo
Filtri di sharpening
9 E’ evidente la maggiore efficacia della seconda maschera rispetto alla
prima: l’immagine di uscita è infatti più nitida
9 Più adatte ad evidenziare i contorni sono delle maschere leggermente
diverse, con somma dei pesi pari a 0, non a 1. In questo caso, l’uscita
della maschera in una zona dell’immagine a grigio costante (o
lentamente variabile) è nulla o molto piccola, come è tipico di un
filtraggio passa-alto, che idealmente deve eliminare la componente a
frequenza zero
9 Una tipica maschera con queste caratteristiche è la seguente:
-1 -1 -1
-1 8 -1
-1 -1 -1
E. Ardizzone
35
Università degli Studi
di Palermo
Filtri di sharpening
9 Esempio:
9 Cosa c’è da osservare a proposito della visualizzazione dell’immagine
dai contorni evidenziati?
9 Il problema posto da filtri con queste caratteristiche è la totale
eliminazione della informazione di sfondo
E. Ardizzone
36
Università degli Studi
di Palermo
Filtri di sharpening
9 Risultati meno drastici, da questo punto di vista, si possono ottenere
con il filtro di high-boost o di enfasi di alta frequenza, che è una
generalizzazione del precedente, e la cui operazione può essere
spiegata nel modo seguente
9 Una immagine filtrata in modo passa-alto (HP) può essere pensata
come differenza tra l’immagine originale (O) e una versione passabasso dell’immagine stessa (LP) (questa tecnica è detta di unsharp
masking):
HP = O - LP
9 Denotando con A un fattore di amplificazione, la definizione del filtro
di high-boost è la seguente:
High boost = A x O -LP
E. Ardizzone
37
Università degli Studi
di Palermo
Filtri di sharpening
9 Da cui:
High boost = (A-1) x O + O - LP = (A-1) x O + HP
9 Se A = 1, si ottiene il filtro passa-alto classico. Se A > 1, parte
dell’immagine originale viene nuovamente aggiunta al risultato del
filtraggio passa-alto, così ripristinando (almeno parzialmente) le
componenti di bassa frequenza eliminate dalla operazione di filtraggio
9 Ne risulta una immagine più simile a quella originale, con un grado di edge
crispening che dipende dal valore del fattore di amplificazione A
9 L’implementazione del filtro di high-boost mediante una maschera è la
seguente:
-1 -1 -1
-1 w -1
-1 -1 -1
dove w = 9 A − 1, con A ≥ 1
E. Ardizzone
38
Università degli Studi
di Palermo
Filtri di sharpening
9 Alcuni esempi:
A = 1.15
A = 1.1
A = 1.2
A=1
E. Ardizzone
39
Università degli Studi
di Palermo
Filtri di sharpening
9 Per A = 1 (w = 8), il risultato è quello già visto del passa-alto che taglia
completamente l’informazione sullo sfondo, mantenendo soltanto i
contorni
9 Per A = 1.1 (w = 8.9), si aggiunge il 10% dell’immagine originale al
risultato del passa-alto, e se ne ottiene un evidente miglioramento
9 Per valori maggiori di A, lo sfondo diventa sempre più luminoso, e già
per A = 1.2 (w = 9.8), che corrisponde al ripristino del 20%
dell’immagine originale, il risultato è praticamente inutilizzabile
9 Al contrario che con i filtri di smoothing, l’uso di maschere passa-alto
di dimensioni maggiori, teoricamente possibile, è in realtà molto raro
E. Ardizzone
40
Università degli Studi
di Palermo
Filtri derivativi
9 Il filtro passa-alto con somma dei pesi pari a 0 ha in pratica un effetto
derivativo sull’immagine cui è applicato: l’applicazione di operazioni di
differenza per aumentare la nitidezza di un’immagine digitale è analoga
alla differenziazione di una funzione continua
9 E’ quindi abbastanza naturale lo sviluppo di metodi di sharpening
direttamente basati su operazioni esplicite di derivazione, come vedremo
in dettaglio a proposito dell’estrazione dei contorni, in particolare per ciò
che riguarda le applicazioni di operatori come il gradiente o il laplaciano.
E. Ardizzone
41
Università degli Studi di Palermo
Elaborazione delle Immagini Digitali
Parte G
Prof. Edoardo Ardizzone
A.A. 2001-2002
Università degli Studi
di Palermo
Trasformata di Fourier di una immagine
ü Benchè altre trasformate siano oggi di uso frequente in molte applicazioni
(restauro, codifica, descrizione di caratteristiche), la trasformata di Fourier
mantiene un ruolo cardine nell’image processing
ü La trasformata di Fourier di una funzione continua f(x) di variabile reale x
è definita come:
F { f ( x )} = F (u ) =
+∞
∫ f ( x ) exp[− j 2πux]dx
−∞
ü Come è noto, la variabile u è interpretabile come frequenza.
ü Infatti, essendo:
exp [− j 2πux ] = cos 2πux − j sin 2πux
la F(u) è composta dalla somma di infiniti termini sinusoidali e
cosinusoidali, e ogni valore di u determina la frequenza della coppia senocoseno corrispondente
E. Ardizzone
2
Università degli Studi
di Palermo
Trasformata di Fourier di una immagine
ü La antitrasformata è definita come:
+∞
F
{F (u )} = f ( x ) = ∫ F (u ) exp [ j 2πux ]du
-1
−∞
ü La trasformata e la antitrasformata esistono se f(x) è continua e integrabile
e se F(u) è integrabile.
ü Se f(x) è reale, F(u) è in generale complessa:
F (u ) = ℜ(u ) + jℑ(u ) = F (u ) e jφ (u )
[
]
F (u ) = ℜ (u ) + ℑ (u )
2
2
1
2
è lo spettro di Fourier di f(x), mentre
 ℑ(u ) 
φ (u ) = tan −1 
 ne rappresent a la fase
ℜ
(
u
)


E. Ardizzone
3
Università degli Studi
di Palermo
Trasformata di Fourier di una immagine
ü La potenza spettrale (o densità spettrale) è data da:
P(u ) = F (u ) = ℜ 2 (u ) + ℑ2 (u )
2
ü E' immediata l'estensione al caso bidimensionale:
F { f ( x , y )} = F (u , v ) = ∫
+∞
∫ f ( x, y ) exp[− j 2π (ux + vy )]dxdy
−∞
F -1 {F (u, v )} = f ( x, y ) = ∫
+∞
∫ F (u, v ) exp[ j 2π (ux + vy )]dudv
−∞
ü Le condizioni di esistenza sono la continuità e l’integrabilità della f(x,y) e
l’integrabilità della F(u,v)
ü u e v sono le variabili frequenze, definite nel piano delle frequenze
E. Ardizzone
4
Università degli Studi
di Palermo
Trasformata di Fourier di una immagine
ü Le espressioni dello spettro, della fase e della densità spettrale sono
analoghe a quelle del caso 1-D:
[
]
F (u, v ) = ℜ (u , v ) + ℑ (u , v )
2
2
1
2
 ℑ(u, v ) 
φ (u , v ) = tan −1 

 ℜ(u , v )
P(u , v ) = F (u , v ) = ℜ 2 (u , v ) + ℑ2 (u, v )
2
E. Ardizzone
5
Università degli Studi
di Palermo
La trasformata discreta di Fourier (DFT)
ü Campionando una f(x) continua in N punti distanti ∆x si ottiene:
{ f ( x0 ), f ( x0 + ∆x ), f (x 0 + 2 ∆x ),K, f (x 0 + [N − 1]∆x )}
f(x0+ 2∆x)
f(x)
Pertanto la funzione di variabile
discreta x si può scrivere come:
f(x0+ (N-1) ∆x)
f(x0)
f ( x ) = f ( x0 + x∆x ), x = 0,K , N − 1
f(x0+∆x )
∆x
x0
x0+ ∆x
…..
x0+ 2∆x x0+ (N-1)∆x
x
E. Ardizzone
6
Università degli Studi
di Palermo
La trasformata discreta di Fourier (DFT)
ü In altri termini, nel caso discreto 1-D la f(x) diventa una sequenza di
campioni, uniformemente distanziati di ∆x: f (0), f (1), f (2 ), K , f ( N − 1)
ü Con questa notazione, la coppia di trasformate discrete nel caso 1-D è la
seguente:
1 N −1
F (u ) = ∑ f ( x ) exp  − j 2πux  , per u = 0, K , N − 1

N 
N x= 0
N −1
f ( x ) = ∑ F (u ) exp  j 2πux  ,

N 
u =0
per
x = 0,K , N − 1
ü Anche la frequenza u è una variabile discreta
ü In analogia a quanto visto per la f(x), i valori u = 0, 1, …, N - 1
nella DFT corrispondono ai campioni della trasformata continua per
0, ∆u ,K , ( N − 1)∆u.
E. Ardizzone
7
Università degli Studi
di Palermo
La trasformata discreta di Fourier (DFT)
ü Quindi F(u) rappresenta F(u∆u), così come f(x) rappresenta f(x0 + x∆x).
La differenza è che il campionamento di F(u) comincia nell'origine
dell'asse frequenza
ü La relazione tra ∆u e ∆x è data da ∆u = 1 N ∆x .
ü Nel caso 2-D, la trasformata della sequenza bidimensionale f(x, y) è:
1
F (u , v ) =
MN
M −1 N −1
∑∑
x =0 y = 0
f ( x , y ) exp  − j 2π  ux + vy  ,
N 

 M
con u = 0, K , M − 1 e v = 0, K , N − 1.
ü u e v sono gli indici relativi agli assi frequenze discretizzati, mentre M e N
sono le dimensioni (in pixel) dell'immagine
E. Ardizzone
8
Università degli Studi
di Palermo
La trasformata discreta di Fourier (DFT)
ü Analogamente, la antitrasformata è:
f ( x, y ) =
M −1 N −1
 j 2π  ux + vy  ,
(
,
)
exp
F
u
v
∑
∑
N 

 M
u =0 v =0
con x = 0,K , M − 1 e y = 0, K , N − 1.
ü Il campionamento della f(x,y) ha luogo nei punti di una griglia
bidimensionale, con passi ∆x e ∆y.
ü Per la F(u,v) valgono considerazioni analoghe a quelle fatte nel caso
monodimensionale.
E. Ardizzone
9
Università degli Studi
di Palermo
La trasformata discreta di Fourier (DFT)
ü La relazione fra gli intervalli di campionamento nei due domini è:
1
1
∆v =
M∆x
N∆y
ü Se le immagini sono campionate in una griglia quadrata (M=N, ∆x=∆y):
∆u =
1
F (u , v ) =
N
1
f ( x, y ) =
N
N −1 N −1
∑ ∑ f ( x, y) exp[− j 2π (ux + vy ) N ]
con u , v = 0, K , N − 1
x =0 y =0
N −1 N −1
∑∑ F (u, v) exp[ j 2π (ux + vy ) N ] con x, y = 0,K , N − 1
u =0 v= 0
ü Si noti la presenza del fattore 1/ N in entrambe le espressioni, lecita in
quanto il raggruppamento delle costanti moltiplicative in una coppia di
Fourier è arbitrario.
E. Ardizzone
10
Università degli Studi
di Palermo
La trasformata discreta di Fourier (DFT)
ü Facciamo un esempio di calcolo della DFT nel caso 1-D, per illustrare i
concetti finora esposti, considerando la f(x) seguente:
f(x)
f(x) = f(x0 +x∆x)
4
4
3
3
2
2
0.25 0.50 0.75 1.00 1.25 1.50
x0
x1
x2
x3
x4
x
0
1
2
3
4
x
ü La f(x) viene campionata a partire da x0 = 0.5, con ∆x = 0.25, ottenendo i
cinque campioni mostrati
E. Ardizzone
11
Università degli Studi
di Palermo
La trasformata discreta di Fourier (DFT)
ü Applicando la
1
F (u ) =
N
N −1
∑ f ( x) exp − j 2πux N ,
per u = 0, K , N − 1
x= 0
si ottengono i valori dei cinque campioni della trasformata:
1 4
1
F (0) = ∑ f ( x) exp [0] = [ f ( 0) + f (1) + f ( 2) + f (3) + f ( 4) ]
5 x =0
5
1
[2 + 3 + 3 + 4 + 2.8] = 2.96
5
1
1 4
F (1) = ∑ f ( x) exp − j 2π x =  2 exp [0] + 3 exp − j 2π 
5 5 
5 

5 x=0
=
[
]
+ 3 exp  − j 4π  + 4 exp  − j 6π  + 2.8 exp  − j8π  
5 
5 
5  



E. Ardizzone
12
Università degli Studi
di Palermo
La trasformata discreta di Fourier (DFT)
ü Pertanto:
1
F (1) = 2 + 3 exp − j 2π 
5 

5 
+ 3 exp  − j 4π  + 4 exp − j 6π  + 2.8 exp − j8π   =
5 
5 
5  



= − 0.3742 + j 0.0795
[
[
[
]
]
]
1 4
F ( 2) = ∑ f ( x ) exp − j 4π x = L
5
5 x =0
1 4
F (3) = ∑ f ( x) exp − j 6π x = L
5
5 x=0
1 4
F ( 4) = ∑ f ( x ) exp − j8π x = L
5
5 x =0
E. Ardizzone
13
Università degli Studi
di Palermo
La trasformata discreta di Fourier (DFT)
ü Tutti i valori della f(x) contribuiscono alla costruzione di ciascuno dei
campioni della F(u). Analogamente, tutti i campioni della trasformata
contribuiscone, durante la antitrasformazione, a ciascuno dei valori della f(x)
ü I campioni della F(u) sono in genere complessi, per cui ciascuno di essi ha
un modulo e una fase. Nell’esempio:
F (0) = 2.96
F (1) = ( 0.3742 2 + 0.07952 = 0.3825
etc.
ü Qual è l’interesse nel campione F(0), la componente continua di F(u)?
E. Ardizzone
14
Università degli Studi
di Palermo
La trasformata discreta di Fourier (DFT)
ü Un esempio di trasformata discreta nel caso 1-D: un impulso approssimato
da un rettangolo di lato 10 e altezza 2, su una finestra complessiva di 256
valori di x:
f(x), x = 0, …, 255
|F(u)|, x = 0, …, 255
E. Ardizzone
15
Università degli Studi
di Palermo
La trasformata discreta di Fourier (DFT)
ü Un esempio di trasformata discreta nel caso 2-D: un impulso approssimato da
un piccolo cerchio bianco su fondo nero, in un’immagine di circa 200 x 200
pixel:
|F(u,v)|
f(x,y)
ü I differenti livelli di grigio nell’immagine di intensità dello spettro
evidenziano le ampiezze decrescenti dei diversi lobi
E. Ardizzone
16
Università degli Studi
di Palermo
La trasformata discreta di Fourier (DFT)
ü Un esempio di trasformata di immagine reale (256 x 256 pixel, 256 livelli):
f(x,y)
|F(u,v)|
Φ (u,v)
ü L’informazione associata alla fase è in realtà molto più importante di quanto
non appaia da questo esempio
ü La visualizzazione dello spettro riguarda in realtà non |F(u,v)| ma una sua
versione compressa logaritmicamente, come si vedrà in seguito
E. Ardizzone
17
Università degli Studi
di Palermo
Le immagini di base
ü La DFT nel caso 1-D può essere scritta come:
N −1
1 N −1
−
j
2
π
ux
=
F (u ) = ∑ f ( x ) exp 
f ( x ) g ( x , u ),
∑

N


 x =0
N x=0
dove
1
g ( x , u ) = exp [− j 2πux N ]
N
per u = 0,K , N − 1
è il kernel della trasformazione diretta (in maniera analoga si può
procedere per la antitrasformata), che non dipende dalla f(x)
ü Passando alla notazione vettoriale, la sequenza f(x) può essere
rappresentata dal vettore f, le cui N componenti valgono f(0), f(1), …, f(N1)
E. Ardizzone
18
Università degli Studi
di Palermo
Le immagini di base
ü Il kernel g(x,u) può essere rappresentato come un set di vettori, uno per
ciascun valore di u
ü La prima componente di ciascun vettore è g(0,u), la seconda è g(1,u), etc.,:
1


 exp[− j 2πu N ] 

1
g u =  exp [− j 2πu 2 N ]  , per u = 0,1, K , N − 1
N

M


exp [− j 2πu ( N − 1) N ]
ü La DFT può essere quindi vista come il prodotto interno di f per un set di
N vettori:
F (u ) = (f , g u ), per u = 0,1,K , N − 1
E. Ardizzone
19
Università degli Studi
di Palermo
Le immagini di base
ü Questo significa che ogni campione della trasformata è ottenuto
proiettando il vettore f sul corrispondente vettore gu
ü Gli N vettori gu, detti vettori di base, sono ortogonali l’uno con l’altro, in
quanto:
1 se u = u ′
Perché?
N (g u , g u′ ) = 
0 altrimenti
ü Di conseguenza essi formano una base ortonormale per lo spazio di
Fourier: ogni vettore in questo spazio può essere espresso come una
combinazione lineare dei vettori di base
ü La DFT calcola le proiezioni del vettore f su tutti i vettori di base. Pertanto
i suoi coefficienti sono le componenti di f nelle direzioni dei vettori di
base. In questo senso la DFT può essere considerata una trasformazione di
coordinate
E. Ardizzone
20
Università degli Studi
di Palermo
Le immagini di base
ü Le parti reale ed immaginaria dei vettori di base dello spazio di Fourier
sono funzioni seno e coseno campionate (di differente frequenza),
completamente definite una volta fissato il valore di N
ü Per esempio, le prime 9 funzioni di base (per N = 16) sono:
Parte reale
Parte
immaginaria
E. Ardizzone
21
Università degli Studi
di Palermo
Le immagini di base
ü Si ritrova un risultato già ottenuto: la funzione di base g0 è una costante
reale: la proiezione su questo vettore è la media dei valori di f
ü L’estensione di questi concetti al caso 2-D è immediata: la DFT proietta
l’immagine di ingresso su un set di MN matrici o immagini di base
ü Infatti, ricordando che:
1
F (u , v ) =
MN
M −1 N −1
∑ ∑ f ( x, y) exp − j 2π  ux M + vy N ,
x =0 y = 0
con u = 0, K , M − 1 e v = 0, K , N − 1.
l’espressione del kernel diretto 2-D è la seguente:
g ( x, y , u , v) =
1
exp  − j 2π  ux + vy  
N  
 M
MN

E. Ardizzone
22
Università degli Studi
di Palermo
Le immagini di base
ü Dato che g ( x, y , u , v) = g1 ( x, u ) g 2 ( y , v ) il kernel si dice separabile
ü Ciò permette di scrivere, in forma matriciale, il kernel 2-D come:
g u ,v
1


 exp [− j 2πu M ] 

1 
=
 exp[− j 2πu 2 M ]  ×
MN 

M


 exp[− j 2πu ( M − 1) M ]
MN immagini di base
× [1 exp [− j 2πv N ] exp [− j 2πv 2 N ] L exp [− j 2πv ( N − 1) N ]] =
1
gu ⊗ gv
MN
per u = 0,1,K , M − 1 e v = 0,1, K , N − 1
E. Ardizzone
prodotto esterno
23
Università degli Studi
di Palermo
Le immagini di base
ü In altre parole, se il kernel della trasformazione è separabile, come nel
caso della DFT, le matrici di base sono esprimibili mediante il prodotto
esterno del vettore colonna e del vettore riga che costituiscono i vettori di
base della DFT nel caso 1-D
ü La DFT in 2-D è dunque l’espansione di una matrice, l’immagine f, su un
set di MN matrici (le immagini di base guv), che costituiscono la base
ortonormale di uno spazio vettoriale a MN dimensioni
ü In tale spazio vettoriale, una immagine è un punto. Il vettore che lo
rappresenta è una combinazione lineare delle immagini di base
E. Ardizzone
24
Università degli Studi
di Palermo
Le immagini di base
ü Vediamo come si presentano le immagini di base in un caso semplice. Si
supponga N = M = 4:
g 0, 0
g 0,1
y
1
1
x 


1 1
1 1
[1 1 1 1] =
=
4 1
4 1
1
1


1 1 1
1 1 1

1 1 1
1 1 1
1

1 1
[1 exp [− j 2π / 4] exp [− j 4π / 4] exp [− j 6π / 4]]
=
4 1

1
1

1 1
=
4 1
1

exp [− jπ / 2] exp [− jπ ] exp[− j3π / 2]
1
exp [− jπ / 2] exp [− jπ ] exp[− j3π / 2] 1 1
= 
exp [− jπ / 2] exp [− jπ ] exp[− j3π / 2] 4 1
1
exp [− jπ / 2] exp [− jπ ] exp[− j3π / 2]

E. Ardizzone
− j −1
− j −1
− j −1
− j −1
j
j

j
j 
25
Università degli Studi
di Palermo
Le immagini di base
g 1, 0
1
1
1
1 


1




1 exp[− j 2π / 4]
1 − j − j − j − j 
=
[1 1 1 1] = L =
4 exp[− j 4π / 4]
4  −1 − 1 − 1 −1

 [


]
exp
−
j
6
π
/
4
j
j
j
j




ü g0,0 è una matrice reale (come si poteva prevedere: la proiezione su questa
matrice è la media dei valori di f)
ü g1,0 e g0,1 sono invece matrici complesse, l’una trasposta dell’altra
E. Ardizzone
26
Università degli Studi
di Palermo
Le immagini di base
g 1,1
1




1 exp[− j 2π / 4]
[1 exp [− j 2π / 4] exp [− j 4π / 4] exp [− j 6π / 4]]
=
4 exp[− j 4π / 4]


j
π
exp
[
−
6
/
4
]


j 
 1 − j −1

j
1
1 − j − 1

=L=
j
4  −1
1 − j


1 − j − 1
 j
E. Ardizzone
27
Università degli Studi
di Palermo
Le immagini di base
g 2,0
1
1
1


1 1




1  exp[− j 4π / 4] 
1 − 1 − 1 − 1 − 1
=
[1 1 1 1] = L =
4  exp [− j8π / 4] 
4 1 1
1
1

 [


]
exp
−
j
12
π
/
4
−
1
−
1
−
1
−
1




ü Analogamente si procede per il calcolo delle altre immagini di base. In
conclusione si ha, non tenendo conto del fattore 1/N:
E. Ardizzone
28
Università degli Studi
di Palermo
g 0 ,0
g1, 0
1
1
=
1
1

1 1 1
1 1 1

1 1 1
1 1 1
1
1
− j − j
=
 − 1 −1

j
 j
g 2 ,0
g 3,0
1
−j
−1
j
g 0 ,1
Le immagini di base
1
1
=
1
1

− j −1
− j −1
− j −1
− j −1
j
j

j
j 
g 0 ,2
1
1
=
1
1

− 1 1 − 1
− 1 1 − 1

− 1 1 − 1
− 1 1 − 1
1 
j 
 1 − j −1
 1 − 1 1 − 1




− j −1
j
1
−j
j −j
j 
−j

 g1, 2 = 
 g1,1 = 
1 − j
−1
 −1 j
 −1 1 −1 1 

 j
 j − j
1 − j − 1 
j − j 
j 


1 1 1 1
− 1 − 1 − 1 − 1

=
1 1 1 1
− 1 − 1 − 1 − 1


g 2 ,1
 1 − j −1 j 
−1 j
1 − j


=
 1 − j −1 j 
−1 j
1 − j 

g 2 ,2
g 0 ,3
g1,3
1
1
=
1
1

j
j
j
j
−1 − j
−1 − j

−1 − j
− 1 − j 
j −1 − j
1
− j 1
j −1


=
j 
 −1 − j 1
 j
− 1 − j 1 

 1 − 1 1 − 1
j − 1 − j
1
− 1 1 − 1 1 

j 
 g = −1 − j 1
=

2 ,3
 1 − 1 1 − 1
j − 1 − j
1
− 1 1 − 1 1 



j 
−1 − j 1
1
1
1 
1
j 
 1 − j −1
 1 − 1 1 −1
j − 1 − j
1
 j

j
j
j
 j



1 − j −1
 j

j −j
=
−1 − j 1 

 g = j − j



 − 1 − 1 − 1 − 1  g 3,1 =  − 1 j
1 − j  3,2  − 1 1 − 1 1  g 3,3 =  − 1 − j 1
j



− j −1



− j − j − j − j 
− j 1
j
1 

j −j
j 
− j
j − 1 

E. Ardizzone
29
Università degli Studi
di Palermo
Le immagini di base
ü Note le immagini di base, il calcolo di ogni campione della F(u,v) si riduce
al prodotto punto per punto dell’immagine f per la corrispondente
immagine di base gu,v, alla somma dei risultati così ottenuti ed alla
divisione per il fattore MN
ü Un aspetto interessante è la variabilità dei coefficienti delle immagini di
base, in quanto rappresentativa delle frequenze corrispondenti
ü Questo può essere meglio visto considerando le parti reali e immaginarie
di ciascuna delle matrici di base. A tal fine, utilizzando la notazione:
g u , v = ru , v + ji u , v
si ottiene per esempio:
r0,0
1
1
=
1
1

1 1 1
1 1 1

1 1 1
1 1 1
i 0 ,0
0
0
=
0

0
0 0 0
0 0 0

0 0 0
0 0 0
r0,1
E. Ardizzone
1
1
=
1

1
0 − 1 0
0 − 1 0

0 − 1 0
0 − 1 0
i 0 ,1
0
0
=
0
0

− 1 0 1
− 1 0 1

− 1 0 1
− 1 0 1
30
Università degli Studi
di Palermo
Le immagini di base
ü Le parti reali, per esempio, possono essere rappresentate nel modo illustrato,
dove ogni
blocco consiste di 4 x 4 elementi (x e y variabili tra 0 e 3):
v
0
1
2
3
u
0
L’origine di ogni blocco
è in alto a sinistra
1
Il valore +1 è rappresentato
in bianco, il valore 0 in
grigio, il valore -1 in nero
2
In maniera analoga si possono
rappresentare le parti
immaginarie delle immagini di
base
3
E. Ardizzone
31
Università degli Studi
di Palermo
Le immagini di base
ü Proviamo a calcolare la DFT di una sequenza semplice, utilizzando le
immagini di base
ü Supponiamo che la f(x,y) sia la seguente:
0
0
f=
0
0

0 0 0
1 1 0

1 1 0
0 0 0
ü Poichè:
F (u , v) = (f , g u , v ), per u , v = 0, K , N − 1
si ottiene:
F (0,0) = (f , g 0 , 0 ) = L = 4 F (0,1) = (f , g 0.1 ) = L = −2 − j 2 L L
F (1,0) = (f , g1.0 ) = L = −2 − j 2 L LF (1,2) = (f , g 1.2 ) = L = 0
F (3,3) = (f , g 3, 3 ) = L = − j 2
E. Ardizzone
32
Università degli Studi
di Palermo
Proprietà della trasformata 2-D di Fourier
Range dinamico della DFT
ü Quando si visualizza lo spettro di Fourier come immagine di intensità,
esso manifesta in genere una dinamica molto più grande di quella
riproducibile su un tipico display, per cui solo le parti più luminose dello
spettro risultano visibili
ü Per esempio, lo spettro dell'immagine di Lena varia tra 0 (circa) e
6.47x10 6. Effettuando la normalizzazione necessaria per visualizzarlo con
L = 256 livelli di grigio, solo pochissime parti molto luminose sono
visibili.
ü A ciò si può ovviare, come è noto, mediante una compressione di tipo
logaritmico, visualizzando, invece che lo spettro, una funzione del tipo:
D (u, v ) = c log [1 + F (u , v ) ]
ü c è una costante di scala, che va scelta opportunamente per far ricadere i
valori trasformati nel range voluto, cioè in [0, L-1]
E. Ardizzone
33
Università degli Studi
di Palermo
Proprietà della trasformata 2-D di Fourier
ü Poiché 0 < |F(u,v)| < R = 6.47x106, si ha 0 < D(u,v) <c log(1+R).
ü Dato che R >> 1, come peraltro avviene normalmente per lo spettro di
Fourier di una immagine, si può porre clogR = L-1, da cui
c = (L-1)/logR = 255/log(6.47x106) = 16.26
ü Pertanto D(u,v) ha tutti i valori nell’intervallo [0, 255], e ciò consente la
visualizzazione di molti più dettagli:
f(x,y)
|F(u,v)|
E. Ardizzone
D(u,v)
34
Università degli Studi
di Palermo
Proprietà della trasformata 2-D di Fourier
Separabilità
ü Dato che il kernel della DFT è separabile, i termini sotto la doppia
sommatoria possono essere separati:
N −1
1 N −1
F (u , v) = ∑ exp[− j 2πu x N ]∑ f ( x, y ) exp [− j 2πvy N ]
N x =0
y =0
con u, v = 0, 1, ..., N - 1. Analogamente per f(x,y):
N −1
1 N −1
f ( x, y ) = ∑ exp [ j 2πu x N ]∑ f ( x, y ) exp [ j 2πvy N ]
N u =0
v =0
con x,y = 0, 1, ..., N - 1
ü Come già detto a proposito delle immagini di base, il principale vantaggio
delle proprietà di separabilità è che la F(u,v) può essere ottenuta
applicando in due passi successivi la trasformata 1-D, come risulta
evidente scrivendo:
E. Ardizzone
35
Università degli Studi
di Palermo
Proprietà della trasformata 2-D di Fourier
1
F (u , v ) =
N
dove:
N −1
∑ F (x, v) exp[− j 2πu x N ]
x= 0
1
F ( x , v) = N 
N
N −1
∑
y=0

f ( x, y ) exp[− j 2πv y N ]

ü Per ogni valore di x, l'espressione in parentesi è una trasformata 1-D nel
dominio di v (con v = 0, 1, ..., N-1)
ü Pertanto la funzione 2-D F(x,v) è ottenuta effettuando una trasformata
lungo ogni riga della f(x,y) e moltiplicando il risultato per N
ü F(u,v) è a questo punto calcolata effettuando una trasformata lungo ogni
colonna di F(x,v)
E. Ardizzone
36
Università degli Studi
di Palermo
Proprietà della trasformata 2-D di Fourier
ü Riassumendo:
(0,0)
N -1
y
(0,0)
N-1
Trasform. di riga
f ( x,y)
N -1
x
F (x,v)
Moltipl. per N
v
(0,0)
Trasf. di colonna
N -1
v
F ( u,v )
N-1
u
N -1
x
ü Lo stesso risultato può essere ottenuto trasformando prima per colonne e
poi per righe
ü Considerazioni del tutto analoghe possono essere fatte
trasformazione inversa
E. Ardizzone
per la
37
Università degli Studi
di Palermo
Proprietà della trasformata 2-D di Fourier
Traslazione
ü Le proprietà di traslazione della coppia di trasformate di Fourier sono:
f ( x, y ) exp [ j 2π (u 0 x + v0 y ) / N ] ⇔ F (u − u 0 , v − v0 )
e
f ( x − x0 , y − y 0 ) ⇔ F (u, v ) exp [− j 2π (ux0 + vy 0 ) / N ]
ü In altre parole, moltiplicando f(x,y) per l’esponenziale mostrato e
trasformando il prodotto, si ottiene una traslazione dell’origine del piano
delle frequenze nel punto (u0,v0)
ü Analogamente, moltiplicando F(u,v) per l’esponenziale mostrato e
antitrasformando il prodotto, si ottiene uno spostamento dell’origine del
piano spaziale nel punto (x0,y0)
E. Ardizzone
38
Università degli Studi
di Palermo
Proprietà della trasformata 2-D di Fourier
ü Per u 0 = v0 = N 2:
exp [ j 2π (u 0 x + v0 y ) N ] = exp[ jπ(x+y)] = (-1)
x+y
e quindi:
f(x,y)(-1)
x+y
⇔ F(u- N 2 ,v- N 2 )
ü Quindi la trasformata di Fourier può essere riferita al centro del piano delle
frequenze, semplicemente moltiplicando f(x,y) per (-1)x+y prima della
trasformazione
ü Si noti inoltre che lo spostamento di f(x,y) di una quantità (x0,y0) non
influenza lo spettro, in quanto:
F(u,v) exp [− j 2π (ux0 + vy0 ) N ] = F(u,v)
ü Queste proprietà vengono utilizzate per una migliore visualizzazione dello
spettro, come vedremo
E. Ardizzone
39
Università degli Studi
di Palermo
Proprietà della trasformata 2-D di Fourier
Periodicità e simmetria coniugata
ü Nel caso 1-D, la DFT e la sua inversa sono periodiche con periodo pari a
N. Infatti per il kernel diretto vale la seguente relazione:
 − j 2πux 
 − j 2π (u + kN ) x 
exp 
=
exp


N
 N 
per qualunque k intero. Pertanto, in particolare, F(u) = F(u + N).
ü La stessa periodicità vale per il kernel inverso, per cui f(x) = f(x + N) dopo
la antitrasformazione
ü Questo significa che benché nella definizione della DFT ci si limiti a
considerare vettori di dimensione N, in realtà si potrebbero calcolare
trasformazioni dirette e inverse senza restrizioni nei valori dell’indice, che
darebbero luogo a campioni di uguale valore ad ogni intervallo pari a N
E. Ardizzone
40
Università degli Studi
di Palermo
Proprietà della trasformata 2-D di Fourier
ü Passando al caso 2-D, si ha per ovvia estensione:
F (u , v) = F (u + hM , v + kN )
con h e k interi qualunque. In particolare, e se M = N:
F (u , v ) = F (u + N , v ) = F (u , v + N ) = F (u + N , v + N )
ü La periodicità della DFT dà luogo ad una interessante interpretazione
geometrica. Nel caso 1-D, il campione F(N) = F(0) è ovviamente contiguo
a F(N-1). I campioni possono quindi essere pensati calcolati per valori
disposti non su una linea retta ma su un cerchio, il cosiddetto anello di
Fourier
ü Nel caso 2-D, la matrice rappresentativa dell’immagine è proiettata sul
cosiddetto toro di Fourier
E. Ardizzone
41
Università degli Studi
di Palermo
Proprietà della trasformata 2-D di Fourier
ü Anche se la F(u,v) si ripete infinite volte, solo gli M x N valori compresi in
un solo periodo sono necessari per ottenere f(x,y) da F(u,v)
ü Quindi solo un periodo della trasformata è necessario per specificare
completamente F(u,v) nel dominio delle frequenze
E. Ardizzone
42
Università degli Studi
di Palermo
Proprietà della trasformata 2-D di Fourier
ü Se f(x) è reale, F(u) è inoltre dotata di simmetria coniugata:
F (u ) = F * ( − u )
essendo F*(u) la complessa coniugata di F(u)
ü Per lo spettro si può dunque scrivere:
F (u ) = F ( − u )
ü Nel caso 2-D si ha rispettivamente:
F (u, v ) = F * ( −u ,−v)
F (u, v ) = F ( −u ,−v )
ü La proprietà di periodicità indica che F(u) ha un periodo pari a N, e la
proprietà di simmetria mostra che il modulo della DFT è centrato
nell’origine
E. Ardizzone
43
Università degli Studi
di Palermo
Proprietà della trasformata 2-D di Fourier
ü Pertanto nell’intervallo [0, N-1] sono in realtà presenti due semiperiodi
della trasformata, costituiti, rispettivamente, dai campioni da 0 a N/2, e
dalla replica degli N/2 campioni presenti nel semiperiodo a sinistra
dell’origine:
|F(u)|, u = 0, …, 255
f(x), x = 0, …, 255
E. Ardizzone
44
Università degli Studi
di Palermo
Proprietà della trasformata 2-D di Fourier
ü Per visualizzare un intero periodo basta spostare l’origine dell’asse u nel
punto u = N/2. A tal fine si può sfruttare la proprietà di traslazione, e
quindi basta moltiplicare la f(x) per (-1)x prima della trasformazione, come
visto in precedenza:
E. Ardizzone
45
Università degli Studi
di Palermo
Proprietà della trasformata 2-D di Fourier
ü Considerazioni analoghe valgono per la DFT 2-D. In questo caso lo shift
dell’origine del piano delle frequenze va fatto nel punto di coordinate
(N/2,N/2), cioè nel centro del piano delle frequenze. Questo può essere
realizzato moltiplicando la f(x,y) per (-1)x+y
Originale
Spettro non traslato
E. Ardizzone
Spettro traslato
46
Università degli Studi
di Palermo
Proprietà della trasformata 2-D di Fourier
Rotazione
ü Rappresentando f(x,y) e F(u,v), rispettivamente, nelle coordinate polari r e
θ, ω e φ:
x = r cos θ y = r sin θ u = ω cos φ v = ω sin φ
si ottengono f(r,θ) e F(ω,φ). E’ facile verificare che si ha anche:
f ( r ,θ + θ 0 ) ⇔ F (ω , φ + θ 0 )
ü In altre parole, la rotazione di f(x,y) di un angolo θ0 ruota anche F(u,v) di
una quantità uguale, e viceversa
E. Ardizzone
47
Università degli Studi
di Palermo
Proprietà della trasformata 2-D di Fourier
Valore medio
ü Per una f(x,y) discreta, il valore medio è solitamente definito come:
1
f ( x, y ) = 2
N
N −1 N −1
∑ ∑ f ( x, y)
x =0 y =0
ü D’altro canto, dalla definizione di DFT, per u = v = 0 si ottiene:
1
F (0,0) =
N
N −1 N −1
∑∑ f ( x, y )
x=0 y =0
ü Quindi:
f ( x, y ) =
1
F ( 0,0)
N
E. Ardizzone
48
Università degli Studi
di Palermo
Proprietà della trasformata 2-D di Fourier
Importanza di modulo e fase
ü Come si è visto, la trasformata di Fourier può essere considerata un
cambiamento reversibile del sistema di coordinate in cui l’immagine è
rappresentata
ü Durante la trasformazione, l’informazione è completamente conservata, e
infatti l’immagine originale può essere perfettamente ripristinata mediante
una trasformazione inversa
ü E’ come se nello spazio di Fourier l’immagine fosse osservata da un
differente punto di vista: ogni punto nel dominio trasformato contiene due
“pezzi” di informazione, uno relativo alla ampiezza e uno relativo alla fase
(cioè alla posizione relativa) di una struttura periodica
ü E’ pertanto naturale chiedersi se modulo e fase abbiano un contenuto
informativo di importanza paragonabile, o quale dei due si debba
considerare prevalente
E. Ardizzone
49
Università degli Studi
di Palermo
Proprietà della trasformata 2-D di Fourier
ü E’ utile a tale scopo il seguente esperimento: date le due immagini di sinistra, se ne
calcolano le DFT. Si ricostruiscono quindi le due immagini scambiandone le fasi;
sulla destra sono mostrate le immagini così ottenute
modulo
fase
fase
modulo
E. Ardizzone
50
Università degli Studi
di Palermo
Proprietà della trasformata 2-D di Fourier
ü Come si vede, è la fase che contiene l’informazione essenziale per la
struttura dell’immagine, quella cioè relativa al dove le strutture periodiche
evidenziate nella DFT sono collocate
ü L’ampiezza, invece, contiene solo l’informazione relativa al fatto che una
certa struttura periodica è presente nell’immagine
ü Queste considerazioni possono anche essere riferite alle proprietà di
traslazione: uno spostamento nel dominio spaziale implica una variazione
di fase, mentre l’ampiezza non cambia
E. Ardizzone
51
Università degli Studi di Palermo
Elaborazione delle Immagini Digitali
Parte H
Prof. Edoardo Ardizzone
A.A. 2001-2002
Università degli Studi
di Palermo
Convoluzione
9 Insieme con la correlazione, costituisce il legame essenziale tra il dominio
spaziale e il dominio della frequenza, oltre che la base di molti algoritmi di
image processing
9 Date due funzioni continue 1-D, f(x) e g(x), la loro convoluzione è definita
da:
∞
f ( x) ∗ g ( x) = ∫ f (α ) g ( x − α )dα
−∞
dove α è una variabile di comodo per l’integrazione
9 A titolo di esempio, consideriamo le due funzioni seguenti:
E. Ardizzone
2
Università degli Studi
di Palermo
Convoluzione
9 Prima dell’integrazione, occorre costruire la g(x-α). A tal fine, bisogna
ribaltare g(α) rispetto all’origine, in modo da ottenere g(-α), e quindi
traslare la funzione così ottenuta di una quantità x:
9 A questo punto, per ciascun valore di x, f(α) deve essere moltiplicata per il
corrispondente valore di g(x-α), ed infine il prodotto così ottenuto (area
grigia nelle figure seguenti) deve essere integrato:
E. Ardizzone
3
Università degli Studi
di Palermo
Convoluzione
9 Per x interno all’intervallo [0, 1], il prodotto è 0 per α esterno all’intervallo
[0, x]. Il risultato dell’integrazione è quindi x/2 per 0 ≤ x ≤ 1. Invece, per x
interno all’intervallo [1, 2], il risultato è 1 - x/2. Infine, il prodotto è 0 per x
esterno all’intervallo [0, 2]
9 Riassumendo, si ha:
0 ≤ x ≤1
 x/2

f ( x) ∗ g ( x) = 1 − x 2 1 ≤ x ≤ 2
 0
altrimenti

E. Ardizzone
4
Università degli Studi
di Palermo
Convoluzione
9 E’ importante analizzare il caso particolare della convoluzione di una f(x)
con funzioni di tipo impulsivo
9 L’impulso δ(x - x0) è definito dalla relazione:
∫
∞
−∞
f ( x)δ ( x − x0 ) dx = f ( x0 )
e può essere considerato, come è noto, come avente area unitaria in un
intorno infinitesimo di x0 e area nulla altrove. Cioè:
∫
∞
−∞
x0+
δ ( x − x0 ) dx = ∫ − δ ( x − x0 )dx = 1
x0
9 Si può dire pertanto che δ(x - x0) è localizzato in x = x0, e che l’ampiezza
dell’impulso è determinata dal valore di f(x) in x = x0
E. Ardizzone
5
Università degli Studi
di Palermo
Convoluzione
9 Se per esempio f(x) = A, Aδ(x - x0) è un impulso di ampiezza A localizzato
in x = x0:
A
x0
9 Un esempio interessante di convoluzione è quella tra una funzione f(x) e
un treno di impulsi. In questo caso, il risultato è la replica della f(x) nei
punti di localizzazione degli impulsi:
g(x)=δ (x+T)+δ (x)+δ (x-T)
f(x)
f ( x) ∗ g ( x)
A
A
a
x
∗
-T
T
E. Ardizzone
=
x
-T
a T
x
6
Università degli Studi
di Palermo
Teorema della convoluzione
9 L’importanza della convoluzione, per quanto riguarda l’analisi nel
dominio della frequenza, sta nel fatto che:
f ( x ) ∗ g ( x) ⇔ F (u )G (u )
9 La convoluzione di due funzioni, f(x) e g(x), ha come trasformata di
Fourier il prodotto delle trasformate delle due funzioni
9 In altre parole, la convoluzione nel dominio spaziale corrisponde al
prodotto nel dominio della frequenza. Analogamente, la convoluzione nel
dominio della frequenza corrisponde al prodotto nel dominio spaziale:
f ( x ) g ( x ) ⇔ F (u ) ∗ G (u )
9 Le due relazioni costituiscono il teorema della convoluzione
E. Ardizzone
7
Università degli Studi
di Palermo
Convoluzione discreta
9 Passando al caso discreto 1-D, supponiamo che f(x) e g(x) siano due
9
9
9
9
sequenze di, rispettivamente, A e B valori
Come si è visto, nel caso discreto le DFT e le loro inverse sono funzioni
periodiche
Per soddisfare questa condizione, la formulazione della convoluzione
discreta assume pertanto che f(x) e g(x) siano periodiche con un certo
periodo M, di valore tale che:
M≥A+B-1
In tali ipotesi, anche la convoluzione è periodica, con lo stesso periodo M
Se la condizione precedente non è soddisfatta, i periodi della convoluzione
si sovrappongono (errore di wraparound, M < A + B - 1) oppure risultano
adiacenti (M = A + B - 1)
E. Ardizzone
8
Università degli Studi
di Palermo
Convoluzione discreta
9 In pratica, dato che M deve essere maggiore sia di A che di B, basta
incrementare la lunghezza delle sequenze discrete, aggiungendo dei valori
pari a 0 (sequenze estese):
 f ( x)
f e ( x) = 
 0
0 ≤ x ≤ A −1
A ≤ x ≤ M −1
 g ( x) 0 ≤ x ≤ B − 1
g e ( x) = 
B ≤ x ≤ M −1
 0
9 Sulla base di queste estensioni, la convoluzione discreta di fe(x) e ge(x) è
così definita:
f e ( x) ∗ g e ( x) =
M −1
∑f
e
(m) g e ( x − m),
m =0
per x = 0,1, K, M − 1
9 La convoluzione è pertanto una funzione discreta periodica, un intero
periodo della quale è descritto da un array di lunghezza M
E. Ardizzone
9
Università degli Studi
di Palermo
Convoluzione discreta
9 Il teorema della convoluzione discreta è espresso dalle relazioni già viste:
f ( x ) ∗ g ( x) ⇔ F (u )G (u )
x,u = 0,1, …, M-1
f ( x ) g ( x ) ⇔ F (u ) ∗ G (u )
9 Naturalmente, per evitare l’errore di wraparound, le sequenze discrete
devono essere estese in modo che M rispetti la condizione già nota:
fe(x)
ge(x)
∗
1
A=B
M = 2A - 1
=
1/2
A
1
M
2
x
f e ( x) ∗ g e ( x)
1/2
A
1
2
M
E. Ardizzone
x
1
2
x
M
10
Università degli Studi
di Palermo
Convoluzione 2-D
9 Nel caso 2-D, la convoluzione di due funzioni continue, f(x,y) e g(x,y), è
definita come:
f ( x, y ) ∗ g ( x , y ) = ∫
∞
∫ f (α , β ) g ( x − α , y − β )dαdβ
−∞
9 Il teorema della convoluzione 2-D è espresso dalle relazioni:
f ( x, y ) ∗ g ( x, y ) ⇔ F (u , v)G (u , v)
f ( x, y ) g ( x, y ) ⇔ F (u , v) ∗ G (u , v)
9 Le fasi di ribaltamento, traslazione e moltiplicazione richieste dalla
convoluzione 2-D possono essere schematizzate nel modo seguente:
E. Ardizzone
11
Università degli Studi
di Palermo
Convoluzione 2-D
Al variare di x e y, la
convoluzione 2-D è
una superficie la cui
forma dipende dalla
natura delle funzioni
utilizzate
E. Ardizzone
12
Università degli Studi
di Palermo
Convoluzione 2-D discreta
9 La formulazione della convoluzione 2-D discreta assume che f(x,y) e g(x,y)
siano due array discreti di dimensione A x B e C x D, rispettivamente
9 Come nel caso 1-D, questi array devono essere considerate periodici, con
periodo M ed N, rispettivamente, lungo le direzioni x ed y
9 L’errore di wraparound non si verifica se:
M ≥ A + C - 1 ed N ≥ B + D - 1
9 Le sequenze periodiche sono formate estendendo f(x,y) e g(x,y) nel modo
seguente:
 f ( x, y )
f e ( x, y ) = 
 0
0 ≤ x ≤ A −1 e 0 ≤ y ≤ B −1
A ≤ x ≤ M −1 o B ≤ y ≤ N −1
0 ≤ x ≤ C −1 e 0 ≤ y ≤ D −1
 g ( x, y )
g e ( x, y ) = 
C ≤ x ≤ M −1 o D ≤ y ≤ N −1
 0
E. Ardizzone
13
Università degli Studi
di Palermo
Convoluzione 2-D discreta
9 La convoluzione discreta 2-D di fe(x,y) e ge(x,y) è così definita:
f e ( x, y ) ∗ g e ( x, y ) =
M −1 N −1
∑∑ f
e
(m, n) g e ( x − m, y − n)
m=0 n=0
per x = 0, 1, …, M - 1 e y = 0, 1, …, N - 1
9 Questo array M x N è in realtà un periodo della convoluzione discreta 2-D
9 Se le condizioni precedenti su M ed N non sono soddisfatte, i periodi della
convoluzione si sovrappongono (errore di wraparound)
9 Il teorema della convoluzione discreta 2-D è espresso dalle relazioni già
viste:
f ( x, y ) ∗ g ( x, y ) ⇔ F (u , v)G (u , v)
f ( x, y ) g ( x, y ) ⇔ F (u , v) ∗ G (u , v)
dove u = 0, 1, …, M - 1 e v = 0, 1, …, N - 1, e le sequenze sono estese se si
vuole evitare l’errore di wraparound
E. Ardizzone
14
Università degli Studi
di Palermo
Applicazioni della convoluzione
9 Supponiamo di effettuare, nel caso continuo, la convoluzione tra una
funzione rumorosa e un impulso rettangolare di larghezza finita:
g(x)
f(x)
1
x
-1/2
1/2
x
9 Quando la convoluzione procede, da sinistra verso destra, per ogni valore
di x viene in pratica effettuata una media locale (data dalla integrazione,
cioè dalla somma, del prodotto di f e g), su un intervallo di ampiezza
unitaria
E. Ardizzone
15
Università degli Studi
di Palermo
Applicazioni della convoluzione
9 La media locale sopprime le oscillazioni rapide ovvero i dettagli, cioè le
componenti di alta frequenza del segnale, al contempo mantenendone la
forma, cioè le componenti di bassa frequenza
9 Quindi la g(x) ha il comportamento tipico di un filtro passa-basso: in pratica
ha effettuato lo smoothing della funzione rumorosa
9 Consideriamo quest’altro esempio, in cui la f(x) rappresenta una transizione
piuttosto lenta da valori bassi a valori alti, tipicamente un contorno o edge, e
la g(x) presenta un lobo centrale positivo e due laterali negativi:
f(x)
g(x)
x
x
E. Ardizzone
16
Università degli Studi
di Palermo
Applicazioni della convoluzione
9 Il risultato della convoluzione
f(x)
x
g(x)
x
f ( x) ∗ g ( x)
x
manifesta una pendenza maggiore di
quella della f(x), con una
evidenziazione delle componenti di
alta frequenza del segnale, e una
sovraelongazione (ringing) sui due lati
dell’edge
9 Quindi la g(x) ha il comportamento
tipico di un filtro passa-alto: in pratica
ha effettuato lo sharpening della f(x)
9 Le due g(x) possono essere in realtà
considerate delle tipiche risposte
impulsive di filtri, rispettivamente
passa-basso e passa-alto
E. Ardizzone
17
Università degli Studi
di Palermo
Convoluzione e filtraggio spaziale
9 Le precedenti considerazioni non sono inattese: tornando al caso discreto
2-D, la definizione di convoluzione
g ( x, y ) = f e ( x, y ) ∗ he ( x, y ) =
M −1 N −1
∑∑ f
e
(m, n)he ( x − m, y − n)
m=0 n =0
per x = 0, 1, …, M - 1 e y = 0, 1, …, N - 1, ricorda da vicino l’operazione
di una maschera spaziale, la cui uscita in ogni punto dell’immagine, come
è noto, vale
9
R = w1 z1 + w2 z 2 + L + w9 z 9 = ∑ wi z i
i =1
E. Ardizzone
18
Università degli Studi
di Palermo
Convoluzione e filtraggio spaziale
9 Infatti l’espressione he(x - m, y - n), per ogni coppia di coordinate (x,y) in
cui va calcolato il valore dell’uscita g, indica che rispetto agli assi m e n la
h deve essere ribaltata e poi traslata di x posizioni lungo m e di y posizioni
lungo n
9 Successivamente i valori della f vengono moltiplicati per quelli della h
ribaltata e traslata, e la loro somma così “pesata” contribuisce al valore
dell’uscita g. Naturalmente si sommano solo i termini corrispondenti agli
indici per i quali il prodotto è diverso da zero, per esempio nove per una
maschera 3 x 3 per ogni coppia (x, y)
9 La sola differenza tra l’operazione di convoluzione e quella di filtraggio
spaziale precedentemente definita sta nel fatto che quest’ultima non
prevede il ribaltamento
E. Ardizzone
19
Università degli Studi
di Palermo
Convoluzione e filtraggio spaziale
9 In sostanza le due operazioni coincidono se la maschera è simmetrica
rispetto al suo punto centrale, come avviene per la maggior parte dei filtri
adoperati per il miglioramento di qualità
9 Per i motivi suddetti le maschere spaziali sono anche dette maschere di
convoluzione
9 Quanto detto risolve il problema del calcolo dell’uscita del filtro spaziale
ai bordi dell’immagine?
9 Si può osservare ancora che alla operazione così definita nel dominio
spaziale:
g ( x, y ) = f ( x, y ) ∗ h ( x, y )
per effetto del teorema della convoluzione corrisponde, nel dominio delle
frequenze spaziali, l’operazione:
G (u , v ) = F (u , v) H (u , v)
9 Questa è la base teorica delle tecniche di elaborazione nel dominio della
frequenza, basate sulla manipolazione della DFT dell’immagine
E. Ardizzone
20
Università degli Studi
di Palermo
Convoluzione e filtraggio spaziale
9 Il teorema della convoluzione costituisce, tra l’altro, un metodo per il
calcolo della convoluzione: basta calcolare le DFT delle sequenze estese,
per esempio utilizzando un algoritmo di trasformazione veloce (FFT),
effettuarne il prodotto, e antitrasformare il risultato di quest’ultimo
9 Questo metodo può risultare più efficiente del calcolo diretto dalla
definizione di convoluzione
9 Nella terminologia della teoria dei sistemi lineari, la h(x,y) definisce un
filtraggio lineare e spazio-invariante
9 L’attributo lineare si riferisce al fatto che vale per l’operazione il principio
di sovrapposizione degli effetti: date due immagini, f1 e f2, il cui filtraggio
mediante la h dà luogo alle immagini g1 e g2, il risultato del filtraggio della
combinazione lineare a1 f1 + a2 f2 è la combinazione lineare a1 g1 + a2 g2
E. Ardizzone
21
Università degli Studi
di Palermo
Risposta impulsiva e funzione di trasferimento
9 L’attributo spazio-invariante si riferisce al fatto che la maschera è la stessa
9
9
9
9
per tutti i punti (x,y): al variare delle coordinate la maschera trasla
semplicemente, mantenendo inalterati forma, dimensioni e pesi
La h(x,y) è detta risposta impulsiva o risposta all’impulso o al campione
unitario, in quanto il risultato g dell’operazione si riduce proprio ad h
quando f è una sequenza che vale 1 nell’origine e 0 altrove
Come è noto, la risposta impulsiva caratterizza completamente il
comportamento di un sistema lineare spazio-invariante
Nel dominio della frequenza, alla risposta impulsiva corrisponde la
funzione di trasferimento del filtro H(u,v)
Infatti, la trasformata di Fourier dell’impulso unitario è semplicemente 1,
quindi G(u,v) = H(u,v) in questo caso, per cui antitrasformando la risposta
si ottiene la h(x,y)
E. Ardizzone
22
Università degli Studi
di Palermo
Risposta impulsiva e funzione di trasferimento
9 Nella terminologia dell’ottica, invece, la H(u,v) è chiamata funzione di
trasferimento ottica, mentre la h(x,y) è chiamata point spread function
(PSF) o funzione di blurring
9 Questo nome è dovuto al fatto che un sistema ottico risponde ad un
impulso (un punto luminoso) dando luogo ad un effetto di blurring
(spreading), cioè tanto più allargando il punto quanto minore è la qualità
del sistema ottico
E. Ardizzone
23
Università degli Studi
di Palermo
Correlazione
9 Date due funzioni continue 1-D, f(x) e g(x), la loro correlazione è definita
da:
f ( x) o g ( x) = ∫
∞
−∞
f * (α ) g ( x + α )dα
doveα è una variabile di comodo per l’integrazione e f * è la complessa
coniugata di f
9 La differenza con la convoluzione è che la g(x) non è ribaltata attorno
all’origine. Pertanto il calcolo della correlazione richiede, per ciascun
valore di x, solo lo scorrimento di g(x) rispetto a f(x) e l’integrazione del
prodotto così ottenuto (area grigia nelle figure seguenti):
E. Ardizzone
24
Università degli Studi
di Palermo
Correlazione
E. Ardizzone
25
Università degli Studi
di Palermo
Correlazione
9 La formulazione della correlazione discreta assume ancora che f(x) e g(x)
siano estese e periodiche con un certo periodo M, di valore opportuno:
f e ( x) o g e ( x) =
M −1
∑
f e* (m) g e ( x + m),
m=0
per x = 0,1, K, M − 1
9 Nel caso 2-D, la correlazione continua è:
f ( x , y ) o g ( x, y ) = ∫
∞
∫
f * (α , β ) g ( x + α , y + β )dαdβ
−∞
mentre la correlazione discreta è:
f e ( x, y ) o g e ( x, y ) =
M −1 N −1
∑∑
f e* (m, n) g e ( x + m, y + n)
m=0 n=0
per x = 0, 1, …, M - 1 e y = 0, 1, …, N - 1
9 Per le funzioni estese, i periodi, etc. valgono le stesse considerazioni viste
per la convoluzione
E. Ardizzone
26
Università degli Studi
di Palermo
Correlazione
9 Il teorema della correlazione 2-D, sia nel caso continuo che nel caso
discreto, è espresso dalle relazioni:
f ( x, y ) o g ( x, y ) ⇔ F * (u , v )G (u , v )
f * ( x , y ) g ( x , y ) ⇔ F (u, v ) o G (u , v )
dove u = 0, 1, …, M - 1 e v = 0, 1, …, N - 1, e le sequenze sono estese e
periodiche
9 La correlazione è uno strumento largamente utilizzato nell’analisi di
immagini, soprattutto per algoritmi di filtraggio (si veda quanto già detto a
proposito della convoluzione) e di matching di immagini
E. Ardizzone
27
Università degli Studi
di Palermo
Campionamento di funzioni 1-D
9 La digitalizzazione di una immagine continua comporta ovviamente una
enorme perdita di informazione. E’ quindi importante analizzare più a
fondo il processo di campionamento, per determinare in quali condizioni
una immagine continua possa essere interamente ricostruita (cioè senza
perdita di informazione) a partire da un insieme di valori campionati
9 Supponiamo che la f(x) seguente, che si estende da - ∞ a ∞, abbia la
trasformata di Fourier non nulla nell’intervallo [- W, W], sia cioè una
funzione a banda limitata:
F(u)
f(x)
x
-W
W
u
9 Il campionamento può essere effettuato moltiplicando la f(x) per una
funzione di campionamento s(x), cioè un treno di impulsi distanziati di ∆x,
la cui trasformata è ancora un treno di impulsi, distanziati di 1/ ∆x:
E. Ardizzone
28
Università degli Studi
di Palermo
Campionamento di funzioni 1-D
F(u)
f(x)
x
-W
x
−1/∆x
s(x)
∆x
s(x)f(x)
W
S(u)
1/∆x
u
u
S (u ) ∗ F (u )
−1/∆x
x
1/2∆x 1/∆x
u
9 Dal teorema della convoluzione, il prodotto nel dominio spaziale
corrisponde alla convoluzione nel dominio della frequenza
E. Ardizzone
29
Università degli Studi
di Palermo
Campionamento di funzioni 1-D
9 Dato che la convoluzione di una funzione con una sequenza di impulsi
9
9
9
9
produce la replica della funzione nei punti in cui sono localizzati gli
impulsi, la trasformata della funzione campionata è quella mostrata
Come si vede, essa risulta periodica, con periodo pari a 1/∆x, e i singoli
periodi possono parzialmente sovrapporsi, in dipendenza del valore di ∆x
Nell’esempio, si ha una sovrapposizione (nel primo periodo e nel
semipiano u > 0), centrata sul valore u = 1/2∆x, se W > 1/2∆x
Pertanto il passo di campionamento, per evitare la sovrapposizione dei
periodi della convoluzione, deve rispettare la condizione (teorema del
campionamento di Whittaker-Shannon):
1
1
W≤
, cioè ∆x ≤
2W
2∆x
Diminuendo ∆x si ottiene infatti una separazione dei periodi che impedisce
la sovrapposizione. Per esempio, dimezzando ∆x si avrebbe:
E. Ardizzone
30
Università degli Studi
di Palermo
Campionamento di funzioni 1-D
s(x)f(x)
∆x/2
S (u ) ∗ F (u )
x
−2/∆x
1/∆x
u
2/∆x
9 L’importanza di questa operazione sta nel fatto che adesso la trasformata
G(u)
può essere moltiplicata per la funzione:
1
1 − W ≤ u ≤ W
G (u ) = 
altrimenti
0
-W
u
W
9 Questo rende possibile isolare perfettamente F(u), e quindi ricostruire per
antitrasformazione la f(x):
f(x)
G (u )[S (u ) ∗ F (u )] = F (u )
x
E. Ardizzone
31
-W
W
u
Università degli Studi
di Palermo
Campionamento di funzioni 1-D
9 Anche se tutta l’informazione nel dominio della frequenza è contenuta (per
9
9
9
9
una funzione a banda limitata) nell’intervallo [-W, W], la ricostruzione
esatta della f(x) continua è possibile solo se la condizione di WhittakerShannon è soddisfatta
In caso contrario, la trasformata nell’intervallo di interesse è modificata
dal contributo dei periodi adiacenti (fenomeno di aliasing), e questo
provoca la distorsione del segnale ricostruito
Si è finora supposta illimitata la durata della f(x), e di conseguenza
infinitamente esteso l’intervallo di campionamento
E’ più interessante il caso pratico di una funzione campionata in una
regione di interesse di dimensione finita, come avviene per una immagine
La situazione è dunque la seguente, supponendo soddisfatto il teorema del
campionamento:
E. Ardizzone
32
Università degli Studi
di Palermo
Campionamento di funzioni 1-D
s(x)f(x)
S (u ) ∗ F (u )
x
−1/∆x
-W
W
u
1/∆x
9 Il campionamento in un intervallo di dimensione finita [0, X] può essere
rappresentato matematicamente moltiplicando la funzione campionata per
una finestra h(x) avente ampiezza unitaria in [0, X] e nulla altrove:
H(u)
h(x)
1
X
h(x)[s(x)f(x)]
x
u
-1/X 1/X
H (u ) ∗ [S (u ) ∗ F (u )]
x
u
E. Ardizzone
33
Università degli Studi
di Palermo
Campionamento di funzioni 1-D
9 La trasformata di questo prodotto, applicando il teorema della convoluzione,
è la convoluzione di H(u) e della funzione periodica ottenuta in precedenza
9 Poiché H(u) ha componenti in frequenza che si estendono all’infinito,
questa convoluzione introduce una distorsione nella rappresentazione nel
dominio della frequenza di una funzione campionata in un intervallo finito,
come è qualitativamente mostrato nella figura precedente
9 Di conseguenza, anche se il teorema del campionamento è soddisfatto, la
ricostruzione esatta di una funzione campionata in un intervallo finito non è
in generale possibile. La distorsione è tanto più severa quanto meno estesa è
la finestra di campionamento
9 La trasformata di Fourier della funzione originale può essere completamente
isolata solo se f(x) è a banda limitata e periodica, con un periodo uguale a X
E. Ardizzone
34
Università degli Studi
di Palermo
Campionamento di funzioni 2-D
9 Gli stessi concetti utilizzati nel caso 1-D possono essere applicati a funzioni
2-D. Il processo di campionamento può essere formulato matematicamente
usando la funzione impulsiva 2-D δ (x,y), definita come:
∞
∫ ∫ f ( x, y)δ ( x − x , y − y
0
0
)dxdy = f ( x0 , y0 )
−∞
9 Una funzione di campionamento 2-D consiste di un treno di impulsi, distanti
∆x lungo x e ∆y lungo y:
s(x,y)
y
∆x
x
∆y
E. Ardizzone
Una funzione continua f(x,y)
può essere campionata
formando il prodotto
s(x,y)f(x,y)
35
Università degli Studi
di Palermo
Campionamento di funzioni 2-D
9 L’operazione equivalente nel dominio delle frequenze è la convoluzione di
S(u,v) e F(u,v), dove S(u,v) è un treno di impulsi separati da 1/∆x e 1/∆y,
rispettivamente, nelle direzioni u e v
9 Se f(x,y) è a banda limitata (cioè la sua trasformata di Fourier è nulla
all’esterno di una regione finita R), l’andamento di questa convoluzione è
del tipo mostrato:
Non c’è aliasing se:
2Wu
v
2Wv
1/∆x
R
1/∆y
u
E. Ardizzone
1
≥ 2Wu
∆x
1
≥ 2Wv
∆y
36
Università degli Studi
di Palermo
Campionamento di funzioni 2-D
9 In queste ipotesi, la f(x,y) può essere ricostruita completamente
moltiplicando (nel dominio delle frequenze) la convoluzione per la
funzione G(u,v), che si suppone uguale a 1 per ogni (u,v) interno ad uno
dei rettangoli che racchiudono R e uguale a 0 altrove, ed antitrasformando
il prodotto
9 Le precedenti considerazioni consentono la formulazione del teorema del
campionamento 2-D:
∆x ≤
1
2Wu
∆y ≤
1
2Wv
9 Se f(x,y) è campionata in un intervallo limitato (usando una finestra 2-D
h(x,y) analoga alla h(x) utilizzata nel caso 1-D), la sua trasformata è
distorta, per cui il recupero completo della f(x,y) a partire dai valori discreti
non è possibile, tranne che nel caso di funzioni a banda limitata e
periodiche, con periodo uguale all’intervallo di campionamento
E. Ardizzone
37
Università degli Studi
di Palermo
La trasformata veloce di Fourier (FFT)
9 Nel caso 1-D, il calcolo della DFT direttamente dalla definizione
1 N −1
F (u ) = ∑ f ( x) exp − j 2πux , per u = 0, K, N − 1
N 

N x =0
richiede, per ogni campione, l’esecuzione di N moltiplicazioni complesse di
f(x) per exp[-j2πux/N] e di N-1 addizioni complesse dei prodotti risultanti
9 Anche senza considerare il costo del calcolo del kernel, i cui termini, non
dipendendo da f(x), possono essere pre-calcolati e memorizzati in una tabella
di look-up, la complessità computazionale del calcolo diretto della DFT nel
caso 1-D è O(N 2). La necessità di algoritmi di calcolo più efficaci è ovvia.
9 L’analisi può essere limitata al caso 1-D, dato che la trasformata 2-D, come si
è visto, può essere ottenuta mediante successive trasformate 1-D
9 Gli algoritmi di trasformazione veloce (Fast Fourier Trasform), di cui adesso
vedremo un esempio, si basano su una strategia ricorsiva di scomposizione del
problema del tipo divide and conquer, analoga a quella di ricerca binaria
E. Ardizzone
38
Università degli Studi
di Palermo
La trasformata veloce di Fourier (FFT)
9 In tal modo la complessità computazionale si riduce da O(N2) a O(Nlog2N),
consentendo un vantaggio computazionale dell’ordine di N/log2N
9 Dato che la trasformata 2-D comporta N trasformate di riga ed N trasformate
di colonna, il vantaggio computazionale nel calcolo della trasformata di una
immagine N x N risulta N3/log2N
9 Per esempio, con N = 512, l’impiego di un algoritmo FFT richiede un tempo
di calcolo circa 15 milioni di volte inferiore a quello necessario per il calcolo
diretto dalla definizione
9 La DFT può essere scritta nel modo seguente, ponendo WN = exp[− j 2π N ]
1 N −1
F (u ) = ∑ f ( x)WNux
N x =0
9 Supponiamo N = 2n, con n intero positivo.
E. Ardizzone
39
Università degli Studi
di Palermo
La trasformata veloce di Fourier (FFT)
9 Si ha quindi N = 2M, dove anche M è un intero positivo. Sostituendo nella
precedente:
1
F (u ) =
2M
1 1
= 
2 M
2 M −1
∑
x =0
M −1
∑ f (2 x)W
u (2 x)
2M
x =0


9 Poiché W2uM( 2 x ) = exp − j
si può scrivere:
f ( x)W2uxM =
1 1
F (u ) = 
2 M
1
+
M
M −1
∑ f (2 x + 1)W
u ( 2 x +1)
2M
x =0



2π

 2π 
u 2 x  = exp − j
ux  = WMux
M 
2M


M −1
∑
x =0
f (2 x)W
ux
M
1
+
M
M −1
∑
x =0
E. Ardizzone

f (2 x + 1)WMuxW2uM 

40
Università degli Studi
di Palermo
La trasformata veloce di Fourier (FFT)
9 Definendo:
1
Fe (u ) =
M
M −1
∑ f (2 x)W
ux
M
x =0
1
Fo (u ) =
M
M −1
∑ f (2 x + 1)W
ux
M
per u = 0, 1, …, M - 1
x =0
la F(u) può essere espressa come:
1
per u = 0, 1, …, M - 1
F (u ) = Fe (u ) + Fo (u )W2uM
2
9 Inoltre, siccome WMM = exp[− j 2πM M ] = 1 e W2MM = exp[− j 2πM 2 M ] = −1
[
]
si ha WMu + M = WMu WMM = WMu e W2uM+ M = W2uM W2MM = −W2uM , da cui :
1
per u = 0, 1, …, M - 1
F (u + M ) = Fe (u ) − Fo (u )W2uM
2
9 Fe(u) e Fo(u), sono due trasformate con metà dei campioni della F(u)
ciascuna, rispettivamente la metà pari e la metà dispari
[
]
E. Ardizzone
41
Università degli Studi
di Palermo
La trasformata veloce di Fourier (FFT)
9 Se pensiamo alla F(u) ancora come a un vettore, la strategia seguita prevede
la scomposizione del vettore in due vettori di dimensione dimezzata,
contenenti l’uno le componenti pari, l’altro le componenti dispari, come
nell’esempio seguente:
9 Dunque una trasformata con N campioni può essere calcolata dividendo
l’espressione originale in due parti: il calcolo della prima parte, che riguarda
la prima metà dei campioni della F(u), richiede la valutazione di due
trasformate con N/2 campioni, la Fe(u) e la Fo(u), e la loro combinazione
mediante moltiplicazioni e addizioni. La seconda metà dei campioni non
richiede altre trasformazioni, ma solo ulteriori moltiplicazioni e addizioni
E. Ardizzone
42
Università degli Studi
di Palermo
La trasformata veloce di Fourier (FFT)
9 La stima della complessità computazionale dell’algoritmo richiede il calcolo
del numero di operazioni necessarie, in funzione del numero dei campioni
9 Siano m(n) e a(n), rispettivamente, il numero di moltiplicazioni complesse ed
il numero di addizioni complesse (N = 2n)
9 Per n = 1 (N = 2, M = 1), la F(u) ha solo due campioni, F(0) e F(1). Il calcolo
di F(0) richiede la valutazione di Fe(0) e di Fo(0). Sono entrambe trasformate
ad un solo campione, quindi non richiedono alcun calcolo, dato che la
trasformata di Fourier di una sequenza costituita da un solo campione è il
campione stesso. Il calcolo di F(0) richiede a questo punto una
moltiplicazione (di Fo(0) per W20) ed una addizione. Il calcolo di F(1)
richiede un’altra addizione (la sottrazione ha lo stesso costo di una
addizione). Pertanto si ha complessivamente: m(1) = 1 e a(1) = 2
E. Ardizzone
43
Università degli Studi
di Palermo
La trasformata veloce di Fourier (FFT)
9 Per n = 2 (N = 4, M = 2), la F(u) ha quattro campioni. Il calcolo dei primi due,
F(0) e F(1), richiede la valutazione di due trasformate, Fe e Fo, che sono in
questo caso a due campioni. Poiché per una trasformata a due campioni
occorrono m(1) moltiplicazioni e a(1) addizioni, la valutazione di Fe e Fo
necessita di 2*m(1) moltiplicazioni e di 2*a(1) addizioni. Per ottenere F(0) e
F(1) sono poi necessarie altre due moltiplicazioni ed altre due addizioni. Solo
altre due addizioni sono infine necessarie per calcolare F(2) e F(3). Si ha
quindi complessivamente: m(2) = 2*m(1) + 2 e a(2) = 2*a(1) + 4
9 Per n = 3 (N = 8, M = 4), la F(u) ha otto campioni. La valutazione dei primi
quattro richiede il calcolo di due trasformate a quattro campioni, cioè 2*m(2)
moltiplicazioni e 2*a(2) addizioni, oltre a 4 moltiplicazioni e 4 addizioni.
Altre 4 addizioni sono necessarie per il calcolo degli altri quattro campioni
della trasformata completa. Pertanto m(3) = 2*m(2) + 4 e a(3) = 2*a(2) + 8
E. Ardizzone
44
Università degli Studi
di Palermo
La trasformata veloce di Fourier (FFT)
9 Gli stessi ragionamenti possono essere fatti per qualunque n intero positivo.
Si perviene pertanto alle seguenti espressioni ricorsive:
m(n) = 2 ∗ m(n − 1) + 2 n −1
a (n) = 2 ∗ a (n − 1) + 2 n
entrambe valide per n ≥ 1, con m(0) = 0 ed a(0) = 0, dato che la trasformata di
un solo punto non richiede né moltiplicazioni né addizioni
9 A questo punto, il calcolo del numero di operazioni richieste dall’algoritmo
FFT può essere effettuato per induzione, cioè assumendo vera per n le
espressioni di m(n) e di a(n) e verificandone la validità per n = 1 e per n + 1
9 Le espressioni di m(n) e di a(n) sono:
1
1
1
m(n) = 2 n log 2 2 n = N log 2 N = Nn
2
2
2
a (n) = 2 n log 2 2 n = N log 2 N = Nn
E. Ardizzone
per n ≥ 1
per n ≥ 1
45
Università degli Studi
di Palermo
La trasformata veloce di Fourier (FFT)
9 Per n = 1, le precedenti danno rispettivamente:
1
m(1) = (2)(1) = 1 e a(1) = (2)(1) = 2
2
che sono esattamente i valori trovati durante l’analisi precedente
9 Per n + 1, dalla espressione della m(n) ricavata in precedenza si ha:
m(n + 1) = 2m(n) + 2 n
9 Sostituendo l’espressione di m(n) supposta vera si ha:
1
1
1
m(n + 1) = 2( Nn) + 2 n = 2( 2 n n) + 2 n = 2 n (n + 1) = (2 n +1 )(n + 1)
2
2
2
9 Analogamente:
a (n + 1) = 2a (n) + 2 n +1
E. Ardizzone
46
Università degli Studi
di Palermo
La trasformata veloce di Fourier (FFT)
9 Sostituendo:
a (n + 1) = 2 Nn + 2 n +1 = 2(2 n n) + 2 n +1 = 2 n +1 ( n + 1)
e questo completa la dimostrazione
9 Ogni algoritmo utilizzato per il calcolo della DFT può essere adoperato
anche per il calcolo della trasformata inversa. Per dimostrarlo, torniamo al
caso 1-D:
1 N −1
F (u ) = ∑ f ( x) exp − j 2πux , per u = 0, K, N − 1
N 

N x =0
N −1
f ( x) = ∑ F (u ) exp  j 2πux , per x = 0, K, N − 1
N 

u =0
9 Prendendo la coniugata di quest’ultima e dividendo per N si ottiene:
1
1
f * ( x) =
N
N
N −1
∑ F * (u ) exp− j 2πux N ,
u =0
E. Ardizzone
per
x = 0, K, N − 1
47
Università degli Studi
di Palermo
La trasformata veloce di Fourier (FFT)
9 Il membro destro di questa equazione è nella forma della trasformata diretta.
Pertanto, per il calcolo della trasformata inversa basta fornire in ingresso ad
un algoritmo di trasformazione diretta la F*(u), e poi moltiplicare la
coniugata della sequenza risultante per N
9 Analogamente, considerando nel caso 2-D la coniugata della trasformata
inversa di una immagine quadrata:
1 N −1 N −1
f * ( x, y ) = ∑∑ F * (u, v) exp[− j 2π (ux + vy ) N ] con x, y = 0, K, N − 1
N u =0 v =0
notiamo che il secondo membro è nella forma della trasformata diretta 2-D.
Pertanto, per il calcolo della trasformata inversa basta fornire in ingresso ad
un algoritmo di trasformazione diretta la F*(u,v), e prendere la coniugata
della sequenza risultante
9 Naturalmente, nel caso delle immagini (1-D o 2-D) la coniugazione non è
necessaria, in quanto la f(x) o la f(x,y) sono reali
E. Ardizzone
48
Università degli Studi
di Palermo
La trasformata veloce di Fourier (FFT)
9 Da un punto di vista implementativo, bisogna ricordare che i dati in
ingresso all’algoritmo devono essere forniti nell’ordine appropriato per le
applicazioni successive delle equazioni che danno Fe ed Fo
9 Per esempio, supponendo la sequenza di ingresso costituita dagli 8 valori
f(0), f(1),…, f(7), l’algoritmo prevede il calcolo della trasformata a 8 valori
mediante due trasformate a 4 valori: la prima usa i valori di argomento
pari, f(0), f(2), f(4) ed f(6), mentre la seconda usa i valori di argomento
dispari, f(1), f(3), f(5) ed f(7)
9 A sua volta, ognuna di queste trasformate a 4 punti è calcolata mediante
due trasformate a due valori. Per la prima trasformata a 4 punti, le due
trasformate a due valori richiedono in ingresso, rispettivamente, i
campioni pari f(0) ed f(4), ed i campioni dispari f(2) ed f(6). Per la seconda
trasformata a 4 punti, le due trasformate a due valori richiedono in
ingresso, rispettivamente, i campioni pari f(1) ed f(5), ed i campioni
dispari f(3) ed f(7)
E. Ardizzone
49
Università degli Studi
di Palermo
La trasformata veloce di Fourier (FFT)
9 Le trasformate a due valori non richiedono nessun particolare ordinamento
(ci sono un solo elemento pari ed un solo elemento dispari)
9 Le considerazioni precedenti portano al seguente ordinamento dei valori
della sequenza di ingresso: f(0), f(4), f(2), f(6), f(1), f(5), f(3), f(7), che
vengono poi elaborati dall’algoritmo nel modo seguente:
f(0)
f(4)
f(2)
f(6)
f(1)
f(5)
f(3)
f(7)
Trasformate
a2
Trasformate a 4
Trasformata a 8
FFT
E. Ardizzone
50
Università degli Studi
di Palermo
La trasformata veloce di Fourier (FFT)
9 La procedura di ordinamento del vettore di ingresso segue la regola detta
del bit reversal: dato un qualunque argomento x valido per f(x), il
corrispondente argomento nel vettore ordinato si ottiene esprimendo x in
binario e rovesciando i bit (da sinistra verso destra)
9 Per esempio, se N = 8 (n = 3), il settimo elemento del vettore iniziale, f(6),
diventa il quarto elemento del vettore ordinato, dato che 6 = 1102 diventa
0112 = 3 quando si rovesciano i bit:
Si noti che se l’ingresso
argomento vettore
argomento
vettore
dell’algoritmo FFT è il vettore
originale originale bit reversed ordinato
ordinato, l’uscita è la DFT con i
000
f(0)
000
f(0)
001
f(1)
100
f(4)
coefficienti nell’ordine corretto
010
f(2)
010
f(2)
011
100
101
110
111
f(3)
f(4)
f(5)
f(6)
f(7)
110
001
101
011
111
f(6)
f(1)
f(5)
f(3)
f(7)
Oltre che su base 2, gli algoritmi FFT
possono essere formulati su base
differente (3, 4, etc.)
E. Ardizzone
51
Università degli Studi
di Palermo
Altre trasformate di immagini
9 La DFT è una trasformata appartenente ad una classe di importanti
trasformazioni lineari, dette trasformate unitarie, caratterizzate dalla
invertibilità della operazione e dalle condizioni di ortogonalità soddisfatte
dal kernel
9 Nel caso 1-D, l’equazione di queste trasformazioni si può scrivere come:
N −1
T (u ) = ∑ f ( x) g ( x, u )
u = 0,1,..., N − 1
9 g(x,u) è il kernel della trasformazione diretta
9 Analogamente, la trasformazione inversa si può esprimere come:
x =0
N −1
f ( x) = ∑ T (u )h( x, u )
x = 0,1,..., N − 1
u =0
9 h(x,u) è il kernel della trasformazione inversa
9 Le proprietà dei kernel della trasformazione determinano la natura della
trasformata
E. Ardizzone
52
Università degli Studi
di Palermo
Altre trasformate di immagini
9 Nel caso 2-D, prendendo in considerazione matrici quadrate:
N −1 N −1
T (u , v ) = ∑ ∑ f ( x, y )g ( x, y, u , v )
x =0 y =0
u , v = 0,1,..., N − 1
N −1 N −1
f ( x, y ) = ∑∑ T (u , v)h( x, y, u , v)
u =0 v =0
x, y = 0,1,..., N − 1
9 I kernel g e h dipendono solo dagli indici x, y, u e v e non dai valori di
f(x,y) o di T(u,v)
9 Pertanto g e h possono essere interpretate come insiemi di funzioni di base
dello sviluppo in serie di T ed f
E. Ardizzone
53
Università degli Studi
di Palermo
Altre trasformate di immagini
9 Se g(x,y,u,v)=g1(x,u)g2(y,v), il kernel diretto è separabile. Inoltre è
simmetrico se g1 e g2 sono funzionalmente uguali. Analoghe
considerazioni valgono per il kernel inverso h.
9 La DFT è la particolare trasformata unitaria che ha il seguente kernel:
1
exp[− j 2π (ux + vy ) N ]
N
9 g è in questo caso separabile e simmetrico, in quanto:
g ( x, y , u , v ) =
g ( x, y , u , v ) = g1 ( x, u ) g1 ( y , v ) =
1
1
[
]
exp − j 2πux N
exp[− j 2πvy N ]
=
N
N
9 Anche il kernel inverso di Fourier è separabile e simmetrico
9 Una trasformata con kernel separabile può essere calcolata in due passi
successivi, costituiti da trasformazioni 1-D, come si è visto per la DFT
E. Ardizzone
54
Università degli Studi
di Palermo
Altre trasformate di immagini
9 Tornando alla definizione di trasformata unitaria ed alle condizioni di
ortogonalità soddisfatte dal kernel, scriviamo la generica trasformata 1-D
in forma matriciale:
T = Af
dove f è un vettore N x 1 che rappresenta la sequenza di ingresso, A è la
matrice N x N di trasformazione o kernel, e T è un vettore N x 1
rappresentante il risultato della trasformazione
9 La trasformata inversa è ottenuta premoltiplicando per A-1 (purchè esista):
A −1 T = A −1 Af , da cui f = A −1 T
9 Se A è una matrice unitaria si ha:
AA ∗T = AA −1 = A ∗T A = I
A −1 = A ∗T
9 Se inoltre A è ad elementi reali:
A −1 = A T
AA T = A T A = I
E. Ardizzone
55
Università degli Studi
di Palermo
Altre trasformate di immagini
9 In questo caso la matrice è ortogonale. Infatti l’elemento <i, j> del
prodotto AAT è il prodotto scalare della riga i-ma di A per la colonna j-ma
di AT, cioè per la riga j-ma di A
9 Dalla condizione di unitarietà della A segue quindi che questo prodotto
scalare è 0 se i ≠ j, per i,j = 1,…, N, mentre è 1 se i = j
9 Detto aij l’elemento generico della A, si può pertanto scrivere:
N
∑a
ih
h =1
N
∑a
h =1
ih
a jh = 0 per i ≠ j (i, j = 1, K, N )
a jh = 1 per i = j (i, j = 1, K, N )
9 Le righe di A costituiscono pertanto un set di vettori ortonormali: ognuna
di esse è, nel caso per esempio della DFT, uno dei vettori gu definiti a suo
tempo
E. Ardizzone
56
Università degli Studi
di Palermo
Altre trasformate di immagini
9 La trasformazione diretta può essere vista come un processo di analisi: il
9
9
9
9
segnale f(x) viene scomposto nelle sue componenti elementari, che sono
nella forma dei vettori di base
I coefficienti della trasformata specificano quanto di ogni componente di
base è presente nel segnale
Nella trasformazione inversa, mediante un processo di sintesi, il segnale
viene ricostruito, come somma pesata delle componenti di base: il peso di
ogni vettore di base nella ricostruzione del segnale è rappresentato dal
corrispondente coefficiente della trasformata
Il coefficiente della trasformata è una misura della correlazione tra il
segnale ed il corrispondente vettore di base
La trasformazione non comporta perdita di informazione: essa fornisce
solo una rappresentazione alternativa del segnale originale
E. Ardizzone
57
Università degli Studi
di Palermo
Altre trasformate di immagini
9 Nel caso 2-D, se il kernel è separabile e simmetrico, cioè g(x,y,u,v) =
g1(x,u)g1(y,v), la T(u,v) si può scrivere in forma matriciale:
T = AFA
dove F è l'immagine N x N, A è una matrice di trasformazione simmetrica
con N x N elementi aij = g1(i,j), e T è la trasformata con N x N campioni
(u,v = 0, 1, …, N - 1)
9 La trasformata inversa si può ottenere premoltiplicando e
postmoltiplicando l'espressione precedente per una matrice di
trasformazione inversa B:
BTB = BAFAB
9 Se B = A-1:
F = BTB
E. Ardizzone
58
Università degli Studi
di Palermo
Altre trasformate di immagini
9 In questo caso l'immagine può essere ricostruita esattamente a partire dalla
sua trasformata
9 Se invece B ≠ A-1, l'uso della trasformazione inversa consente solo una
approssimazione della F:
)
F = BAFAB
9 Oltre a quella di Fourier, diverse trasformate utilizzate nell’image
processing, con largo impiego nel restauro e, soprattutto, nella
compressione, appartengono alla classe delle trasformate unitarie, come
adesso vedremo
E. Ardizzone
59
Università degli Studi
di Palermo
La trasformata discreta di Walsh (DWT)
9 Nel caso 1-D, con N = 2n, la trasformata discreta di Walsh (DWT) di f(x)
(x = 0, … , N-1) è definita come (u = 0, … , N-1):
n −1
1 N −1
b ( x )b
(u )
W (u ) = ∑ f ( x)∏ (− 1) i n−1−i
N x =0
i =0
9 Il kernel diretto di Walsh è quindi:
1 n −1
b ( x )b
(u )
g ( x, u ) = ∏ (− 1) i n−1−i
N i =0
dove bk(z) è il k-mo bit nella rappresentazione binaria di z
9 Per esempio, se n = 3 e z = 6 = 1102, si ha: b0 ( z ) = 0 b1 ( z ) = 1
9 Sviluppando l’esempio (n = 3, N = 8) si ha:
b2 ( z ) = 1
1 2
b ( x )b
(u )
g ( x, u ) = ∏ (− 1) i n−1−i
8 i =0
E. Ardizzone
60
Università degli Studi
di Palermo
La trasformata discreta di Walsh (DWT)
9 Da cui:
1
1
1 2
b ( 0)b
(0)
b ( 0)b ( 0)
b ( 0)b ( 0)
b ( 0)b ( 0)
g (0,0) = ∏ (− 1) i n−1−i = (− 1) 0 2 (− 1) 1 1 (− 1) 2 0 =
8
8
8 i =0
1
1
1 2
b ( 0)b
(1)
b ( 0 ) b (1)
b ( 0 ) b (1)
b ( 0 ) b (1)
g (0,1) = ∏ (− 1) i n−1−i = (− 1) 0 2 (− 1) 1 1 (− 1) 2 0 =
8
8
8 i =0
...
1
1
1 2
b ( 3) b
( 2)
b ( 3) b ( 2 )
b ( 3) b ( 2 )
b ( 3) b ( 2 )
g (3,2) = ∏ (− 1) i n−1−i = (− 1) 0 2 (− 1) 1 1 (− 1) 2 0 = −
8
8
8 i =0
...
9 Non considerando il termine costante 1/N, i vettori di base della DWT
hanno quindi tutte le componenti pari a +1 oppure a -1
9 Nella rappresentazione matriciale, il kernel della DWT è una matrice
simmetrica, con righe (e colonne) ortogonali:
E. Ardizzone
61
Università degli Studi
di Palermo
La trasformata discreta di Walsh (DWT)
x
u
0
1
2
3
4
5
6
7
0 1 2 3
++ + +
++ + +
++ - ++ - +- + +- + +- - +
+- - +
4 5
++
- ++
- +- +
+- +
6
+
+
+
+
7
9 Da questo segue che il kernel inverso è identico
+
+
+
+
-
al kernel diretto, eccetto che per la costante 1/N:
n −1
h( x, u ) = ∏ (− 1) i
b ( x ) bn −1−i ( u )
i =0
9 Quindi la trasformata inversa di Walsh è (x = 0,
…, N - 1): N −1
n −1
b ( x )b
(u )
f ( x) = ∑ W (u )∏ (− 1) i n−1−i
u =0
i =0
9 Dato che la trasformata diretta e la trasformata inversa differiscono solo per
il fattore costante 1/N, ogni algoritmo per il calcolo della DWT può essere
usato anche per il calcolo della trasformata inversa, semplicemente
ricordando che il risultato deve essere moltiplicato per N
E. Ardizzone
62
Università degli Studi
di Palermo
La trasformata discreta di Walsh (DWT)
9 Nel caso 2-D, il kernel diretto ed il kernel inverso di Walsh valgono
rispettivamente:
1 n −1
[b ( x ) b ( u ) + bi ( y ) bn−1−i ( v ) ]
g ( x, y, u , v) = ∏ (− 1) i n−1−i
N i =0
1 n −1
[b ( x ) b ( u ) + bi ( y ) bn−1−i ( v ) ]
h( x, y, u , v) = ∏ (− 1) i n−1−i
N i =0
9 La DWT e la sua inversa sono espresse come:
1
W (u , v ) =
N
1
f ( x, y ) =
N
N −1 N −1
∑
∑
x =0 y =0
n −1
[bi ( x ) bn−1−i ( u ) + bi ( y ) bn−1−i ( v ) ]
f ( x, y )∏ (− 1)
i =0
N −1 N −1
n −1
u =0 v =0
i =0
[bi ( x ) bn−1−i ( u ) + bi ( y ) bn−1−i ( v ) ]
∑ ∑W (u, v)∏ (− 1)
E. Ardizzone
63
Università degli Studi
di Palermo
La trasformata discreta di Walsh (DWT)
9 Dato che i kernel di Walsh sono separabili e simmetrici, come è facile
vedere, le trasformate 2-D possono essere calcolate mediante successive
applicazioni della trasformazione 1-D, analogamente a quanto visto per la
DFT
9 E’ inoltre semplice adattare al calcolo della DWT (e della sua inversa)
l’algoritmo FFT visto in precedenza, ottenendo un algoritmo FWT (Fast
Walsh Transform). La sola differenza è che tutti i termini esponenziali
sono posti uguali a 1
9 Nel caso 1-D, con N = 2n = 2M:
1
W (u ) = [We (u ) + Wo (u )]
2
u = 0, 1, …, M - 1
1
W (u + M ) = [We (u ) − Wo (u )]
2
E. Ardizzone
64
Università degli Studi
di Palermo
La trasformata discreta di Walsh (DWT)
9 Le immagini di base della DWT, per N = 4, possono essere rappresentate
nel modo illustrato, dove ogni blocco consiste di 4 x 4 elementi (x e y
variabili tra 0 e 3):
v
u
0
1
2
3
L’origine di ogni blocco
è in alto a sinistra
0
Il valore +1 è rappresentato
in bianco, il valore -1 in
nero
1
2
3
E. Ardizzone
65
Università degli Studi
di Palermo
La trasformata discreta di Hadamard (DHT)
9 Nel caso 1-D, con N = 2n, la trasformata discreta di Hadamard (DHT) di
f(x) (x = 0, … , N-1) è definita come (u = 0, … , N-1):
n −1
1 N −1
bi ( x ) bi ( u )
H (u ) = ∑ f ( x)(− 1)∑
i =0
N x =0
9 Il kernel diretto di Hadamard è quindi:
n −1
1
bi ( x ) bi ( u )
g ( x, u ) = (− 1)∑
i =0
N
dove bk(z) è il k-mo bit nella rappresentazione binaria di z, e la somma
nell’esponente è effettuata modulo 2
9 Anche il kernel di Hadamard, come quello di Walsh, forma una matrice
con righe e colonne ortogonali, per cui il kernel inverso è uguale a quello
diretto, eccetto che per il termine 1/N:
n −1
bi ( x ) bi ( u )
h( x, u ) = (− 1)∑
i =0
E. Ardizzone
66
Università degli Studi
di Palermo
La trasformata discreta di Hadamard (DHT)
9 La trasformata inversa di Hadamard è pertanto (x = 0, …, N-1):
n −1
N −1
bi ( x ) bi ( u )
f ( x) = ∑ H (u )(− 1)∑
i =0
u =0
9 Nel caso 2-D, il kernel diretto ed il kernel inverso di Hadamard valgono
rispettivamente:
n −1
1
[bi ( x ) bi ( u ) + bi ( y ) bi ( v ) ]
g ( x, y, u , v) = (− 1)∑
i =0
N
n −1
1
[bi ( x ) bi ( u ) + bi ( y ) bi ( v ) ]
h( x, y, u , v) = (− 1)∑
i =0
N
9 La DHT e la sua inversa sono quindi espresse come:
n −1
1 N −1 N −1
[bi ( x ) bi ( u ) + bi ( y ) bi ( v ) ]
H (u, v) = ∑∑ f ( x, y )(− 1)∑
i =0
N x =0 y =0
1
f ( x, y ) =
N
N −1 N −1
n −1
∑ [bi ( x )bi ( u ) + bi ( y )bi ( v ) ]
(
)
−
H
(
u
,
v
)
1
i =0
∑∑
u =0 v =0
E. Ardizzone
67
Università degli Studi
di Palermo
La trasformata discreta di Hadamard (DHT)
9 Valgono anche per la DHT le considerazioni fatte a proposito della
separabilità e della simmetria dei kernel della trasformata, della possibilità di
calcolare la trasformata 2-D mediante successive trasformazioni 1-D, etc.
9 Tornando al caso 1-D, è interessante notare che la matrice dei valori prodotti
dal kernel di Hadamard è uguale a quella di Walsh, ad eccezione della
posizione di alcune righe e colonne, che risultano disposte in ordine
differente:
x
u
0 1 2 3 4 5 6 7
+ + + + +
+
+
0 +
+ + + - 1 +
+ + - +
2 +
- +
+ - +
3 +
- +
+ +
4 +
+ - + +
5 +
+ - +
+
6 +
- - + + +
7 +
- Kernel di Walsh (N = 8)
x
u
E. Ardizzone
0 1 2 3 4 5 6 7
+ + + + +
0 +
+
+
- +
- + 1 +
+
+ + - 2 +
+
- - + - 3 +
+
+
+ + + - 4 +
+ - + 5 +
+
- +
+ 6 +
+
- + + +
7 +
- Kernel di Hadamard (N = 8)
68
Università degli Studi
di Palermo
La trasformata discreta di Hadamard (DHT)
9 In effetti, per N = 2n, questa è la sola differenza significativa tra le due
9
9
9
9
trasformate, tanto che in parte della letteratura si parla di trasformata di
Walsh-Hadamard per indicare l’una o l’altra
Osserviamo che nella rappresentazione matriciale del kernel di Hadamard
u rappresenta l’indice di riga, e che in ogni colonna le variazioni di segno
sono funzione di u
Si definisce sequenza di una colonna della matrice di Hadamard il numero
dei cambiamenti di segno presenti nella colonna. Questo è un concetto che
in qualche modo ricorda quello di frequenza nella DFT
Per esempio, le sequenze delle 8 colonne della matrice per N = 8 sono,
rispettivamente: 0, 7, 3, 4, 1, 6, 2 e 5
Esprimendo i kernel di Hadamard in modo che la sequenza aumenti al
crescere di u si ottiene una rappresentazione, da questo punto di vista,
simile a quella di Fourier, in cui è la frequenza a crescere con u
E. Ardizzone
69
Università degli Studi
di Palermo
La trasformata discreta di Hadamard (DHT)
9 Il kernel di Hadamard che realizza questo particolare ordinamento è:
p0 (u ) = bn −1 (u )
n −1
g ( x, u ) =
1
bi ( x ) pi ( u )
(− 1)∑
i =0
N
p1 (u ) = bn −1 (u ) + bn − 2 (u )
dove:
p2 (u ) = bn − 2 (u ) + bn −3 (u )
M
pn −1 (u ) = b1 (u ) + b0 (u )
9 Ne risulta il seguente set di funzioni di base, con colonne (e righe) in
x
u
0
1
2
3
4
5
6
7
0 1 2
+
++
+
++
++
++
+++
++
+-
3 4
+
+
+
+
+
+
+
+
-
5 6
+
+
+
+
+
+
+
+
-
7
+
+
+
+
-
ordine di sequenza crescente
Kernel ordinato di
Hadamard (N = 8)
E. Ardizzone
70
Università degli Studi
di Palermo
La trasformata discreta di Hadamard (DHT)
9 Il kernel ordinato inverso è:
n −1
bi ( x ) pi ( u )
h( x, u ) = (− 1)∑
i =0
9 Ne risulta la seguente coppia di trasformate ordinate di Hadamard:
1
H (u ) =
N
N −1
∑
x =0
N −1
n −1
bi ( x ) pi ( u )
f ( x)(− 1)∑
i =0
n −1
bi ( x ) pi ( u )
f ( x) = ∑ H (u )(− 1)∑
i =0
9 Nel caso 2-D:
1
H (u , v) =
N
1
f ( x, y ) =
N
u =0
N −1 N −1
∑∑
x =0 y =0
N −1 N −1
n −1
[bi ( x ) pi ( u ) + bi ( y ) pi ( v ) ]
f ( x, y )(− 1)∑
i =0
n −1
∑ [bi ( x ) pi (u ) + bi ( y ) pi ( v ) ]
(
)
−
H
(
u
,
v
)
1
i =0
∑∑
u =0 v =0
E. Ardizzone
71
Università degli Studi
di Palermo
La trasformata discreta di Hadamard (DHT)
9 Le immagini di base della DWT, per N = 4, possono essere rappresentate
nel solito modo, dove ogni blocco consiste di 4 x 4 elementi (x e y variabili
tra 0 ve 3):
0
u
1
2
3
L’origine di ogni blocco è in
alto a sinistra
0
Il valore +1 è rappresentato in
bianco, il valore -1 in nero
1
Le immagini di base di Hadamard
differiscono da quelle di Walsh
solo perché sono ordinate per
valori di sequenza crescente, e
quindi appaiono più “naturali”
2
3
E. Ardizzone
72
Università degli Studi
di Palermo
La trasformata coseno discreta (DCT)
9 Nel caso 1-D, la trasformata coseno discreta (DCT) di f(x), per x = 0,…, N-
1, è definita come:
 (2 x + 1)uπ 
, con u = 0, K, N − 1
C (u ) = α (u ) ∑ f ( x) cos 

 2N

x =0
9 La DCT inversa è definita come:
N −1
 (2 x + 1)uπ 
, con x = 0, K, N − 1
f ( x) = ∑ α (u )C (u ) cos 

 2N

u =0
N −1
9 In entrambe le espressioni:
 1
per u = 0

N
α (u ) = 
 2 N per u = 1,2,..., N − 1
E. Ardizzone
73
Università degli Studi
di Palermo
La trasformata coseno discreta (DCT)
9 Nel caso 2-D:
 (2 x + 1)uπ 
 (2 y + 1)vπ 
C (u, v) = α (u )α (v) ∑ ∑ f ( x, y ) cos 
cos

 2 N

 2N
x =0 y =0
N −1 N −1
per u , v = 0, K, N − 1
 (2 x + 1)uπ 
 (2 y + 1)vπ 
f ( x, y ) = ∑ ∑ α (u )α (v)C (u , v) cos 
cos

 2 N

 2N
u =0 v =0
per x, y = 0, K, N − 1
N −1 N −1
 1
per v = 0
 1
per
=
0
u

N

α (v ) = 
α (u ) =  N
2
per v = 1,2,..., N − 1
2

per
=
1
,
2
,...,
−
1
u
N
 N
 N
E. Ardizzone
74
Università degli Studi
di Palermo
La trasformata coseno discreta (DCT)
9 Anche la DCT ha il kernel inverso uguale a quello diretto
9 Le immagini di base della DCT, per N = 4, rappresentate nel solito modo:
v
u
0
1
2
3
L’origine di ogni blocco è in
alto a sinistra
0
1.2071
0.9239
0.707
Il valore massimo è rappresentato
in bianco, il valore minimo in
nero, i valori intermedi in toni di
grigio
1
0.5
0.3827
0.2071
-0.2071
2
-0.3827
-0.5
-0.707
-0.9239
-1.2071
3
E. Ardizzone
L’importanza odierna della
DCT sta nel suo impiego nei
principali algoritmi e standard
di compressione di immagini e
video
75
Università degli Studi
di Palermo
La trasformata coseno discreta (DCT)
9 Un esempio di DCT visualizzata come immagine di intensità:
Originale
DFT (spettro)
E. Ardizzone
DCT
76
Università degli Studi di Palermo
Elaborazione delle Immagini Digitali
Parte I
Prof. Edoardo Ardizzone
A.A. 2001-2002
Università degli Studi
di Palermo
La trasformata di Hotelling o di Karhunen-Loeve (KLT) discreta
9 Questa trasformata, detta anche analisi delle componenti principali (PCA) o
degli autovettori, si basa su proprietà statistiche delle rappresentazioni
vettoriali. La sua importanza per l’image processing sta nel fatto che essa è la
trasformazione ottima dal punto di vista della decorrelazione dei dati
9 Dato un vettore xs a n componenti, l’insieme {xs | s ∈ I}, dove I è l’insieme
dei valori possibili come indici dei vettori, può essere rappresentato da una
popolazione di vettori random della forma:
 x1 
x 
Ciascuna delle componenti xi è
2


x=
una variabile random
M
x 
 n
9 Il vettore medio della popolazione è:
m x = E{x} = (m1 , m2 , K, mn ) T
E. Ardizzone
2
Università degli Studi
di Palermo
La trasformata di Hotelling o di Karhunen-Loeve (KLT) discreta
9 E{} è l’operatore statistico di expectation. mx è dunque un vettore a n
componenti, ciascuna delle quali è:
mi = E{xi } i = 1, K, n
9 La matrice di covarianza della popolazione di vettori è:
{
C x = E (x − m x )(x − m x )
T
}
9 Poichè x e mx sono vettori di dimensione n, Cx è una matrice di
dimensione n x n
9 L'elemento cii di Cx è la varianza della i-sima componente xi dei vettori
della popolazione, mentre l'elemento cij è la covarianza tra le componenti
xi e xj dei vettori stessi
E. Ardizzone
3
Università degli Studi
di Palermo
La trasformata di Hotelling o di Karhunen-Loeve (KLT) discreta
9 La matrice Cx è reale (per la natura delle variabili random componenti dei
vettori della popolazione) e simmetrica, in quanto la covarianza di xi e xj è
uguale alla covarianza di xj e xi
9 Se xi e xj sono incorrelati, la loro covarianza è nulla, e cij = cji = 0
9 Dal punto di vista implementativo, utilizzando un set di M campioni della
popolazione di vettori, il vettore medio e la matrice di covarianza possono
essere così approssimati:
1
mx =
M
M
∑ xk
k =1
1
Cx =
M
M
T
T
x
x
−
m
m
∑ k k x x
k =1
E. Ardizzone
4
Università degli Studi
di Palermo
La trasformata di Hotelling o di Karhunen-Loeve (KLT) discreta
9 A titolo di esempio, considerando i 4 vettori
9 si ottiene:
0 
1
1 
1
x1 =  0  x 2 =  0  x 3 =  1  x 4 =  0 
 
 
 
 
0
0
0
1
1 1
3
3
1
1

m x = 1
C
=
1
3
−
1
x

4 
16 
1
 1 − 1 3
9 Si può notare che le tre componenti dei vettori hanno la stessa varianza (gli
elementi della diagonale principale di Cx sono uguali), e che tra le
componenti x1 e x2 (x1 e x3) la correlazione è positiva, mentre tra le
componenti x2 e x3 la correlazione è negativa.
E. Ardizzone
5
Università degli Studi
di Palermo
La trasformata di Hotelling o di Karhunen-Loeve (KLT) discreta
9 Dato che Cx è reale e simmetrica, dall’algebra lineare sappiamo che è sempre
possibile trovare un insieme di n autovettori ortonormali ei (i = 1,2, …, n), ai
quali corrispondono altrettanti autovalori λi
9 Per definizione, data una matrice C di dimensione n x n, gli autovettori e gli
autovalori soddisfano la relazione Cei = λiei (i = 1,2, …, n)
9 Si consideri la matrice A, anch’essa di ordine n x n, avente come righe gli
autovettori ei, presi nell'ordine decrescente dei corrispondenti autovalori λi:
A = (e1 , e 2 ,K , e n ) T
9 Utilizzando A come una matrice di mapping, la trasformata di Hotelling è
definita dalla equazione:
y = A(x − m x )
9 La popolazione costituita dai vettori ottenuti da questa trasformazione gode
delle seguenti proprietà:
E. Ardizzone
6
Università degli Studi
di Palermo
La trasformata di Hotelling o di Karhunen-Loeve (KLT) discreta
1
Il vettore medio è nullo:
my = 0
La matrice di covarianza è:
C y = AC x A T
3 Cy è una matrice diagonale i cui elementi non nulli sono gli autovalori di Cx:
2
0
λ1

Cy = 
O


λn 
 0
9 Quindi le componenti dei vettori y sono incorrelate (la covarianza tra le
componenti yi e yj è nulla), mentre le loro varianze coincidono con gli
autovalori λi
9 Inoltre, dato che gli elementi non nulli di una matrice diagonale sono anche i
suoi autovalori, Cx e Cy e hanno gli stessi autovalori. Lo stesso avviene per
gli autovettori
E. Ardizzone
7
Università degli Studi
di Palermo
La trasformata di Hotelling o di Karhunen-Loeve (KLT) discreta
9 La trasformata inversa di Hotelling è definita come:
x = A −1y + m x
9 Poichè A-1= AT (infatti le righe di A sono vettori ortonormali), la ricostruzione
di ogni vettore x a partire dal corrispondente y è sempre possibile:
x = AT y + m x
Interpretazione statistica
9 Se invece di considerare tutti gli autovettori di Cx nella costruzione della
matrice di trasformazione A se ne usano solo K, si ottiene la matrice di
trasformazione AK, di ordine K x n, che dà luogo a vettori Y a K componenti:
Y = A K (x − m x )
Kx1
nx1
Kxn
E. Ardizzone
8
Università degli Studi
di Palermo
La trasformata di Hotelling o di Karhunen-Loeve (KLT) discreta
9 La ricostruzione dei vettori x non è più esatta, ma solo approssimata:
nx1
)
x = A TK Y + m x
nxK
Kx1
nx1
9 Una misura della distorsione introdotta ricostruendo x in maniera
approssimativa è l'errore quadratico medio tra x e x) . Si può dimostrare che
questo errore di ricostruzione vale:
n
K
j =1
j =1
ems = ∑ λ J − ∑ λ J =
n
λJ
∑
j = K +1
=
n
σJ
∑
j = K +1
avendo indicato con σj la varianza della componente j-ma di y
9 L’errore è nullo (ricostruzione esatta) se K = n, cioè se tutti gli autovettori
sono usati nella trasformazione
9 L’errore è comunque minimizzato scegliendo di fare intervenire nella
trasformazione i K autovettori corrispondenti ai K autovalori più grandi
E. Ardizzone
9
Università degli Studi
di Palermo
La trasformata di Hotelling o di Karhunen-Loeve (KLT) discreta
9 Inoltre l’errore di ricostruzione è uguale alla somma delle varianze delle
componenti dei vettori trascurate nella approssimazione
9 Se quindi il numero K si sceglie in modo che le varianze delle prime K
componenti dei vettori costituiscano una percentuale molto rilevante delle
varianze complessive, l’errore di ricostruzione può risultare molto contenuto
9 La trasformazione di un set di dati statisticamente dipendenti in un altro set
di dati incorrelati, con la possibilità di scaricare i coefficienti poco
significativi, che costituisce la cosiddetta interpretazione statistica della
trasformata di Hotelling, è in realtà il fondamento teorico delle tecniche di
compressione basate su trasformate
9 Da questo punto di vista la trasformata KLT discreta risulta ottima in quanto
minimizza l’errore di ricostruzione
E. Ardizzone
10
Università degli Studi
di Palermo
La trasformata di Hotelling o di Karhunen-Loeve (KLT) discreta
9 Interpretazione geometrica
9 Consideriamo l’immagine binaria mostrata sotto come una popolazione 2-D,
ovvero ogni pixel dell’oggetto è trattato come un vettore 2-D x = (a,b)T,
essendo a e b le coordinate del pixel rispetto agli assi x1 e x2:
x
2
9 Questi vettori sono utilizzati per
calcolare il vettore medio e la matrice
di covarianza dei vettori di coordinate
9 Applicando quindi la KLT discreta,
x1
y2
y1
l’oggetto risulta riferito ad un nuovo
sistema di assi, y1 e y2, che risultano
allineati con gli autovettori e1 e e2, e la
cui origine coincide con il centroide
dell’oggetto binario
E. Ardizzone
11
Università degli Studi
di Palermo
La trasformata di Hotelling o di Karhunen-Loeve (KLT) discreta
9 Quindi la trasformata di Hotelling può essere vista come una trasformazione
geometrica che allinea i dati rispetto agli autovettori (assi principali): nel
nuovo sistema di riferimento le coordinate risultano incorrelate, e le loro
varianze sono uguali agli autovalori
9 Nell’esempio, la varianza nella direzione y1 è maggiore della varianza nella
direzione y2: se la differenza risultasse molto grande, sarebbe possibile
ignorare la componente nella direzione della varianza inferiore, senza
sacrificare troppo la qualità dell’immagine x, una volta ricostruita
9 L’interpretazione geometrica della KLT discreta come analisi dei dati riferiti
alle componenti principali trova largo impiego nel pattern recognition e
nell’analisi di immagini
E. Ardizzone
12
Università degli Studi
di Palermo
La trasformata di Hotelling o di Karhunen-Loeve (KLT) discreta
Vettori di base
9 Si supponga per semplicità mx = 0. La trasformata diretta e l’inversa
diventano in questa ipotesi:
x = AT y
y = Ax
9 Dato che le righe della matrice A sono gli autovettori (trasposti) della
matrice di covarianza Cx, si può anche scrivere:
n
x = ∑ yi e i
i =1
9 Quindi x può essere visto come combinazione lineare o somma pesata
degli n vettori di base ei
9 I coefficienti della combinazione lineare sono proprio le componenti dei
vettori trasformati y:
T
i
yi = (e , x)
E. Ardizzone
prodotto interno
13
Università degli Studi
di Palermo
La trasformata di Hotelling o di Karhunen-Loeve (KLT) discreta
9 Il coefficiente yi può essere interpretato come una misura della correlazione
tra il segnale originale x ed il vettore di base ei
9 I coefficienti yi, con i = 1, …, n, sono tra loro incorrelati e, per i > K, la loro
varianza diviene poco significativa, consentendo di trascurare i
corrispondenti termini della combinazione lineare, senza introdurre
distorsione significativa nel segnale ricostruito
9 Anche le altre trasformate unitarie precedentemente studiate godono, sia
pure in misura inferiore, delle proprietà più volte evidenziate:
– decorrelano i dati, nel senso che la correlazione tra i coefficienti della
trasformata è minore che tra i valori originali
– alcuni dei coefficienti della trasformata risultano meno significativi di
altri, cosicchè se ne può ipotizzare un trattamento differente dal punto
di vista della rappresentazione (per esempio, una quantizzazione più
grossolana o addirittura l’eliminazione)
E. Ardizzone
14
Università degli Studi
di Palermo
La trasformata di Hotelling o di Karhunen-Loeve (KLT) discreta
9 Come esempio di applicazione della trasformata di Hotelling consideriamo
la compressione di dati da telerilevamento: in questo caso i dati da trattare
sono più immagini della medesima porzione di territorio, riprese in
differenti gamme spettrali (immagini multispettrali)
9 Le immagini multispettrali sono normalmente abbastanza correlate l’una
con l’altra, per cui l’applicazione della KLT discreta è particolarmente
appropriata
 x1 
x 
 2
 x3 
x= 
x
 4
 x5 
x 
 6
La procedura che qui viene descritta
considera, come popolazione di
vettori cui applicare la KLT discreta,
quelli ottenuti considerando la
disposizione delle immagini illustrata
nella figura
E. Ardizzone
15
Università degli Studi
di Palermo
La trasformata di Hotelling o di Karhunen-Loeve (KLT) discreta
9 Nell’esempio, si considerano le sei
immagini 384 x 239 generate da uno
scanner multispettrale a sei bande,
operante alle seguenti lunghezze
d’onda (µm):
Can. 1
Can. 2
Can. 3
Can. 4
Can. 5
Can. 6
0.40-0.44
0.62-0.66
0.66-0.72
0.80-1.00
1.00-1.40
2.00-2.60
9 Da ogni insieme di pixel di uguale
posizione nelle sei immagini si genera
un vettore a sei elementi
E. Ardizzone
16
Università degli Studi
di Palermo
La trasformata di Hotelling o di Karhunen-Loeve (KLT) discreta
9 La popolazione è quindi costituita da 384 x 239 = 91776 vettori a sei elementi
ciascuno. Per essa possono essere calcolati sia il vettore medio che la matrice
di covarianza, i cui sei autovalori risultano i seguenti:
λ1=3210 λ2=931.4 λ3=118.5 λ4=83.88 λ5=64 λ6=13.4
9 Si può notare la forte predominanza dei primi due autovalori
9 Applicando la KLT discreta, si calcolano a questo punto i vettori y, le cui
componenti sono i pesi della combinazione lineare degli autovettori che
ricostruisce i vettori x (a meno del vettore medio):
6
x − m x = ∑ yi e i
i =1
yi = (eTi , (x − m x ))
9 Come sappiamo, le varianze delle yi sono gli autovalori della matrice Cx
9 Invertendo il procedimento di costruzione dei vettori x, si possono assemblare
sei immagini componenti principali: la componente 1 è l’immagine formata
da tutti gli elementi y1, la componente 2 è l’immagine formata da tutti gli
elementi y2, etc.
E. Ardizzone
17
Università degli Studi
di Palermo
La trasformata di Hotelling o di Karhunen-Loeve (KLT) discreta
9 Per costruzione, l’autovalore λ1 è la
varianza dei livelli di grigio y1, per cui
la componente 1 è quella con il
contrasto più elevato, seguita dalla
componente 2
9 Poiché i primi due autovalori danno
insieme circa il 94% della varianza
complessiva, è abbastanza ovvio come
il contrasto delle altre quattro
immagini sia così basso
9 Invece di archiviare tutte le sei
immagini iniziali si possono quindi
conservare solo le prime due immagini
trasformate, oltre al vettore medio ed
ai primi due autovettori, realizzando
una compressione dei dati
E. Ardizzone
18
Università degli Studi
di Palermo
Filtraggio nel dominio della frequenza
9 Come già si è osservato, il fondamento teorico delle tecniche di
elaborazione nel dominio della frequenza, basate sulla manipolazione della
DFT dell’immagine, è rappresentata dal teorema della convoluzione, che
fa corrispondere, alla operazione così definita nel dominio spaziale:
g ( x, y ) = f ( x, y ) ∗ h ( x, y )
l’operazione, nel dominio delle frequenze spaziali:
G (u , v ) = F (u , v) H (u , v)
9 Pertanto, data una immagine f(x,y) e calcolata la sua trasformata F(u,v),
l’obiettivo di una elaborazione nel dominio della frequenza è scegliere una
H(u,v) tale che l’immagine di uscita g(x,y) esibisca le proprietà desiderate,
essendo:
g (x, y ) = F -1 {F (u , v )H (u , v)}
E. Ardizzone
19
Università degli Studi
di Palermo
Filtraggio nel dominio della frequenza
9 Per esempio, un filtro di blurring deve ridurre le componenti di alta
frequenza spaziale dell’immagine, quindi la sua funzione di trasferimento
H(u,v) sarà progettata in modo da attenuare i campioni della F(u,v) in un
certo intervallo di frequenze, più o meno lontano dall’origine del piano u,v
Filtri passa-basso
9 Un filtro passa-basso ideale ha la seguente funzione di trasferimento:
1 per D(u , v) ≤ D0
H (u , v) = 
0 per D(u , v) > D0
D0 è una quantità non negativa, e D(u,v)
è la distanza del punto (u,v) dall’origine
12
del piano delle frequenze: D (u , v) = (u 2 + v 2 )
Tutte le frequenza all’interno di un
cerchio di raggio D0 passano senza
attenuazione, mentre tutte quelle
superiori sono completamente attenuate
D0 = 0.5
E. Ardizzone
20
Università degli Studi
di Palermo
Filtro PB ideale
9 Il filtro è dotato di simmetria circolare rispetto all’origine, per cui il suo
comportamento può essere completamente specificato dalla sezione
trasversale ottenuta con un piano verticale passante per l’origine
H(u,v)
D0 è la frequenza di taglio del filtro
1
Nella rappresentazione 3-D è più appropriato
parlare di un luogo di frequenze di taglio,
costituito dalla circonferenza, centrata
0
D0
D(u,v) nell’origine, di raggio D
0
9 Un filtro ideale non può essere costruito, ma può essere implementato via
software, per cui si può analizzarne l’effetto su una immagine digitale
9 A tal fine, si consideri la risposta del filtro, per diversi valori di D0, tali che
le corrispondenti circonferenze racchiudano percentuali crescenti della
potenza spettrale totale dell’immagine, definita come:
E. Ardizzone
21
Università degli Studi
di Palermo
Filtro PB ideale
N −1 N −1
PT = ∑∑ P(u , v) dove, come è noto: P(u , v ) = F (u , v ) = ℜ 2 (u , v ) + ℑ 2 (u , v )
2
u =0 v =0
9 Riferendo la DFT al centro del piano delle frequenze, un cerchio centrato
nell’origine racchiude una frazione β della potenza spettrale totale,
espressa (in percentuale) da:


β = 100∑∑ P(u , v) PT 
u v

dove le somme sono relative ai punti del piano u,v interni al cerchio
9 Si consideri l’immagine seguente, dotata di dettagli di varia dimensione,
quindi appropriata per studiare gli effetti di un filtro di blurring, e la sua
DFT, entrambe di dimensioni 256 x 256:
E. Ardizzone
22
Università degli Studi
di Palermo
Filtro PB ideale
9 La percentuale della potenza spettrale
totale racchiusa all’interno di cerchi di
raggio R crescente (in pixel) è la seguente:
R
β
6
90
12
95
27
98
45
99
70
99.5
E. Ardizzone
Si può notare che lo spettro
ha una intensità decrescente
molto rapidamente: il 90%
della potenza totale è
racchiusa nel piccolo
cerchio di raggio 6
Le figure seguenti mostrano
i risultati dell’applicazione
di filtri PB ideali, con
frequenze di taglio uguali ai
raggi dei cerchi considerati
23
Università degli Studi
di Palermo
Filtro PB ideale
Originale, β=100
R=6, β=90
R=12, β=95
R=27, β=98
R=45 E. Ardizzone β=99
R=70, β=99.5
24
Università degli Studi
di Palermo
Il blurring come processo di convoluzione
9 L’immagine ottenuta trattenendo il 90% della potenza spettrale totale
(R=6) ha perduto praticamente tutta l’informazione associata ai dettagli, e
risulta assolutamente inutilizzabile: per l’immagine in esame,
l’informazione più significativa è quella associata al 10% di potenza
spettrale perduta
9 Man mano che la potenza trattenuta aumenta, la qualità dell’immagine
migliora, in corrispondenza a blurring via via meno accentuato
9 Continua tuttavia a persistere un effetto di ringing piuttosto severo, tipico
dei filtri ideali
9 Le proprietà di blurring e ringing dei filtri PB ideali possono essere
spiegate ricorrendo ancora al teorema della convoluzione:
g ( x, y ) = f ( x, y ) ∗ h( x, y ) ⇔ G (u , v) = F (u , v ) H (u , v )
E. Ardizzone
25
Università degli Studi
di Palermo
Il blurring come processo di convoluzione
9 Dato che per il filtro PB ideale si ha:
1 per D(u , v) ≤ D0
H (u , v) = 
0 per D(u , v) > D0
la corrispondente h(x,y) ha l’andamento qualitativo di figura:
9 Pertanto, se l’immagine f(x,y) fosse costituita da
un solo pixel bianco su sfondo nero
(approssimazione di un impulso), la risposta del
filtro sarebbe proprio quella mostrata
9 Se l’immagine fosse costituita da due punti
bianchi su sfondo nero, l’effetto della
convoluzione dell’immagine con la h(x,y) sarebbe
la replica di quest’ultima nei punti di applicazione
degli impulsi
E. Ardizzone
26
Università degli Studi
di Palermo
Il blurring come processo di convoluzione
9 Gli anelli generati dalla risposta a ciascuno degli impulsi, di raggio
inversamente proporzionale al valore della frequenza di taglio del filtro,
tendono ad interferire anche in relazione alla distanza tra i due impulsi
9 Quindi il blurring è tanto più accentuato quanto minore è la frequenza di
taglio, mentre al crescere della frequenza di taglio gli anelli diventano via
via meno larghi e più finemente distanziati, cosicchè il blurring diminuisce
9 Quando la frequenza di taglio è oltre l’intervallo di definizione della
F(u,v), la h(x,y) vale 1 ovunque e la convoluzione si riduce alla f(x,y), che
passa inalterata
9 In immagini più complesse, ogni pixel può essere considerato un impulso
di intensità proporzionale al valore del pixel, e l’effetto complessivo può
essere spiegato ancora con l’applicazione dei concetti illustrati
E. Ardizzone
27
Università degli Studi
di Palermo
Filtro PB di Butterworth
9 La funzione di trasferimento del filtro passa-basso di Butterworth di ordine
n e frequenza di taglio D0 è:
H (u, v) =
1
2n
1 + [D (u, v) D0 ]
9 Per esempio, con n = 1:
H(u,v)
D0 = 1
D(u,v)/D0
E. Ardizzone
28
Università degli Studi
di Palermo
Filtro PB di Butterworth
9 E’ evidente che, a differenza del filtro PB ideale, il filtro PB di
Butterworth non determina un taglio netto in frequenza, in quanto la sua
funzione di trasferimento non esibisce una discontinuità brusca
9 Il luogo delle frequenze di taglio è definito, in casi come questi, nei punti
del piano u,v per i quali la H(u,v) decade ad una certa frazione del suo
valore massimo
9 Con la definizione adoperata per la H(u,v), per esempio, si ha H(u,v) = 0.5
(50% del valore massimo) quando D(u,v) = D0
9 Se invece ci si vuole riferire alla più usuale definizione di frequenza di
taglio come quella alla quale la H(u,v) si riduce a 1/√2 del valore massimo,
occorre modificare la H(u,v):
1
1
H (u , v) =
=
2n
2n
1 + [ 2 − 1][D(u , v) D0 ]
1 + 0.414[D(u , v) D0 ]
E. Ardizzone
29
Università degli Studi
di Palermo
Filtro PB di Butterworth
Originale, β=100
R=6, β=90
R=12, β=95
R=27, β=98
R=45 E. Ardizzone β=99
R=70, β=99.5
30
Università degli Studi
di Palermo
Filtro PB di Butterworth
9 Le immagini precedenti sono il risultato dell’applicazione del filtro PB di
Butterworth, con n=1 e D0 crescente, che assume gli stessi valori esaminati
per il filtro PB ideale,
9 La transizione meno ripida del filtro in corrispondenza alla frequenza di
taglio rende conto del blurring meno accentuato, a parità di D0
9 Inoltre, per lo stesso motivo, l’effetto di ringing è praticamente scomparso
9 Ai fini pratici, i filtri PB hanno applicazioni simili a quelle dei filtri di
smoothing studiati nel dominio spaziale (riduzione di rumore o di altri
dettagli spuri, come i falsi contorni), con gli stessi effetti collaterali
(riduzione della nitidezza dei dettagli)
E. Ardizzone
31
Università degli Studi
di Palermo
Filtro PA ideale
Filtri passa-alto
9 Un filtro passa-alto ideale ha la seguente funzione di trasferimento:
0 per D(u , v) ≤ D0
H (u , v) = 
1 per D(u , v) > D0
D0 è una quantità non negativa, e D(u,v)
è la distanza del punto (u,v) dall’origine
12
del piano delle frequenze: D (u , v) = (u 2 + v 2 )
Tutte le frequenza all’interno di un
cerchio di raggio D0 sono completamente
attenuate, mentre tutte quelle superiori
passano senza attenuazione
H(u,v)
1
D0 = 0.5
0
E. Ardizzone
D0
D(u,v)
32
Università degli Studi
di Palermo
Filtro PA di Butterworth
9 La funzione di trasferimento del filtro passa-alto di Butterworth di ordine n
e frequenza di taglio D0 è:
H (u, v) =
1
2n
1 + [D0 D(u , v)]
9 Per esempio, con n = 1:
H(u,v)
D(u,v)/D0
E. Ardizzone
D0 = 1
33
Università degli Studi
di Palermo
Filtro PA di Butterworth
9 Come nel caso PB, si può dare una definizione del filtro che renda luogo
delle frequenze di taglio i punti del piano u,v nei quali H(u,v) si riduce a
1/√2 del valore massimo:
1
1
H (u , v) =
=
2n
2n
1 + [ 2 − 1][D0 D (u, v)]
1 + 0.414[D0 D (u, v)]
E. Ardizzone
34
Università degli Studi
di Palermo
Filtraggio omomorfo
9 Il modello illuminazione-riflettenza f(x,y)=i(x,y)r(x,y) può essere utilizzato,
anche se non direttamente, come base di una procedura nel dominio della
frequenza in grado di effettuare simultaneamente una compressione della
gamma dinamica e un arricchimento del contrasto
9 L’uso diretto del modello non è possibile in quanto la trasformata del
prodotto di due funzioni non è separabile, infatti:
F { f (x, y )} ≠ F {i(x, y )}F {r (x, y )}
9 Si definisca tuttavia:
z ( x, y ) = ln f ( x, y ) = ln i ( x, y ) + ln r ( x, y )
9 Quindi:
F {z (x, y )} = F {ln f (x, y )} = F {ln i (x, y )}+ F {ln r (x, y )}
9 Ponendo I(u,v) = F {ln i (x, y )} e R (u , v) = F {ln r (x, y )} si può scrivere:
Z (u , v) = I (u , v) + R(u , v)
E. Ardizzone
35
Università degli Studi
di Palermo
Filtraggio omomorfo
9 Filtrando con una funzione H(u,v):
S (u , v) = H (u, v) Z (u, v) = H (u , v) I (u , v) + H (u , v) R(u , v)
9 Nel dominio spaziale:
s(x, y ) = F -1 {S (u , v )} = F -1 {H (u , v) I (u , v)}+ F -1 {H (u , v) R (u , v )}
9 Ponendo
i ′(x, y ) = F -1 {H (u , v) I (u , v)} e r ′(x, y ) = F -1 {H (u , v) R(u , v)}
si ha infine:
s ( x, y ) = i ′( x, y ) + r ′( x, y )
9 Applicando infine l’operazione inversa del logaritmo (che era stato
applicato all’immagine iniziale) si ottiene per l’immagine di uscita:
g ( x, y ) = exp[s ( x, y )] = exp[i ′( x, y )]exp[r ′( x, y )] = i0 ( x, y )r0 ( x, y )
E. Ardizzone
36
Università degli Studi
di Palermo
Filtraggio omomorfo
9 Pertanto i0 ( x, y ) = exp[i ′( x, y )] e r0 ( x, y ) = exp[r ′( x, y )] sono
l’illuminanza e la riflettenza dell’immagine di uscita
9 Riassumendo:
f(x,y)
g(x,y)
ln
FFT
H(u,v)
(FFT)-1
exp
9 Il metodo presentato è basato su un caso speciale di una classe di sistemi,
detti omomorfi
9 In particolare, in questo caso la separazione delle componenti di
illuminazione e riflettenza è effettuata utilizzando il logaritmo, in modo
che il filtro possa operare separatamente sulle due componenti:
l'illuminazione, generalmente caratterizzata da lente variazioni spaziali, e
la riflettenza, generalmente caratterizzata da brusche variazioni, come nei
contorni degli oggetti
E. Ardizzone
37
Università degli Studi
di Palermo
Filtraggio omomorfo
9 Ovviamente l'associazione delle basse frequenze della trasformata del
logaritmo alla componente di illuminazione e delle alte frequenze della
trasformata del logaritmo alla componente di riflettenza è piuttosto
imprecisa, ma consente in questo caso di operare efficacemente
9 Dal punto di vista realizzativo, occorre una H(u,v) in grado di operare in
modo diverso sulle componenti di bassa frequenza e su quelle di alta
frequenza della trasformata di Fourier dell’immagine, del tipo:
H(u,v)
Se γL < 1e γH >1, il filtro tende a
smorzare il contenuto delle basse
frequenze e ad amplificare il
contenuto delle alte frequenze
γH
γL
D(u,v)
E. Ardizzone
38
Università degli Studi
di Palermo
Filtraggio omomorfo
9 Per esempio, agendo sull’immagine di sinistra con un filtro omomorfo,
con γL = 0.5e γH =1.5, si ottengono i risultati mostrati sulla destra
E. Ardizzone
39
Università degli Studi di Palermo
Elaborazione delle Immagini Digitali
Parte J
Prof. Edoardo Ardizzone
A.A. 2001-2002
Università degli Studi
di Palermo
Rappresentazione del colore
9 L’elaborazione delle immagini a colori può essere divisa in due aree
principali: l’elaborazione in colore vero o full color e l’elaborazione in
pseudo-colore o colore falso
9 Nel primo caso, attualmente molto più comune, oggetto della elaborazione
sono immagini direttamente acquisite mediante sensore a colori, mentre nel
secondo caso l’immagine originale è una immagine monocroma, che viene
elaborata in modo puntuale facendo corrispondere colori diversi a diversi
intervalli di intensità, in modo analogo a quanto visto a proposito delle
elaborazioni di slicing dei livelli di grigio
9 Benchè la percezione del colore da parte del cervello umano sia un processo
fisio-psicologico non ancora completamente spiegato, la natura fisica del
colore è esprimibile su base formale ed è supportata da risultati teorici e
sperimentali
9 Uno degli esperimenti più citati nei testi sull’argomento, quello celeberrimo
del prisma di I. Newton, nella seconda metà del ‘600 mostrò che la luce
solare non è bianca
E. Ardizzone
2
Università degli Studi
di Palermo
Rappresentazione del colore
La luce emergente dal prisma di
vetro è infatti costituita da uno
spettro continuo di colori, dal
violetto al rosso, passando per il
blu, il verde, il giallo e l’arancio
9 In realtà, i colori degli oggetti percepiti dagli esseri umani sono
determinati dalla natura della luce riflessa dagli oggetti stessi, e nello
spettro del visibile non esistono transizioni brusche da un colore all’altro:
E. Ardizzone
3
Università degli Studi
di Palermo
Rappresentazione del colore
9 La luce visibile è costituita da una banda relativamente stretta di frequenze nello
spettro della radiazione elettromagnetica, da circa 360 nm a circa 800 nm
(anche se la sensibilità dell’occhio è normalmente molto ridotta tra 360 nm e
410 nm e tra 720 nm e 800 nm).
9 Un oggetto che riflette luce sufficientemente bilanciata su tutte le lunghezze
d’onda del visibile appare bianco, mentre un oggetto la cui superficie favorisce
la riflessione in una gamma limitata dello spettro visibile appare colorato, nel
colore corrispondente
9 Per esempio, appaiono verdi gli oggetti che riflettono la luce nella gamma tra
500 nm e 570 nm, ed assorbono la radiazione alle altre frequenze
9 Non esiste naturalmente un solo verde o un solo rosso, infatti la sensazione
prodotta dalla visione del colore non è riconducibile esclusivamente ad una
questione di lunghezze d’onda
E. Ardizzone
4
Università degli Studi
di Palermo
Rappresentazione del colore
9 Come già visto, nell’occhio umano tre tipi di fotopigmenti caratterizzano i
ricettori noti come coni, con tre curve di sensibilità spettrale che coprono
tre differenti bande, con massimi,
rispettivamente, a 445 nm, 535 nm e
575 nm. Le tre curve manifestano
significative sovrapposizioni, e non
sono ugualmente distanziate.
9 In sostanza, la relazione tra i tre canali
è pesantemente non lineare
9 In base a questa struttura dell’occhio umano, ogni colore percepito può
essere visto come una combinazione di tre colori primari, il rosso (R), il
verde (G) ed il blu (B), la cui definizione in termini di lunghezze d’onda è
tuttavia soggettiva
E. Ardizzone
5
Università degli Studi
di Palermo
Rappresentazione del colore
9 Nel 1931, la CIE (Commission Internationale de l’Eclairage) ha pertanto
9
9
9
9
proceduto ad una standardizzazione dei tre colori primari, fissando i
seguenti valori:
B = 435.8 nm G = 546.1 nm R = 700 nm
Questo non significa che sia possibile generare qualunque colore dello
spettro come una somma pesata dei tre primari standard sopra definiti
E’ vero infatti che ogni colore può essere rappresentato da una appropriata
miscela di tre colori di base, ma generare tutti i colori dello spettro non è
possibile senza modificare anche le lunghezza d’onda dei colori di base
I colori primari possono essere sommati in modo da produrre i cosiddetti
colori secondari: il magenta (M), miscela di rosso e blu, il ciano (C),
miscela di verde e blu, e il giallo (Y), miscela di rosso e verde
La miscela, nelle intensità appropriate, dei tre primari, o di un secondario e
del primario opposto, produce luce bianca
E. Ardizzone
6
Università degli Studi
di Palermo
Rappresentazione del colore
9 E’ importante distinguere tra i colori
primari della luce, di natura additiva, che
finora abbiamo trattato, e i colori primari
dei coloranti, di natura sottrattiva
9 Questi ultimi sono definiti tali se
sottraggono (o assorbono) un primario della
luce e riflettono (o trasmettono) gli altri due
9 Pertanto i primari dei coloranti sono il
magenta, il ciano ed il giallo, ed i secondari
dei coloranti sono il rosso, il verde e il blu
9 Una appropriata combinazione dei primari
dei coloranti, o di un secondario con il suo
primario opposto, produce il nero
E. Ardizzone
7
Università degli Studi
di Palermo
Rappresentazione del colore
9 Nel caso monocromatico, l’unico attributo necessario a caratterizzare in ogni
9
9
9
9
punto l’immagine è l’intensità, che si traduce nel valore del corrispondente
pixel
Nel caso della radiazione cromatica, per ogni punto dell’immagine occorre
tener conto dei tre valori dei primari che ne determinano il colore
A tal fine, una nota rappresentazione delle immagini a colori prevede
l’impiego di tre matrici di intensità, una di rosso, una di verde, una di blu
In altre parole, nel caso della radiazione cromatica, l’intensità da sola non è
sufficiente a caratterizzare l’immagine, in quanto occorre anche esprimere
quantitativamente la presenza delle appropriate lunghezze d’onda, la
cosiddetta crominanza
Due sono gli elementi della crominanza: la tinta (hue in inglese) e la
saturazione
E. Ardizzone
8
Università degli Studi
di Palermo
Rappresentazione del colore
9 La tinta è un attributo associato con la lunghezza d’onda dominante in una
miscela di onde luminose. Rappresenta pertanto quello che viene
normalmente denominato il colore dominante di un oggetto
9 La saturazione è un attributo che si riferisce alla purezza del colore,
ovvero alla quantità di luce bianca mescolata con una tinta
9 I colori puri dello spettro hanno una saturazione del 100%, mentre colori
come il rosa, che è una miscela di rosso e bianco, o il lavanda, che è una
miscela di blu e bianco, sono meno saturi, con il grado di saturazione
inversamente proporzionale alla quantità di bianco. La luce bianca ha
invece saturazione nulla
9 Un altro modo in cui può essere specificato un colore è in termini delle
quantità di R, G e B necessarie a formarlo, i cosiddetti valori di tristimolo
X, Y e Z
E. Ardizzone
9
Università degli Studi
di Palermo
Rappresentazione del colore
9 Un colore quindi può essere specificato mediante i coefficienti tricromatici,
definiti come:
X
Y
Z
y=
z=
X +Y + Z
X +Y + Z
X +Y + Z
9 Da queste equazioni risulta: x + y + z = 1
9 I valori di tristimolo necessari a rappresentare il colore corrispondente ad
una certa lunghezza d’onda sono in genere determinati da curve, tabelle e
diagrammi determinati sperimentalmente
9 Uno di essi è il diagramma CIE di cromaticità, che mostra la composizione
di un colore in funzione di x (rosso) e y (verde), mentre il corrispondente
valore di z (blu) è calcolato direttamente dalla z = 1 - (x + y)
x=
E. Ardizzone
10
Università degli Studi
di Palermo
Rappresentazione del colore
9 Per esempio, il punto marcato con
“green” rappresenta approssimativamente
un colore con il 25% di rosso, il 62% di
verde e (dalla equazione) il 13% di blu
9 I colori spettrali puri, cioè completamente
saturi (dal violetto a 380 nm al rosso a
780 nm), sono marcati sul bordo dell’area
utile, che è il cosiddetto diagramma “a
lingua”
9 Ogni altro punto interno al diagramma
rappresenta una miscela di colori, con un
livello di saturazione crescente man mano
che dal centro ci si avvicina al bordo
E. Ardizzone
11
Università degli Studi
di Palermo
Rappresentazione del colore
9 Il “punto di uguale energia”, indicato con C nella figura sottostante,
corrisponde ad un colore ottenuto miscelando in parti uguali i tre colori
primari: esso è lo standard CIE per la luce bianca, ovviamente a saturazione
nulla
9 Un segmento che congiunge due punti
qualunque all’interno del diagramma
definisce tutti i colori che possono essere
ottenuti mescolando in proporzioni
differenti i due colori
9 In particolare, un segmento come CC2
definisce tutte le sfumature (tutti i livelli
di saturazione) del colore spettrale C2
9 Quale è la saturazione di C1?
E. Ardizzone
12
Università degli Studi
di Palermo
Rappresentazione del colore
9 L’estensione di questi concetti per la determinazione dei colori che
possono essere ottenuti mescolando tre colori assegnati è immediata
9 Se i tre punti indicati rappresentano tre
differenti colori, i punti dentro il
triangolo rappresentano colori che
possono essere ottenuti mediante
opportuna miscela dei tre colori dati
9 E’ quindi evidente che una sola terna di
colori primari non può consentire la
rappresentazione di tutti i colori presenti
nel diagramma di cromaticità
E. Ardizzone
13
Università degli Studi
di Palermo
Modelli del colore
9 Scopo di un modello del colore è di consentirne la rappresentazione con
modalità standardizzate, che fanno normalmente riferimento ad un sistema di
coordinate 3-D (dato che tre sono comunque le caratteristiche che definiscono
un colore), o meglio ad un suo sotto-spazio, nel quale ogni colore è
rappresentato da un punto
9 I modelli del colore più utilizzati in image processing sono orientati o
all’hardware di acquisizione (RGB) e restituzione (RGB, CMY) delle
immagini o alla loro trasmissione (YUV, YIQ, YDbDr), compressione
(YCbCr), elaborazione (od analisi) mediante trattamento del colore (RGB,
HSI, HSV, LUV, ...)
9 Alla poca chiarezza derivante dalla abbondanza di modelli dello stesso tipo, si
aggiunge l’uso ambiguo delle lettere nei nomi dei modelli (come vedremo, I o
V significano cose diverse in modelli diversi), e soprattutto il fatto che in
letteratura esistono differenti versioni delle equazioni di conversione dall’uno
all’altro dei modelli indicati. La trattazione seguente fa riferimento solo ad
alcuni modelli, ritenuti di maggiore interesse
E. Ardizzone
14
Università degli Studi
di Palermo
Modelli del colore
9 Nel modello (o sistema) RGB, probabilmente il più noto, ogni colore è definito
mediante le intensità dei tre primari (rosso, verde e blu) che lo compongono. Il
modello è basato su un sistema di coordinate cartesiane, in cui il sotto-spazio di
riferimento è un cubo di lato unitario (tutti i valori si intendono normalizzati in
modo da ricadere nell’intervallo [0,1]:
B
9 Rosso, verde e blu sono ai vertici
(0,0,1) = blu
sugli assi, mentre ciano, magenta e
giallo sono ai vertici opposti
ciano
9 Il nero è all’origine ed il bianco è al
magenta
bianco
nero
(0,1,0) = verde
G
scala dei grigi
(1,0,0) = rosso
R
giallo
vertice più lontano, mentre la
diagonale che li congiunge è la
scala dei grigi
9 Un colore è rappresentato da un
punto sulla superficie o all’interno
del cubo
E. Ardizzone
15
Università degli Studi
di Palermo
Modelli del colore
9 Nel modello RGB, una immagine a colori, come si è già accennato, consiste
di tre immagini di intensità indipendenti, una per ogni colore primario
9 E’ lo schema classico utilizzato sia nell’acquisizione che nella
visualizzazione, dato che normalmente telecamere, scanner, monitor
producono o utilizzano segnali RGB
9 Meno efficace si rivela il modello ai fini dell’elaborazione, come mostra
l’esempio seguente
9 Si supponga di voler migliorare la qualità
dell’immagine a colori, al fine di
evidenziare i dettagli nelle zone più scure,
per esempio effettuando una equalizzazione
9 L’estensione immediata delle tecniche viste
per le immagini a livelli di grigio porta alla
equalizzazione delle tre immagini R, G, B
E. Ardizzone
16
Università degli Studi
di Palermo
Modelli del colore
9 Le tre immagini di intensità sono:
Rosso
Verde
Blu
9 Dopo l’equalizzazione separata sui tre canali:
E. Ardizzone
17
Università degli Studi
di Palermo
Modelli del colore
9 Riassemblando l’immagine RGB:
equalizzata
originale
9 In effetti, i particolari nelle zone inizialmente molto scure sono adesso
visibili, però l’elaborazione non dà risultati complessivamente soddisfacenti,
in quanto i colori dell’immagine equalizzata sono poco fedeli
9 Infatti le intensità delle tre immagini sono state alterate in modo indipendente,
per cui risulta modificata, per ogni pixel, la proporzione nella quale i tre
primari sono mescolati
E. Ardizzone
18
Università degli Studi
di Palermo
Modelli del colore
9 In altre parole, la modifica indipendente delle tre componenti RGB cambia
la crominanza (tinta - saturazione) di ogni pixel, introducendo una
distorsione cromatica
9 Inoltre, in relazione alla percezione del colore da parte del sistema visivo
umano, che come è noto è più sensibile al verde che al rosso che al blu, c’è
da dire che una rappresentazione con uguale distribuzione dei dati sui tre
canali è sicuramente inefficiente
9 Per le elaborazioni di miglioramento di qualità risultano sicuramente più
efficaci i modelli del colore in cui la componente di intensità (spesso
denominata luminanza nei testi sull’argomento) è separata da quelle di
crominanza
9 Nell’esempio precedente, equalizzando la sola componente di intensità si
otterrebbe il risultato cercato, senza alterare la crominanza
E. Ardizzone
19
Università degli Studi
di Palermo
Modelli del colore
9 Tra i modelli di questo tipo, uno dei più noti è il modello HSI, tinta -
saturazione - intensità, nel quale le componenti di crominanza sono
esplicitamente correlate alle proprietà dei colori cui il sistema visivo
umano è sensibile
9 Questo rende il modello HSI particolarmente adatto all’uso negli
algoritmi di elaborazione e analisi delle immagini che si rifanno più
direttamente alle caratteristiche percettive del sistema visivo umano
(per esempio, classificazione basata sul colore, identificazione e
riconoscimento, etc.)
9 Lo svantaggio principale del modello HSI deriva dalle complicate
formule di conversione da e verso il modello RGB, che ne hanno tra
l’altro impedito l’uso nei sistemi TV
9 Tinta e saturazione sono definite rispetto al cosiddetto triangolo dei
colori HSI mostrato di seguito:
E. Ardizzone
20
Università degli Studi
di Palermo
Modelli del colore
blu
9 La tinta H del colore P è l’angolo tra il vettore
ciano
magenta
H
rosso
P
9
verde
giallo
9
bianco
9
blu
I
rosso
verde
H
9
nero
che definisce P e l’asse del rosso
Per esempio, un colore è rosso quando H = 0°, è
giallo quando H = 60°, è blu quando H = 240°,
etc.
La saturazione S è proporzionale alla distanza di
P dal centro del triangolo HSI. Sul bordo del
triangolo i colori sono completamente saturi
L’intensità I è misurata rispetto ad una linea
perpendicolare al triangolo, passante per il
centro: i valori rappresentati da punti sotto il
triangolo tendono al nero, i valori sopra il
triangolo tendono al bianco
Il modello complessivo 3-D è una doppia
piramide a base triangolare
E. Ardizzone
21
Università degli Studi
di Palermo
Modelli del colore
9 Le espressioni di H, S, I in funzione dei valori R, G, B normalizzati
nell’intervallo [0,1] sono le seguenti:
1
I = ( R + G + B)
3
S = 1−
Sono da notare alcune condizioni:
• I valori di I e S sono normalizzati;
se si vuole lo stesso per H,
bisogna porre H = H/360
3
[min( R, G, B)]
R+G + B
1
 • Se (B/I) > (G/I), H = 360 - H

[( R − G ) + ( R − B)] 

2
• Se I = 0, S non è definita
H = cos −1 

12
2
(
)
(
)(
)
R
G
R
B
G
B
−
+
−
−
 • Se S = 0, H non è definita



[
]
9 Una volta convertita in HSI, l’immagine può essere elaborata
9 Per visualizzarla, occorre convertire da HSI a RGB. A tal fine si utilizzano
le componenti normalizzate r, g, b
E. Ardizzone
22
Università degli Studi
di Palermo
Modelli del colore
9 Le espressioni di r, g, b in funzione dei valori di H, S, I normalizzati tra 0
e 1 sono le seguenti (H deve essere denormalizzata prima dell’uso):
◆ Per 0° < H ≤ 120° (settore RG):
1
S cos H 
1
b = (1 − S ) r = 1 +
3  cos(60° − H ) 
3
◆ Per 120° < H ≤ 240° (settore GB):
H = H − 120°
1
S cos H 
1
g = 1 +
r = (1 − S )
3  cos(60° − H ) 
3
◆ Per 240° < H ≤ 360° (settore BR):
H = H − 240°
1
g = (1 − S )
3
1
S cos H 
b = 1 +
3  cos(60° − H ) 
E. Ardizzone
g = 1 − ( r + b)
b = 1 − (r + g )
r = 1 − ( g + b)
23
Università degli Studi
di Palermo
Modelli del colore
9 Per ottenere R, G, B, ricordando che:
R
R+G + B
si ha infine:
r=
g=
G
R+G + B
R = 3Ir
b=
B
R+G+ B
G = 3Ig
1
I = ( R + G + B)
3
B = 3Ib
9 Ancora basati sulla separazione tra la componente di luminanza e le
componenti di crominanza, e con queste ultime correlate a caratteristiche
percettive quali la tinta e la saturazione, sono i modelli HSV (o HSB), tinta saturazione - valore (brightness), HLS, tinta - luminanza - saturazione, HCI,
tinta - croma - intensità, etc.
9 Nel modello HSV, il solido di riferimento è una piramide a base esagonale
rovesciata, con la cima nell’origine (V = 0), mentre la base sta sul piano V =
1
E. Ardizzone
24
Università degli Studi
di Palermo
V
verde
1
ciano
180°
Modelli del colore
9 H è misurata dall’angolo descritto rispetto
giallo
60°
rosso
0°
bianco
magenta
blu
H
nero
S
0
verde
giallo
bianco
ciano
blu
magenta
rosso
all’asse verticale (rosso a 0°), mentre S
varia da 0 (sull’asse V) a 1 (sulla superficie
della piramide)
9 Anche V varia tra 0 (vertice della piramide),
corrispondente al nero, e 1 (base della
piramide), corrispondente al bianco. La
scala dei grigi è quindi sull’asse V
9 Per V = 0, i valori di H e S non hanno
importanza. Per S = 0, il valore di H è non
definito
9 E’ interessante notare che la base esagonale
corrisponde alla proiezione del cubo RGB
lungo la diagonale principale, che diventa
esattamente l’asse V
E. Ardizzone
25
Università degli Studi
di Palermo
Modelli del colore
9 Per la conversione RGB - HSV (algoritmo di Travis), assumendo R, G e B
normalizzati tra 0 e 1, si determinano innanzitutto:
M = max( R, G , B )
9 A questo punto:
m = min( R, G , B )
S=
V =M
M −m
M
(S = 0 se M = 0)
9 Per il calcolo della tinta, se S = 0, H è indefinita; altrimenti, vengono prima
determinati:
R′ =
M −R
M −m
G′ =
M −G
M −m
B′ =
M −B
M −m
e quindi:
se R = M e G = m, H = 5 + B ′
altrimenti, se R = M e G <> m, H = 1 − G ′
E. Ardizzone
26
Università degli Studi
di Palermo
Modelli del colore
altrimenti, se G = M e B = m, H = 1 + R ′
altrimenti, se G = M e B <> m, H = 3 − B ′
altrimenti, se R = M, H = 3 + G ′
altrimenti H = 5 − R ′
9 Il valore di H viene poi convertito in gradi moltiplicandolo per 60
9 In questo modo i valori S e V sono normalizzati tra 0 e 1, mentre H è
compreso tra 0 e 360
9 In modo analogo si può procedere alla conversione HSV - RGB
9 Nel modello HLS, il solido di riferimento è una doppia piramide a base
esagonale, con la tinta H misurata dall’angolo descritto rispetto all’asse
verticale (rosso a 0°, anche se alcuni autori pongono il blu a 0°), e la
saturazione S che varia da 0 (sull’asse L) a 1 (sulla superficie della
piramide)
E. Ardizzone
27
Università degli Studi
di Palermo
Modelli del colore
L
1
variazione è nella definizione dell’intensità
L, che vale 0 nel vertice inferiore (nero),
0.5 alla base della piramide, e 1 nel vertice
superiore (bianco)
9 Il modello HLS può essere pensato come
una deformazione del modello HSV
9 Le conversioni RGB - HLS e HLS - RGB
si possono effettuare con tecniche analoghe
a quelle utilizzate per il modello HSV
giallo
60°
verde
ciano
180°
9 In effetti, rispetto al modello HSV l’unica
bianco
rosso
0°
0,5
magenta
blu
nero
0
H
S
E. Ardizzone
28
Università degli Studi
di Palermo
Modelli del colore
9 Come esempio di applicazione dei modelli tinta - saturazione - intensità
nella elaborazione di immagini, torniamo all’immagine a colori usata in
precedenza, e alle sue componenti H, S, L (qui è stato usato il modello
HLS presente in un software commerciale)
9 Applicando l’elaborazione prescelta (in questo caso l’equalizzazione
dell’istogramma) alla sola componente di intensità, e lasciando inalterate
le componenti di crominanza, si evita la distorsione cromatica:
S
L
E. Ardizzone
H
29
Università degli Studi
di Palermo
Modelli del colore
9 Equalizzando infatti solo l’immagine di intensità, e riassemblando quindi
l’immagine a colori dalle componenti originali di saturazione e tinta e
dalla componente di intensità equalizzata, si ottiene:
originale
elaborata HLS
elaborata RGB
9 Insieme ai vantaggi visti, i modelli del tipo tinta - saturazione - intensità
presentano alcuni svantaggi
9 Innanzitutto, l’assunzione della intensità come media delle tre intensità R,
G e B o uguale ad una di esse non tiene conto delle caratteristiche del
sistema visivo umano, che ha differente sensibilità rispetto ai tre canali
E. Ardizzone
30
Università degli Studi
di Palermo
Modelli del colore
9 Inoltre l’assunzione implicita di linearità della componente di intensità
non ha alcuna connessione con le non linearità del sistema visivo umano
rispetto ai tre canali
9 La discontinuità della tinta a 360°, derivante dal sistema di coordinate
polari, crea problemi nella rappresentazione di tinte simili nell’intorno del
rosso (0°)
9 La tinta è peraltro calcolata in modo diverso in settori differenti
dell’angolo giro, di 60° in 60°, e questo può provocare altre discontinuità
nella rappresentazione del colore, al confine tra un settore e l’altro
9 Infine l’indipendenza dall’hardware è solo apparente, in quanto i valori di
tinta, saturazione e intensità sono in tutti i modelli di questo tipo espressi
mediante combinazioni lineari o non lineari di R, G e B, i cui valori in
realtà dipendono dai dispositivi
E. Ardizzone
31
Università degli Studi
di Palermo
Modelli del colore
9 Il modello CMY è basato sui tre colori secondari ciano, magenta e giallo,
che, come è noto, sono i primari dei coloranti
9 Il modello è pertanto utilizzato nelle operazioni di output di immagini su
carta (stampanti, fotocopiatrici, plotter)
9 La conversione è molto semplice:
 C  1  R 
 M  = 1 − G 
    
 Y  1  B 
dove tutte le intensità si intendono normalizzate tra 0 e 1
9 Una variante di questo modello usa esplicitamente il nero, indicato con K,
come quarto colore. Il modello CMYK trova largo impiego nei processi di
stampa a 4 colori
E. Ardizzone
32
Università degli Studi
di Palermo
Modelli del colore
9 I vantaggi principali del modello CMYK rispetto al modello CMY sono
relativi ai problemi posti dalla riproduzione del nero mediante combinazione
di ciano, magenta e giallo:
▼ Il costo degli inchiostri colorati è normalmente maggiore di quello
dell’inchiostro nero
▼ La stampa di tre strati di inchiostro rende la carta molto umida, se la si
sostituisce con la stampa di un solo strato si ottiene un processo più
asciutto, quindi più rapido e in definitiva meno costoso
▼ Infine, se la stampa a tre colori avviene in modo non perfettamente
registrato dal punto di vista meccanico, ai bordi delle regioni nere si
noteranno sfumature di colore, particolarmente fastidiose se si pensa che
il sistema visivo umano è particolarmente sensibile ai dettagli nelle aree
nere e bianche. La stampa del nero con un solo inchiostro minimizza la
visibilità di questi errori
E. Ardizzone
33
Università degli Studi
di Palermo
Modelli del colore
9 La conversione CMY - CMYK può essere effettuata nel modo seguente:
C = (C - K)/(1 - K)
K = min(C, M, Y)
M = (M - K)/(1 - K)
Y = (Y - K)/(1 - K)
9 Il modello YIQ è utilizzato nella trasmissione TV a colori secondo lo
standard NTSC, utilizzato nell’America del Nord e in Giappone. Y è la
componente di luminanza, mentre le due componenti di crominanza, I e Q,
vengono rispettivamente chiamate infase e quadratura, e non hanno alcuna
relazione con caratteristiche percettive come tinta e saturazione
9 In questo, come negli altri modelli utilizzati nei vari standard televisivi, la
separazione tra componente di luminanza e componenti di crominanza dà il
vantaggio fondamentale della compatibilità con i ricevitori B/N
9 Inoltre, data la maggiore sensibilità del sistema visivo umano alle variazioni
di luminanza che alle variazioni cromatiche, la componente Y può essere
campionata più finemente delle altre due
E. Ardizzone
34
Università degli Studi
di Palermo
Modelli del colore
9 La conversione da RGB a YIQ è così definita:
0.114   R 
Y  0.299 0.587
 I  = 0.596 − 0.275 − 0.321 G 
 
  
Q  0.212 − 0.523 0.311   B 
9 La conversione da YIQ a RGB può essere ottenuta invertendo la matrice di
conversione
9 Il modello YUV è adottato dallo standard televisivo PAL, adoperato in larga
parte dell’Europa, in Australia ed in diversi Paesi dell’Asia:
0.587
0.114   R 
Y   0.299
U  = − 0.147 − 0.289 0.436  G 
 
  
V   0.615 − 0.515 − 0.100  B 
9 E’ da notare come in questi modelli la luminanza Y sia una combinazione
lineare dei primari, ma con pesi non uguali: questo riflette il differente
comportamento del sistema visivo umano rispetto alle differenti frequenze dei
primari
E. Ardizzone
35
Università degli Studi
di Palermo
Modelli del colore
9 Il modello YDbDr è usato nello standard televisivo SECAM, usato in
Francia, Russia ed in altri Paesi dell’Europa dell’Est e dell’Africa
0.587
0.114   R 
 Y   0.299
 Db = − 0.450 − 0.883 1.333  G 
  
 
 Dr   − 1.333 1.116 − 0.217  B 
9 Il modello YCbCr è una variante del modello YUV, studiata in modo da
evitare che le componenti di crominanza diventino negative
0.504
0.098   R   16 
 Y   0.257
Cb  = − 0.148 − 0.291 0.439  G  + 128
   
  
Cr   0.439 − 0.368 − 0.071  B  128
9 Questo modello è utilizzato in alcuni standard internazionali di codifica
digitale, come JPEG e MPEG, e per la TV digitale
E. Ardizzone
36
Università degli Studi
di Palermo
Modelli del colore
9 Il principale difetto del sistema CIE (e di tutti i modelli del colore da esso
9
9
9
9
derivati mediante trasformazioni lineari o non lineari di coordinate) è che
esso non è dotato di uniformità percettiva
In altre parole, dati due colori C1 e C2, consideriamone le distanze ∆C,
rispettivamente, dal colore C3 = C1 + ∆C e dal colore C4 = C2 + ∆C
Supponendo che le due distanze siano quantitativamente uguali, sarebbe
desiderabile che i due colori C3 e C4 fossero percepiti come ugualmente
distanti da C1 e C2
Dato che il sistema non è percettivamente uniforme, in generale le due
distanze, benchè uguali, saranno percepite come differenti
Questo pone ovviamente problemi enormi nelle applicazioni che si basano
sulle differenze di colore, o sulla discriminazione di similarità tra colori,
etc.
E. Ardizzone
37
Università degli Studi
di Palermo
Modelli del colore
9 Per ovviare al problema, dopo molti anni di elaborazione, la CIE ha
standardizzato nel 1976 due spazi di colore uniformi, chiamati rispettivamente
CIE L*u*v* e CIE L*a*b* (u e v non hanno alcuna relazione con le
componenti video U e V)
9 Entrambi i due modelli proposti migliorano la non uniformità percettiva del
sistema CIE XYZ originale di un fattore 13, ma hanno il difetto di essere
molto impegnativi dal punto di vista computazionale. Sono entrambi non
lineari, ma con equazioni di conversione reversibili
9 Analizziamo in maggiore dettaglio la costruzione del sistema CIE L*u*v*.
Indicando con Xn, Yn e Zn i valori di tristimolo che rappresentano il bianco, si
ha la seguente relazione non lineare per L* (la non linearità intende emulare la
risposta logaritmica dell’occhio):
116(Y / Yn )1 3 − 16 per Y Yn > 0.008856
L* = 
per Y Yn ≤ 0.008856
 903.3(Y / Yn )
E. Ardizzone
38
Università degli Studi
di Palermo
9 Si ha inoltre:
dove:
u′ =
Modelli del colore
u* = 13L * (u ′ − u n′ )
4X
X + 15Y + 3Z
v* = 13L * (v′ − vn′ )
v′ =
9Y
X + 15Y + 3Z
4X n
9Yn
′
vn =
X n + 15Yn + 3Z n
X n + 15Yn + 3Z n
9 Si noti che L* varia tra 0 e 100 per una luminanza relativa (Y/Yn) variabile
tra 0 e 1
9 L*, u* e v* sono coordinate cartesiane che giocano lo stesso ruolo di Y
(luminanza), x e y nel diagramma CIE del 1931
9 Altri tre parametri, più significativi dal punto di vista del sistema visivo
umano, sono la croma, C*, la tinta, huv e la saturazione psico-metrica, suv:
u n′ =
C* = (u *2 + v *2 )1 2
huv = tan −1 (
v*
)
u*
E. Ardizzone
suv = C *
L*
39
Università degli Studi di Palermo
Elaborazione delle Immagini Digitali
Parte K
Prof. Edoardo Ardizzone
A.A. 2001-2002
Università degli Studi
di Palermo
Analisi di immagini: segmentazione
9 Le tecniche di analisi automatica delle immagini sono finalizzate alla
9
9
9
9
estrazione di informazioni, in forma più o meno aggregata, dalle immagini
stesse
Il primo passo dell’analisi consiste in genere nella segmentazione della
immagine, cioè in una sua suddivisione in parti significative da un qualche
punto di vista
Nelle operazioni di segmentazione di basso livello si parla più propriamente
di individuazione delle regioni che costituiscono l’immagine
Invece nelle operazioni di segmentazione dette di alto livello lo scopo è
direttamente l’individuazione degli oggetti presenti nell’immagine
La corrispondenza tra regioni e oggetti implica l’esplicitazione di aspetti
semantici, operazione che non è quasi mai possibile a partire dalla sola
analisi automatica
E. Ardizzone
2
Università degli Studi
di Palermo
Analisi di immagini: segmentazione
9 Il livello di dettaglio al quale deve spingersi la segmentazione è inoltre
9
9
9
9
dipendente dall’applicazione, nel senso che la segmentazione può arrestarsi
quando tutti gli oggetti di interesse per l’applicazione sono stati isolati
E’ intuibile la complessità intrinseca del processo di segmentazione
Pertanto, laddove possibile esso è in genere accompagnato da un insieme di
accorgimenti tendenti ad accrescerne le probabilità di successo
Per esempio, in molte applicazioni industriali è possibile controllare le
condizioni in cui l’immagine da analizzare è acquisita (posizione e natura
della sorgente di illuminazione, posizione e tipologia dei sensori, etc.).
Gli algoritmi di segmentazione sono in genere basati o sulla similarità o sulla
discontinuità di proprietà dei pixel, quali per esempio il livello di grigio, il
colore, la regolarità spaziale, la velocità, etc.
E. Ardizzone
3
Università degli Studi
di Palermo
Estrazione di punti isolati e linee
9 Basati sull’analisi della discontinuità sono per esempio gli algoritmi di
estrazione dei contorni (edge) o di altre caratteristiche (punti isolati, linee)
9 Basati sull’analisi della similarità sono invece i metodi di soglia
(thresholding) e quelli cosiddetti di regionalizzazione
9 L’approccio più comune alla rilevazione di una discontinuità prevede l’uso
di una maschera:
9
R = w1 z1 + w2 z 2 + L + w9 z9 = ∑ wi zi
i =1
E. Ardizzone
4
Università degli Studi
di Palermo
Estrazione di punti isolati e linee
9 Le discontinuità probabilmente più semplici da rilevare sono i punti isolati
9 Il punto corrispondente alla posizione centrale della maschera può essere
considerato un punto isolato quando, per esempio con riferimento alla
maschera mostrata, si ha:
R >T
-1 -1 -1
-1 8 -1
-1 -1 -1
essendo T un opportuno valore di soglia (non negativo)
9 La motivazione è che il valore di grigio di un punto isolato è normalmente
molto differente da quello dei suoi vicini
9 Analogamente, l’individuazione di linee isolate può essere effettuata
ricorrendo a maschere,. per esempio, del tipo:
E. Ardizzone
5
Università degli Studi
di Palermo
Estrazione di punti isolati e linee
-1 -1 -1
2 2 2
-1 -1 -1
-1 -1 2
-1 2 -1
2 -1 -1
-1 2 -1
-1 2 -1
-1 2 -1
2 -1 -1
-1 2 -1
-1 -1 2
9 La prima maschera risponde più intensamente alle linee orizzontali (spesse un
9
9
9
9
pixel): con uno sfondo costante, il massimo di R si ha infatti quando la linea
coincide con la riga centrale della maschera
Analogamente, la seconda maschera risponde meglio a linee orientate a 45°, la
terza a linee verticali, la quarta a linee orientate a -45°
Siano, rispettivamente, R1, R2, R3 e R4 le risposte delle quattro maschere
Supponiamo di passare tutte e quattro le maschere su una immagine, e che in
un certo punto si abbia Ri > R j per ogni j ≠ i
Il punto in questione può essere allora associato, con maggiore probabilità, con
una linea orientata nella direzione della maschera i
E. Ardizzone
6
Università degli Studi
di Palermo
Estrazione di contorni
9 L’estrazione dei contorni (edge) è sicuramente uno degli argomenti che
9
9
9
9
hanno ricevuto più attenzione nella letteratura sull’image processing
Il contorno di un oggetto rappresenta infatti la separazione tra l’oggetto e lo
sfondo o tra l’oggetto ed altri oggetti, per cui la sua estrazione è molto spesso
il primo passo verso l’individuazione dell’oggetto
Un edge si presenta in una immagine come il confine tra due regioni
caratterizzate da proprietà dei livelli di grigio in qualche modo distinguibili
Nel seguito ipotizzeremo che le regioni in questione siano sufficientemente
omogenee, di modo che la determinazione della transizione tra le due regioni
sia possibile sulla sola base della discontinuità dei valori di grigio
Le prime tecniche di edge detection che analizziamo sono basate
sull’applicazione di un operatore locale di derivata, come è evidenziato dalla
figura seguente:
E. Ardizzone
7
Università degli Studi
di Palermo
Estrazione di contorni
9 L’immagine considerata consiste di una
striscia verticale chiara su uno sfondo
scuro, e viceversa
9 L’andamento o profilo dei livelli di
grigio lungo una delle linee della
immagine evidenzia le transizioni
corrispondenti ai contorni
9 Si noti che i contorni sono modellati
mediante un profilo a rampa, piuttosto
che mediante un gradino
9 Tale modello riflette più fedelmente
l’andamento dei contorni effettivi in un
immagine reale, sempre affetti dal
blurring, anche se modesto, dovuto al
campionamento
E. Ardizzone
8
Università degli Studi
di Palermo
Estrazione di contorni
9 Il fatto che la derivata prima e la derivata seconda del profilo siano
significativamente diverse da 0 soltanto in corrispondenza alle transizioni
costituisce la motivazione dell’uso di operatori derivativi per l’estrazione dei
contorni
9 Ci sono però significative differenze tra le due operazioni, come mostrano le
seguenti osservazioni
9 La derivata prima del profilo è positiva in corrispondenza ad una transizione
scuro-chiaro, negativa in corrispondenza ad una transizione chiaro-scuro,
nulla nelle zone a livello di grigio costante
9 La derivata seconda è positiva in prossimità di un contorno, dalla parte scura
del contorno stesso, negativa dalla parte chiara del contorno, nulla nelle zone
a livello di grigio costante, ed esibisce un passaggio per lo zero o zero
crossing esattamente in corrispondenza alle transizioni
E. Ardizzone
9
Università degli Studi
di Palermo
Estrazione di contorni
9 Riassumendo, il valore della derivata prima può essere utilizzato per
determinare la presenza di contorni in una immagine, gli zero crossing della
derivata seconda ne possono consentire la precisa localizzazione, il segno
della derivata seconda permette di stabilire l’appartenenza di un pixel al
versante scuro o al versante chiaro di un contorno
9 L’applicazione dei concetti precedentemente illustrati necessita tuttavia di
alcune cautele, essenzialmente legate alla natura digitale delle immagini
9 A tal fine, considereremo nel seguito i seguenti esempi di contorni ideali,
rispettivamente a gradino e a rampa (con differenti pendenze):
a
a a a b b b b
a a a b b b b
a a a b b b b
b
h
y0
a a a c b b b
a a a c b b b
a a a c b b b
a a a d e b b
a a a d e b b
a a a d e b b
b
h
a
y
y0
E. Ardizzone
b
h
a
y
y0
y
10
Università degli Studi
di Palermo
Estrazione di contorni
9 Per la ricerca di contorni di orientazione qualunque, valgono le stesse
osservazioni, considerando il profilo di grigio lungo una direzione
ortogonale al contorno nel punto considerato
9 Il modo usuale di effettuare le operazioni di derivata prima e derivata
seconda di una f(x,y) in un punto è quello di calcolare il gradiente e il
laplaciano in quel punto
9 Ricordiamo che data una funzione f(x,y), il gradiente di f in (x,y) è il vettore:
 ∂f 
G x   ∂x 
1
∇f =   =  ∂f  il cui modulo è:∇f = G x 2 + G y 2 2 ≈ G x + G y
G y   
 ∂y 
[
]
 Gy 
mentre la direzione è individuata dall’angolo α (x, y ) = tan  
 Gx 
misurato rispetto all’asse x
−1
E. Ardizzone
11
Università degli Studi
di Palermo
Generazione del gradiente secondo direzioni ortogonali
9 La presenza di un edge in un punto dell’immagine può quindi essere
ipotizzata se il modulo del gradiente risulta superiore ad una soglia
9 La maniera più semplice di generare una approssimazione discreta del
gradiente prende in considerazione la differenza mobile (running difference)
dei pixel nelle due direzioni:
Le componenti del gradiente nel pixel z5 sono
Gx = z5 - z8 e Gy = z5 - z6 , per cui:
[
∇f = ( z 5 − z 8 ) + ( z 5 − z 6 )
2
2
]
1
2
≈ z 5 − z8 + z 5 − z 6
9 In alternativa, si possono usare le differenze incrociate:
[
∇f = ( z 5 − z 9 ) + ( z 6 − z 8 )
2
2
]
1
2
≈ z5 − z9 + z 6 − z8
E. Ardizzone
12
Università degli Studi
di Palermo
Generazione del gradiente secondo direzioni ortogonali
9 L’implementazione di queste equazioni può essere effettuata usando
maschere 2 x 2. Per esempio, l’equazione con i valori assoluti delle
differenze incrociate può essere implementata usando le due maschere:
1 0
0 -1
0 1
-1 0
I valori assoluti delle risposte
delle due maschere vengono
sommati per determinare ∇f
9 Le due maschere sono dette operatori di Roberts
9 Più comune è tuttavia l’impiego di maschere 3 x 3, che rendono più
semplici le operazioni di filtraggio:
0 0 0
0 1 0
0 -1 0
0 0 0
0 1 -1
0 0 0
0 0 0
0 1 0
0 0 -1
Running difference
0 0 0
0 0 1
0 -1 0
Roberts
E. Ardizzone
13
Università degli Studi
di Palermo
Generazione del gradiente secondo direzioni ortogonali
9 Utilizzando la differenza mobile per calcolare il gradiente di riga nelle
immagini con edge ideali a gradino e a rampa, si ottiene una immagine di
edge i cui valori sono, per ogni riga, rispettivamente:
grigi a a a b b b b
a
edge 0 0 h 0 0 0 0
0 0 h/2 h/2 0 0 0
rampa più ripida
a −c = c−b = h 2
gradino
a
a
c
b b b
a
a
a
d e
b b
0 0 h/3 h/3 h/3 0 0
rampa meno ripida
a −d = d −e = e−b = h 3
9 E’ evidente che i contorni a rampa non possono essere localizzati dall’edge
detector a differenza mobile con la precisione del pixel, come sarebbe
necessario. Questo provoca, nel caso di immagini reali, la presenza di
contorni non ben delineati
9 Inoltre il metodo risulta molto sensibile alle piccole fluttuazioni di intensità, e
tende ad esaltare il rumore presente nell’immagine, quest’ultimo effetto
essendo comunque tipico di tutti gli operatori derivativi
E. Ardizzone
14
Università degli Studi
di Palermo
Generazione del gradiente secondo direzioni ortogonali
Esempio:
nella versione a
livelli di grigio:
9 Applicando l’operatore di running difference si ottiene, rispettivamente per
la componente orizzontale, per la componente verticale e per l’intera
immagine di edge (combinazione delle prime due):
+
Differenza orizzontale
(edge verticali)
=
Differenza verticale
(edge orizzontali)
E. Ardizzone
Immagine di edge
15
Università degli Studi
di Palermo
Generazione del gradiente secondo direzioni ortogonali
9 La localizzazione dei contorni può essere migliorata modificando l’operatore
differenziale in modo da tener conto dei valori dei pixel da entrambe le parti
del potenziale punto di edge:
Sempre con riferimento al pixel z5 si ha:
Gx = z2 - z8 e Gy = z4 - z6
9 Applicando questo operatore, che prende il nome di differenza separata, si
ottiene infatti, per i contorni ideali a rampa già presi in considerazione:
grigi
a
a
a
c
b b b
a
a
edge
0 0 h/2 h h/2 0 0
0
0 h/3 2h/3 2h/3 h/3 0
E. Ardizzone
a
d
e
b
b
16
Università degli Studi
di Palermo
Operatori di Prewitt e Sobel
9 Il metodo rimane però sensibile alle fluttuazioni di illuminazione e al rumore
9 Da questo punto di vista, si possono ottenere miglioramenti utilizzando
operatori di gradiente in grado di effettuare simultaneamente la
differenziazione lungo una direzione e una media spaziale lungo la direzione
ortogonale
9 Di questo tipo sono gli operatori di Prewitt e Sobel:
Operatori di Prewitt
Operatori di Sobel
-1 -1 -1
0 0 0
1 1 1
-1 0 1
-1 0 1
-1 0 1
-1 -2 -1
0 0 0
1 2 1
-1 0 1
G x = ( z 7 + 2 z8 + z 9 ) − ( z1 + 2 z 2 + z 3 )
-2 0 2
G y = ( z 3 + 2 z 6 + z 9 ) − ( z1 + 2 z 4 + z 7 )
-1 0 1
E. Ardizzone
G x = ( z 7 + z8 + z 9 ) − ( z1 + z 2 + z 3 )
G y = ( z 3 + z 6 + z 9 ) − ( z1 + z 4 + z 7 )
17
Università degli Studi
di Palermo
Operatori di Prewitt e Sobel
9 Alcuni autori in realtà preferiscono una formulazione in cui i gradienti di riga
e colonna risultano normalizzati in modo da garantire medie pesate unitarie
per i pixel posti da un lato e dall’altro dell’eventuale edge:
Operatori di Prewitt
Operatori di Sobel
-1 -1 -1
1
× 0 0 0
3
1 1 1
-1 0 1
1
× -1 0 1
3
-1 0 1
-1 -2 -1
1
× 0 0 0
4
1 2 1
-1 0 1
1
× -2 0 2
4
-1 0 1
E. Ardizzone
18
Università degli Studi
di Palermo
Operatori di Prewitt e Sobel
9 Essendo del tipo a differenza separata nella direzione di calcolo del
gradiente, entrambi gli operatori localizzano correttamente i contorni a
rampa spessi un pixel, mentre presentano ancora problemi per le rampe
meno ripide
9 Negli operatori di Sobel, il peso raddoppiato dei coefficienti N, S, W e E è
motivato dalla volontà di attribuire la medesima importanza al contributo
fornito al gradiente da ogni pixel dell’intorno, in modo da rendere l’operatore
ugualmente sensibile nei confronti di contorni comunque orientati
Sobel
Running difference
E. Ardizzone
Prewitt
19
Università degli Studi
di Palermo
Operatori di Prewitt e Sobel
9 Come si è detto, gli operatori di gradiente risultano poco efficaci in presenza
di rumore. Per esempio, applicando gli operatori di Sobel ad una versione
rumorosa dell’immagine di test si ottiene:
9 Il problema può essere alleviato estendendo l’area di calcolo del gradiente, il
che consente una migliore azione di media
E. Ardizzone
20
Università degli Studi
di Palermo
Operatori di Prewitt e Sobel
9 Per esempio, l’operatore di Prewitt
7 x 7 per il calcolo del gradiente di
riga è mostrato a fianco
1
1
1
1
1
1
1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
0
0
0
0
0
0
0
-1 -1 -1
-1 -1 -1
-1 -1 -1
-1 -1 -1
-1 -1 -1
-1 -1 -1
-1 -1 -1
9 Più in generale, possono essere presi in considerazione degli operatori
composti, nei quali una operazione di smoothing per la riduzione del rumore
è compiuta prima dell’operazione di differenziazione
E. Ardizzone
21
Università degli Studi
di Palermo
Operatori di gradiente composti
9 In generale, la risposta impulsiva di un operatore di gradiente composto è
definita come
GC ( x, y ) = G ( x, y ) ∗ M ( x, y )
dove G(x,y) ed M(x,y) sono, rispettivamente, la risposta impulsiva di uno
degli operatori di gradiente già visti e la risposta impulsiva di un filtro passabasso
9 Per esempio, considerando rispettivamente il gradiente di riga 3 x 3 di
Prewitt e il filtro 3 x 3 di media mobile, si ottiene:
GCy =
1
×
18
1
2
3
2
1
1 0 -1
2 0 -2
3 0 -3
2 0 -2
1 0 -1
E. Ardizzone
-1
-2
-3
-2
-1
22
Università degli Studi
di Palermo
Operatore DroG
9 Un esempio molto noto di operatore di gradiente composto è la derivata
della gaussiana (DroG), nel quale l’operazione di smoothing utilizza una
funzione gaussiana
9 La gaussiana è una funzione a simmetria rotazionale la cui equazione nel
caso 2-D continuo è la seguente:
 x2 + y2 
 r2 
 = exp − 2 
h( x, y ) = exp −
2 
2σ 

 2σ 
dove σ è la deviazione standard,
ossia il valore di r per il quale h
si riduce a 1/√e del massimo
9 Il valore di σ determina l’apertura della gaussiana, che aumenta al crescere
di σ, come mostra la figura seguente, in cui h è rappresentata, per diversi
valori di σ, al variare di r, quindi in un piano passante per il suo asse di
simmetria
E. Ardizzone
23
Università degli Studi
di Palermo
Operatore DroG
9Come si passa dalla
formulazione continua della
risposta impulsiva del filtro ad
una maschera utilizzabile?
9Una soluzione classica prevede
il campionamento della
funzione continua, a partire
dalla origine, che rappresenta il
punto di applicazione della
maschera
9 Nel caso della gaussiana, il ruolo di σ è determinante nella definizione dei
pesi della maschera: se l’apertura è maggiore, l’azione di filtraggio può
riguardare un intorno più ampio del punto centrale
9 A tal fine, σ è normalmente espresso in pixel
E. Ardizzone
24
Università degli Studi
di Palermo
Operatore DroG
9 Una gaussiana 2D (con σ = 0.5) e le corrispondenti maschere 3 x 3 e 5 x 5
sono mostrate di seguito (si noti la normalizzazione che rende unitaria la
somma dei pesi)
0.0113 0.0838 0.0113
0.0838 0.6193 0.0838


0.0113 0.0838 0.0113
0.0000
0.0000

0.0002
0.0000

0.0000
E. Ardizzone
0.0000 0.0002 0.0000 0.0000 
0.0113 0.0837 0.0113 0.0000 

0.0837 0.6187 0.0837 0.0002
0.0113 0.0837 0.0113 0.0000 
0.0000 0.0002 0.0000 0.0000 
25
Università degli Studi
di Palermo
Operatore DroG
9 Tornando all’operatore DroG, le risposte impulsive lungo le due direzioni,
che lo caratterizzano completamente, si possono determinare effettuando la
convoluzione delle due componenti del gradiente, nella formulazione
preferita, con la maschera precedente che caratterizza la gaussiana
9 In alternativa, si può procedere al calcolo delle derivate della gaussiana
rispetto a x e a y, che rappresentano le componenti dell’operatore DroG nel
caso continuo:
 x2 + y2 
x
∂h

= − 2 exp −
2
∂x
2σ 
σ

 x2 + y2 
y
∂h

= − 2 exp −
2
∂y
2σ 
σ

9 Le corrispondenti maschere si possono ottenere campionando le due funzioni
9 Per esempio, per la componente lungo x si ha la seguente situazione, sempre
nell’ipotesi σ = 0.5:
E. Ardizzone
26
Università degli Studi
di Palermo
Operatore DroG
per y = 0
9 Campionando, si ottiene la maschera 3 x 3
mostrata (i pesi sono normalizzati per
ottenere media unitaria lungo y)
9 In maniera analoga si può agire per la
componente lungo y
E. Ardizzone
0.7733
0.1129 
 0.1129

 0
0
0


− 0.1129 − 0.7733 − 0.1129
27
Università degli Studi
di Palermo
Operatore DroG
9 Confrontando con il filtro di Sobel, applicato alla stessa immagine rumorosa:
Sobel
DroG
9 Tutti gli operatori derivativi finora presentati hanno una origine euristica
9 Un approccio analitico è stato invece seguito da J. Canny, che ha studiato in
dettaglio il comportamento dell’operatore gradiente applicato ad un contorno
rumoroso
9 Nel caso 1-D, il contorno, supposto a gradino e di ampiezza hE, è corrotto da
rumore bianco gaussiano, con deviazione standard σn
E. Ardizzone
28
Università degli Studi
di Palermo
Metodo di Canny
9 L’edge detection è effettuata per convoluzione del contorno rumoroso f(x)
con una h(x) antisimmetrica e nulla all’esterno dell’intervallo [-W,W], quindi
con un andamento simile a quello dell’operatore DroG
9 Un edge è individuato in corrispondenza ad un massimo locale della
convoluzione f (x )∗ h(x)
9 La h(x) è scelta in modo da soddisfare tre criteri:
1. Capacità di individuazione (detection) dell’edge, attraverso la
massimizzazione del rapporto segnale-rumore (delle ampiezze) del
gradiente. Questa condizione consente di ottenere una bassa probabilità
di mancare punti di edge reali (falsi negativi), e al contempo una bassa
probabilità di considerare come punti di edge punti che non sono tali
(falsi positivi). L’espressione adoperata per il rapporto s/r è:
0
h( x)dx
hE
∫
−W
snr =
S(h) , con S ( h) = W
2
σn
[
]
h
(
x
)
dx
∫
E. Ardizzone
−W
29
Università degli Studi
di Palermo
Metodo di Canny
2. Capacità di localizzazione dell’edge: i punti riconosciuti come di edge
dovrebbero essere il più possibile vicini al centro dell’edge effettivo. A
tal fine è definito un fattore di localizzazione (h’ è la derivata di h):
LOC =
3.
9
hE
L(h) , con L( h) =
σn
h′(0)
W
2
′
[
]
h
(
x
)
dx
∫−W
Unicità della risposta dell’operatore: ci dovrebbe essere una sola
risposta dell’edge detector in corrispondenza ad un edge effettivo. A tal
fine la distanza xm tra due picchi del gradiente, in presenza solo di
rumore, è supposta uguale ad una frazione k della larghezza W
dell’operatore:
xm = kW
Canny ha combinato i tre criteri, cercando il massimo del prodotto S(h)L(h)
soggetto al vincolo espresso dalla condizione 3
E. Ardizzone
30
Università degli Studi
di Palermo
Metodo di Canny
9 Anche se la complessità della formulazione impedisce la determinazione di
una soluzione analitica, è possibile procedere alla ricerca del massimo con
metodi numerici
9 La figura mostra i profili di diversi valori della risposta impulsiva del filtro di
Canny al crescere di xm
9 La figura mostra i profili di diversi
valori della risposta impulsiva del filtro
di Canny al crescere di xm
9 Si può notare come per grandi valori di
xm l’operatore di Canny è ben
approssimato dall’operatore DroG
9 In effetti, il filtro adoperato nelle
implementazioni del metodo di Canny
è proprio di questo tipo
E. Ardizzone
31
Università degli Studi
di Palermo
Metodo di Canny
9 La qualità dei risultati ottenibili con il metodo di Canny, superiore a quella di
tutti gli altri operatori di gradiente, si giustifica con il fatto che il metodo
utilizza due soglie, una per la individuazione degli edge più netti, l’altra per
l’individuazione degli edge più deboli.
9 Questi ultimi sono però presi in considerazione solo se risultano connessi ad
edge netti
9 Diminuisce pertanto la influenza del rumore, ed aumenta la probabilità di
rivelare ‘veri’ edge deboli
E. Ardizzone
32
Università degli Studi
di Palermo
Metodo di Canny
9 Per una immagine rumorosa (al 5%):
9 In tutti i metodi di edge detection basati sul gradiente, occorre confrontare il
risultato dell’operazione di derivazione in ogni punto dell’immagine con uno
(o più) valori di soglia, per determinare se si tratta di un punto di edge
9 Il valore di soglia determina direttamente la sensibilità dell’edge detector
9 Per immagini non rumorose, la soglia può essere scelta in modo che le
discontinuità di ampiezza, anche relative a zone a basso contrasto, siano
interpretate come edge
E. Ardizzone
33
Università degli Studi
di Palermo
Scelta del valore di soglia
9 Nelle immagini rumorose la scelta del valore di soglia è molto più critica,
diventando un elemento di tradeoff tra la possibilità di rivelare falsi contorni
(indotti dal rumore) e la possibilità di mancare contorni veri (relativi a
piccoli dettagli)
9 Il problema, ampiamente trattato nella letteratura, può essere affrontato su
base statistica: si considerino sia l’evento costituito dalla presenza di edge in
una regione dell’immagine, sia l’evento costituito dalla assenza di edge, e
siano P(edge) e P(no-edge) le probabilità a priori dei due eventi
9 Il processo di edge detection può essere caratterizzato dalla probabilità di
rivelazione corretta e dalla probabilità di rivelazione falsa:
∞
PD = ∫ p(G | edge)dG
t
∞
PF = ∫ p(G | no - edge) dG
t
dove t è il valore di soglia e p(G|edge) e p(G|no-edge) sono, rispettivamente,
le densità di probabilità condizionali del gradiente G nel punto considerato
E. Ardizzone
34
Università degli Studi
di Palermo
Scelta del valore di soglia
9 La figura mostra un andamento tipico delle due densità di probabilità:
9 La probabilità di un errore di classificazione può essere espressa come:
PE = [1 − PD ]P (edge) + PF P (no - edge)
E. Ardizzone
35
Università degli Studi
di Palermo
Scelta del valore di soglia
9 Il minimo di tale probabilità di errore si ottiene scegliendo la soglia in modo
che un edge sia ritenuto presente quando:
Questa è una formulazione della regola
p (G | edge)
P(no - edge)
di decisione con errore minimo, secondo
≥
p (G | no - edge)
P(edge)
il ben noto test di Bayes
9 Un’altra strategia di decisione molto adoperata nell’approccio statistico alla
determinazione del valore ottimo di soglia prevede che t sia tale da
minimizzare PF per una prefissata PD ritenuta accettabile (test di NeymanPearson)
9 L’applicazione di regole di decisione statistiche presuppone comunque la
conoscenza delle probabilità a priori della presenza e dell’assenza di edge e
delle densità di probabilità condizionali del gradiente
9 Per la stima delle prime si può ricorrere all’analisi di altre immagini della
classe considerata, mentre la determinazione delle seconde può essere
effettuata ricorrendo al modello statistico di un edge ideale corrotto da
E. Ardizzone
36
rumore
Università degli Studi
di Palermo
Scelta del valore di soglia
9 L’approccio statistico presenta comunque due ordini di difficoltà, il primo
9
9
9
9
legato alla affidabilità del modello statistico di edge e il secondo alla
difficoltà di calcolo delle densità condizionali di gradiente
Tali difficoltà possono essere superate ricorrendo ad un approccio basato su
tecniche di pattern recognition
In questo caso, si prendono in considerazione un gran numero di regioni di
immagini rumorose, alcune contenenti edge, altre no, che vengono
considerate come prototipi utilizzabili come training set per l’algoritmo di
minimizzazione dell’errore di classificazione
E’ da notare che in molti casi questo approccio conduce a valori di soglia
ottimi che danno PF = 1 – PD, che è lo stesso risultato ottenuto dalla
procedura di decisione bayesiana per P(edge) = P(no-edge)
Per bassi valori del rapporto segnale-rumore dell’immagine (una misura del
SNR è (h/σn)2, essendo h l’altezza dell’edge e σn la deviazione standard del
rumore), il valore ottimo di soglia si colloca intorno al 50 – 70 % del valore
di picco del gradiente (per SNR < 10)
E. Ardizzone
37
Università degli Studi
di Palermo
Scelta del valore di soglia
9 Il valore ottimo di soglia tende a decrescere all’aumentare del rapporto
segnale-rumore: come regola del pollice, se PF = 1 – PD, la variazione del
valore di soglia ottimo può essere assunta lineare con il SNR
9 Per esempio, con SNR = 100, si può assumere che la soglia ottima sia tra il 5
e il 10 % del valore di picco del gradiente
9 Alla mappa di edge risultante dalla azione di un edge detector di gradiente
possono naturalmente essere applicate operazioni di post processing tendenti
ad eliminare o ridurre la presenza di tratti di edge molto piccoli, ad
assottigliare i contorni rivelati, etc
E. Ardizzone
38
Università degli Studi
di Palermo
Operatori basati sul laplaciano
9 Come si è detto, la determinazione degli zero crossing della derivata seconda
della f(x,y) localizza con precisione i contorni dell’immagine, mentre il segno
della derivata seconda permette di stabilire l’appartenenza di un pixel al
versante scuro o al versante chiaro di un contorno
9 Un modo molto comune di effettuare le operazioni di derivata seconda di
una f(x,y) in un punto è quello di calcolare il laplaciano in quel punto
9 Ricordiamo che data una funzione f(x,y), il laplaciano di f in (x,y) è definito
come:
∂2 f ∂2 f
2
L ( x, y ) = ∇ f = 2 + 2
∂x
∂y
9 Il modo più semplice di approssimare il laplaciano nel caso discreto consiste
nel calcolo delle differenze delle derivate prime lungo i due assi:
L( x, y ) = [ f ( x, y ) − f ( x − 1, y )] − [ f ( x + 1, y ) − f ( x, y )] +
+ [ f ( x, y ) − f ( x, y − 1)] − [ f ( x, y + 1) − f ( x, y )]
E. Ardizzone
39
Università degli Studi
di Palermo
Operatori basati sul laplaciano
9 Pertanto:
L( x, y ) = 4 f ( x, y ) − f ( x − 1, y ) − f ( x + 1, y ) − f ( x, y − 1) − f ( x, y + 1)
9 Il laplaciano si può quindi implementare come un filtro la cui risposta
impulsiva è:
 0 − 1 0
H = − 1 4 − 1


 0 − 1 0
L ( x , y ) = f ( x , y ) ∗ H ( x, y )
9 Questa formulazione del laplaciano è detta dei 4-vicini. La versione
normalizzata che fornisce guadagno unitario è la seguente:
 0 − 1 0
1
H = − 1 4 − 1

4
 0 − 1 0
E. Ardizzone
40
Università degli Studi
di Palermo
Operatori basati sul laplaciano
9 Una versione (normalizzata) del laplaciano riferito agli 8-vicini, quindi con
le differenze delle derivate prime mediate su tre righe e tre colonne, è:
 − 2 1 − 2
1
1
H=  1 4

8
− 2 1 − 2
9 Applichiamo questo operatore ai modelli di edge visti in precedenza:
a a a b b b b
a a a c b b b
a a a d e b b
a a a b b b b
a a a c b b b
a a a d e b b
a a a b b b b
a a a c b b b
a a a d e b b
b
b
h
h
h
a
a
a
y0
y
y0
y
c−a = b−c = h 2
E. Ardizzone
b
y0
y
d −a = e−d = b−e = h 3
41
Università degli Studi
di Palermo
Operatori basati sul laplaciano
9 Si ottiene, con riferimento alla riga centrale dei tre modelli:
grigi a
a
a
b
b
b
b
a
a
a
edge 0
3 3
0 − h h 0
8 8
0
0
0
0 −
3
3
h 0
h 0
16
16
gradino
grigi
edge
a
c
rampa più ripida
a
a
d e
0
h
0 −
0 0
8
b b
h
8
0
rampa meno ripida
d −a = e−d = b−e = h 3
b
b
b
0
c−a = b−c = h 2
Per l’edge a rampa più ripida, il laplaciano rileva
correttamente il contorno in corrispondenza allo ZC
Per l’edge a gradino, lo ZC si trova fra i due pixel a
sinistra e a destra del contorno, e per convenzione
l’edge è collocato sul pixel a destra dello ZC
Neanche nell’ultimo caso lo ZC è localizzato
esattamente su un pixel, anzi si ha un edge doppio
E. Ardizzone
42
Università degli Studi
di Palermo
Operatori basati sul laplaciano
9 Altri difetti del laplaciano sono l’inaccettabile sensibilità al rumore (in
quanto operatore di derivata seconda) e la incapacità di rilevare la direzione
del contorno (in quanto entità scalare)
9 Per tali motivi, il laplaciano è raramente usato da solo per l’edge detection
9 Di Marr e Hildreth è stata l’idea di utilizzare il laplaciano in connessione con
un filtro di smoothing, ancora una volta una gaussiana, realizzando
l’operatore denominato laplaciano della
gaussiana o LoG:
 x2 + y2 
 r2 
 = exp − 2 
h( x, y ) = exp −
2 
2σ 

 2σ 
 r 2  Sezione trasversale
r2 −σ 2
exp − 2 
∇ h=−
2
per σ = 1
σ
 2σ 
2
E. Ardizzone
43
Università degli Studi
di Palermo
Operatore LoG
9 Si tratta quindi di una funzione a simmetria circolare, con ZC per r = ± σ
9 In 2D, sempre per σ = 1:
Si può dimostrare che il valor
medio della funzione è 0, e lo
stesso avviene per il risultato
della sua convoluzione con una
immagine
E. Ardizzone
La tipica forma a sombrero
indica inoltre che la
convoluzione del’operatore
LoG con una immagine
provoca un blurring (di entità
proporzionale a σ)
dell’immagine stessa, e quindi
ha un effetto positivo in termini
44
di riduzione del rumore
Università degli Studi
di Palermo
Operatore LoG
9 Il vantaggio principale offerto dall’operatore LoG resta comunque quello
legato alla presenza degli ZC, come illustreremo con un esempio
9 All’immagine in alto a sinistra
viene applicato l’operatore LoG,
con il risultato mostrato in alto a
destra come immagine di intensità,
nella quale i neri rappresentano i
valori più negativi, i bianchi i
valori più positivi
9 Questa immagine può essere
facilmente binarizzata ponendo i
valori negativi a 0 e i valori
positivi a 1 (in basso a sinistra)
9 Gli ZC, cioè i confini tra zone nere
e bianche nell’immagine binaria,
sono ora facilmente individuabili
(in basso a destra)
E. Ardizzone
45
Università degli Studi
di Palermo
Estrazione dei contorni mediante edge fitting
9 Sono stati implementati anche metodi di edge detection non direttamente
basati su operatori differenziali
9 Tra di essi, si possono segnalare i metodi di edge fitting, basati su procedure
di matching dell’immagine analizzata con modelli 1D o 2D di edge ideali,
come quelli mostrati in figura:
Se in un certa posizione nell’immagine il
fitting risulta sufficientemente accurato, si
assume l’esistenza di un edge in quella
posizione, con le caratteristiche definite dai
valori dei parametri che assicurano il fitting
Nel caso 1D, si cerca il matching tra il
segnale f(x) e una funzione a gradino s(x):
E. Ardizzone
x < x0
 a
s( x) = 
a + h x ≥ x 0
46
Università degli Studi
di Palermo
Estrazione dei contorni mediante edge fitting
9 Un possibile criterio di fitting è il confronto tra una misura di errore come
l’errore quadratico medio E e un valore di soglia T:
E=∫
x0 + L
x0 − L
[ f ( x) − s ( x)]2 dx
9 Se |E| ≤ T un edge di altezza h viene assunto in x0
9 Nel caso 2D, il gradino ideale è definito come:
( x cos ϑ + y sin ϑ ) < ρ
 a
s ( x, y ) = 
a + h ( x cos ϑ + y sin ϑ ) ≥ ρ
9 L’errore è in questo caso:
ρ e ϑ specificano la
distanza dell’edge dal
centro di una regione
circolare di test C
E = ∫∫ [ f ( x, y ) − s ( x, y )]2 dxdy
C
9 A questa classe di algoritmi appartiene quello, molto famoso, di Hueckel
E. Ardizzone
47
Università degli Studi di Palermo
Elaborazione delle Immagini Digitali
Parte L
Prof. Edoardo Ardizzone
A.A. 2001-2002
Università degli Studi
di Palermo
Tecniche di edge linking
9 L’insieme dei pixel di edge, selezionati con uno dei metodi di rivelazione dei
contorni o edge visti in precedenza, non è in genere in grado di rappresentare
adeguatamente il confine o boundary di una regione, a causa del rumore o di
possibili rotture nei contorni dovute alla non uniformità della illuminazione o
ad altre discontinuità spurie del livello di grigio
9 Per tali motivi, un algoritmo di edge detection è normalmente seguito da una
procedura di edge linking o boundary detection
9 Si distinguono, anche in questo caso, tecniche locali e tecniche globali
Tecniche locali
9 Uno degli approcci più semplici prevede l’analisi locale, in un intorno
tipicamente 3 x 3 o 5 x 5, delle proprietà dei pixel esistenti attorno ad ogni
punto dell’immagine di edge: i punti “simili”, in quanto caratterizzati da
proprietà analoghe, formano un boundary
E. Ardizzone
2
Università degli Studi
di Palermo
Tecniche di edge linking
9 Due proprietà utilizzabili per stabilire la similarità tra pixel di edge sono per
esempio l’intensità della risposta dell’operatore gradiente e la sua direzione
9 Dato un pixel di edge di coordinate (x’,y’) nell’intorno di (x,y), la condizione
di similarità è soddisfatta se:
∇f ( x , y ) − ∇f ( x ' , y ' ) ≤ T e α ( x , y ) − α ( x ' , y ' ) < A
essendo T una soglia non negativa di intensità e A un angolo di soglia
9 Questo processo viene ripetuto per ciascun punto dell’immagine
9 Occorre naturalmente tener memoria dei punti via via collegati ad uno stesso
tratto di boundary, delle non connessioni fra boundary di regioni diverse, etc.
9 Al termine del processo di edge linking, una fase di post-processing può
servire a colmare piccole interruzioni, ad eliminare piccoli segmenti isolati,
etc.
E. Ardizzone
3
Università degli Studi
di Palermo
Tecniche di edge linking
Tecniche globali (trasformata di Hough)
9 Si considerano in questo caso relazioni globali tra punti di edge, in modo da
determinare l’appartenenza dei punti stessi a linee di forma specificata, per
esempio rette
9 In generale, dati n punti in un piano, stabilire quali di questi punti sono
collineari è un problema computazionalmente oneroso
9 Infatti si tratta di individuare tutte le rette determinate dai punti, presi a due a
due, e quindi di trovare tutti i sotto-insiemi di punti che possono essere
ritenuti prossimi a ciascuna delle linee
9 Poiché le linee formate da n punti sono n(n-1)/2 ∼ n2, si tratta di effettuare
per ciascun punto altrettanti confronti di distanza, quindi complessivamente
(n) (n(n-1)/2) ∼ n3 confronti
9 Un approccio alternativo è stato proposto da Hough, dando luogo
all’algoritmo noto come trasformata di Hough
E. Ardizzone
4
Università degli Studi
di Palermo
Tecniche di edge linking
9 Dato un punto (xi,yi), l’equazione di un fascio di
9
9
9
9
rette passanti per esso è
yi = axi + b
Ciascuna di queste rette soddisfa l’equazione
precedente per una determinata coppia dei
parametri a e b
Scriviamo la stessa equazione nella forma
b = − xi a + y i
che rappresenta, nello spazio dei parametri,
l’equazione della sola linea definita dalla coppia di
valori (xi,yi), che possiamo ritenere associata al
punto in questione
Analogamente, un altro punto (xj,yj) ha una sola
linea ad esso associata nello spazio dei parametri
Nel piano ab le due linee si intersecano nel punto
(a’,b’)
E. Ardizzone
y
(xi,yi)
(xj,yj)
x
b’
b
b = −x j a + y j
a’
b = − xi a + y i
a
5
Università degli Studi
di Palermo
Tecniche di edge linking
9 a’ e b’ sono i valori dei parametri che definiscono, nel piano xy, la retta che
9
9
9
9
9
contiene entrambi i punti considerati
Generalizzando, tutti i punti contenuti su una linea del piano xy sono
associati a rette che nel piano ab si incontrano in un punto: le coordinate ab
di questo punto sono i valori dei parametri che definiscono la linea nel piano
xy
La trasformata di Hough fa pertanto corrispondere a punti del piano xy rette
dello spazio dei parametri ab
L’adattamento di questi concetti al dominio discreto delle immagini digitali,
per esempio nella formulazione di Duda e Hart, rende possibile la ricerca
della collinearità dei punti con notevole risparmio computazionale
Il piano dei parametri è quantizzato in celle, che fungono da accumulatori
Per ogni punto di edge (xk,yk) del piano xy, si calcolano i valori di b
corrispondenti a ciascuno dei valori possibili di a, utilizzando l’equazione:
b = − xk a + y k
E. Ardizzone
6
Università degli Studi
di Palermo
Tecniche di edge linking
9 I valori risultanti di b sono arrotondati ai valori
amin
bmin
0
bmax
b
possibili in base alla quantizzazione effettuata,
dando luogo ad una n-pla di coppie del tipo
0
<ap,bq>
9 I corrispondenti accumulatori vengono
incrementati di uno: A(p,q) = A(p,q) + 1
amax
9 Alla fine di tale procedura, un valore, per
a
esempio M, in uno degli accumulatori, per
esempio A(i,j), significa che M punti nel piano
Gli estremi degli intervalli sono
xy sono allineati lungo la retta definita dai
scelti in modo da contenere
parametri ai e bj, con una precisione che è
tutti i casi interessanti
legata al numero delle suddivisioni di
nell’immagine in esame
quantizzazione
9 Piccoli valori di M indicano in genere punti isolati o piccoli segmenti che
possono essere trascurati, mentre grandi valori di M sono normalmente
rappresentativi di linee significative per l’immagine in esame
E. Ardizzone
7
Università degli Studi
di Palermo
Tecniche di edge linking
9 Se l’asse a è suddiviso in K intervalli, per ogni punto (xk,yk) si ottengono K
valori di b corrispondenti ai K valori di a
9 Se i punti di edge sono n, questo significa che il numero delle computazioni
è nK
9 Pertanto la procedura descritta è lineare rispetto a n, con ovvio vantaggio
rispetto a quanto visto inizialmente, a meno che K non diventi dell’ordine di
n
9 Per evitare i problemi che nascono nella definizione dei parametri quando
una linea nel piano xy tende a diventare verticale, la trasformazione
effettivamente adoperata fa uso della rappresentazione normale di una linea:
y
ϑ
x cos ϑ + y sin ϑ = ρ
E. Ardizzone
x
ρ
8
Università degli Studi
di Palermo
Tecniche di edge linking
9 La trasformazione fa in questo caso corrispondere a punti del piano xy delle
curve sinusoidali, e non delle rette, nel piano ρϑ
9 Come prima, M punti collineari nel piano xy danno luogo nel piano dei
parametri a M curve che si intersecano in un punto le cui coordinate sono i
valori dei parametri che definiscono la retta nel piano xy
9 Il procedimento di Duda e Hart è analogo al caso delle rette: quantizzato in
celle il piano dei parametri, per ogni punto del piano dell’immagine si
determinano i valori di ρ che corrispondono a tutti i possibili valori di ϑ, si
incrementano i corrispondenti accumulatori, si trascurano quelli che alla fine
contengono piccoli valori, etc.
9 La trasformata di Hough è applicabile anche alla individuazione di linee di
forma diversa dalla retta, per esempio una circonferenza:
(x − c1 )2 + ( y − c2 )2 = c32
E. Ardizzone
9
Università degli Studi
di Palermo
Tecniche di edge linking
9 Lo spazio dei parametri è stavolta 3-D, con celle cubiche
9 La procedura prevede l’incremento di c1 e c2, la determinazione dei
corrispondenti valori di c3, l’aggiornamento degli accumulatori
9 Riepilogando, una procedura completa di determinazione delle rette presenti
in una immagine consiste dei passi seguenti:
– Determinazione della mappa degli edge (per esempio con un metodo di
gradiente)
– Quantizzazione del piano ρϑ
– Calcolo dei valori dei parametri e incremento degli accumulatori
– Selezione delle celle corrispondenti agli accumulatori con i valori più
elevati
– Analisi delle relazioni spaziali fra i pixel di ogni cella presa in
considerazione (soprattutto ai fini della continuità): eventuali gap fra
punti allineati sono significativi se maggiori di una certa soglia
E. Ardizzone
10
Università degli Studi
di Palermo
Tecniche di segmentazione a soglia
9 Come sappiamo, un istogramma come quello mostrato a sinistra può
corrispondere ad una immagine con oggetti chiari su sfondo scuro, cosicché i
rispettivi pixel hanno livelli di grigio raggruppati in due modi dominanti:
200
700
180
600
160
T2
500
140
120
T1
400
100
300
T
80
60
200
40
100
20
0
0
0
50
100
150
200
250
0
50
100
150
200
250
9 In casi del genere, una maniera ovvia di segmentare l’immagine è quella di
applicare una soglia di valore T tale da separare i due modi, come mostrato
9 Tutti i pixel tali che f(x,y) > T sono attribuiti agli oggetti, tutti gli altri allo
sfondo
9 Nell’esempio di destra, la situazione è un po’ più generale: l’istogramma
presenta tre modi dominanti, rappresentativi di due gruppi di oggetti
entrambi più chiari dello sfondo
E. Ardizzone
11
Università degli Studi
di Palermo
Tecniche di segmentazione a soglia
9 La segmentazione può in questo caso essere effettuata ricorrendo a due
soglie, T1 e T2: se f(x,y) ≤ T1, il pixel appartiene allo sfondo, altrimenti se T1<
f(x,y) ≤ T2 il pixel appartiene al primo gruppo di oggetti, altrimenti
appartiene al secondo gruppo
9 Questo tipo di sogliatura multilivello è però difficilmente applicabile in
pratica, per la difficoltà di determinare soglie multiple effettivamente in
grado di isolare le regioni di interesse, soprattutto quando i modi
dell’istogramma crescono di numero
9 Generalizzando le considerazioni precedenti, il processo di sogliatura o
thresholding di una immagine implica il confronto del livello di grigio f(x,y)
di ogni punto dell’immagine con una funzione-soglia della forma:
T = T [x, y , p ( x, y ), f ( x, y )]
dove p(x,y) rappresenta una qualche proprietà locale del punto in questione,
per esempio il livello medio di grigio in un intorno del punto
E. Ardizzone
12
Università degli Studi
di Palermo
Tecniche di segmentazione a soglia
9 Il risultato della sogliatura è una immagine binaria g(x,y) tale che:
1 se f ( x, y ) > T
g ( x, y ) = 
0 se f ( x, y ) ≤ T
9 La soglia è detta globale se T dipende solo da f(x,y), è detta locale se dipende
sia da f(x,y) che da p(x,y), è detta dinamica se dipende anche da x e y
9 Ovviamente l’operazione più semplice da implementare è quella basata su
una singola soglia globale
9 Con riferimento al modello dell’immagine f(x,y)=i(x,y)r(x,y), essendo la
segmentazione un processo che ha lo scopo di separare gli oggetti dallo
sfondo, il suo effetto è chiaramente legato alla componente di riflettanza, ma
può essere fortemente condizionato dalla componente di illuminanza, come
mostra l’esempio seguente
E. Ardizzone
13
Università degli Studi
di Palermo
Tecniche di segmentazione a soglia
9 La seguente funzione di riflettanza, generata sinteticamente, ha ovviamente
un istogramma bimodale, per cui la segmentazione si ottiene
immediatamente scegliendo una singola soglia localizzata tra i due lobi:
T
9 Una funzione di riflettanza di questo tipo si può ottenere solo in condizioni
di illuminazione uniforme della scena considerata
9 Se invece l’illuminazione non è uniforme, l’immagine da prendere in
considerazione ai fini della segmentazione è data dal prodotto della
riflettanza e dell’illuminazione stessa, quindi, assumendo che questa ultima
abbia l’andamento riportato:
E. Ardizzone
14
Università degli Studi
di Palermo
Tecniche di segmentazione a soglia
i(x,y)
i(x,y) r(x,y)
9 Come si vede chiaramente, l’istogramma non esibisce più i due modi ben
distinti, anzi la valle inizialmente presente tra i due picchi è praticamente
scomparsa, rendendo la scelta della soglia estremamente difficile
9 Se la sorgente di illuminazione è accessibile, una soluzione per compensarne
la non uniformità può essere la seguente
9 Dato il pattern della sorgente di illuminazione i(x,y), lo si proietti su una
superficie bianca riflettente.in modo uniforme, costruendo in tal modo una
immagine ausiliaria g(x,y) = k i(x,y), dove k è una costante dipendente dalla
superficie
E. Ardizzone
15
Università degli Studi
di Palermo
Tecniche di segmentazione a soglia
9 A questo punto si consideri l’immagine normalizzata h(x,y) = f(x,y) / g(x,y),
9
9
9
9
dove f(x,y) = i(x,y)r(x,y) è l’immagine in esame
Si ha naturalmente h(x,y) = r(x,y) / k. Pertanto, se r(x,y) può essere
segmentata con una sola soglia T, anche h(x,y) può essere segmentata con
una soglia di valore T / k
Per una fissata i(x,y), il metodo può essere applicato a più immagini, purché
i(x,y) possa essere supposta invariante tra una immagine e l’altra
Nel caso semplice di segmentazione con soglia globale singola, come detto,
l’elaborazione consiste in una scansione pixel per pixel dell’immagine
(supposta per esempio costituita da oggetti scuri su sfondo chiaro), con
labeling di ogni pixel come oggetto o come sfondo a seconda che il suo
valore sia minore o maggiore del valore di soglia
Il successo della segmentazione è legato in questo caso all’identificazione di
un valore di soglia appropriato, operazione semplice se l’istogramma è
facilmente partizionabile, come nell’esempio seguente
E. Ardizzone
16
Università degli Studi
di Palermo
Tecniche di segmentazione a soglia
1200
1000
800
600
400
200
0
0
50
100
150
200
250
9 Si può notare come, scegliendo
T=100, l’immagine risulti ben
segmentata, con eliminazione quasi
totale delle ombre
9 Questo tipo di sogliatura è spesso
applicabile in ambienti ben
controllabili dal punto di vista
dell’illuminazione (ispezione
industriale)
E. Ardizzone
17
Università degli Studi
di Palermo
Tecniche di segmentazione a soglia
9 La scelta automatica del valore di soglia diviene invece particolarmente
critica nelle applicazioni in cui le caratteristiche di intensità dell’immagine
possono essere molto variabili, e l’illuminazione non è controllabile
9 La possibilità di una valida selezione della soglia può tuttavia essere
incrementata se si riesce a ricondurre l’istogramma ad esibire picchi alti e
stretti, separati da valli profonde
9 Un approccio in tale direzione prende in considerazione solo i pixel posti
nelle zone di confine tra gli oggetti e lo sfondo: l’istogramma relativo solo a
tali pixel è infatti meno dipendente dalle dimensioni degli oggetti, in
relazione alle dimensioni dello sfondo, e le altezze dei lobi tendono a
diventare paragonabili
9 Opera in tal modo un algoritmo basato sull’uso combinato di gradiente e
laplaciano: questi operatori, come sappiamo, danno informazioni
sull’appartenenza di un pixel ad un edge (gradiente) ovvero sulla
appartenenza di un pixel alla parte più scura oppure alla parte più chiara
della zona attraversata dal contorno (laplaciano)
E. Ardizzone
18
Università degli Studi
di Palermo
Tecniche di segmentazione a soglia
9 I due operatori possono essere adoperati per costruire una immagine a tre
livelli:
0 se ∇f < T

s ( x, y ) = + se ∇f ≥ T e ∇ 2 f ≥ 0
− se ∇f ≥ T e ∇ 2 f < 0

dove i simboli 0, + e – rappresentano tre livelli di grigio distinti, e T è la
soglia
9 Se l’immagine presenta oggetti scuri su sfondo chiaro,
nella s(x,y) tutti i pixel non di edge, che quindi
soddisfano la prima delle tre condizioni, sono etichettati
con 0
9 Tutti i pixel di edge, che quindi soddisfano la prima
parte delle altre due condizioni, sono marcati con + se si
trovano dalla parte scura, e con – se si trovano dalla
E. Ardizzone
parte chiara
19
Università degli Studi
di Palermo
Tecniche di segmentazione a soglia
9 L’attribuzione dei simboli + e – andrebbe ovviamente fatta al contrario per
oggetti chiari su sfondo scuro
9 Considerando adesso una linea dell’immagine di partenza in cui siano
presenti transizioni da sfondo a oggetto e viceversa, nella corrispondente
linea della s(x,y) si avranno occorrenze di – seguiti da + (chiaro => scuro) e
di + seguiti da meno (scuro => chiaro), mentre l’interno dell’oggetto sarà
caratterizzato da + e 0
9 Si avrà quindi una situazione del tipo:
(L)(− + )(+0L 0+)(+ −)(L)
9 Analizzando adesso la s(x,y) linea per linea, si possono etichettare con 1 tutti i
pixel seguenti una coppia (- +) e precedenti una coppia (+ -), e con 0 tutti gli
altri che non si trovano in una situazione analoga, ottenendo infine una
immagine binaria nella quale l’oggetto è rappresentato dai pixel 1 e lo sfondo
dai pixel 0
E. Ardizzone
20
Università degli Studi
di Palermo
Tecniche di segmentazione a soglia
9 Il metodo descritto può per esempio essere
applicato all’estrazione di testo manoscritto
su sfondo non uniforme, come nel caso
mostrato
9 In altri casi è possibile applicare tecniche ricorsive di segmentazione di
intensità, che portano alla applicazione di soglie a più livelli
9 Nel primo stadio di un processo di questo tipo, una soglia globale, scelta in
corrispondenza di un minimo dell’istogramma, consente di separare le
zone più chiare da quelle più scure dell’immagine
9 Viene quindi analizzato l’istogramma di ciascuna delle componenti
dell’immagine così ottenute: se esso risulta unimodale, la componente è un
segmento dell’immagine, altrimenti il metodo viene applicato nuovamente
E. Ardizzone
21
Università degli Studi
di Palermo
Tecniche di segmentazione a soglia
9 Consideriamo ad esempio l’immagine peppers e il relativo istogramma:
250
T1
200
150
100
50
0
0
50
100
150
200
250
9 Applicando la soglia mostrata (T1 = 110) si ottiene l’immagine binaria:
9 In nero sono mostrati tutti i pixel di valore
inferiore dell’immagine di partenza
(segmento S0), in bianco tutti i pixel di valore
superiore (segmento S1
E. Ardizzone
22
Università degli Studi
di Palermo
Tecniche di segmentazione a soglia
9 Evidenziamo il contenuto originale del segmento S0 (il resto è in nero) ed il
relativo istogramma:
250
T2
200
150
100
50
0
0
50
100
150
200
250
Si può effettuare una altra
sogliatura a T2 = 40,
ottenendo i segmenti S00 e
S01
9 Analogamente per il segmento S1:
250
T3
200
Si può effettuare una altra
sogliatura a T3 = 170,
ottenendo i segmenti S10 e
S11
150
100
50
0
0
50
100
150
200
250
E. Ardizzone
23
Università degli Studi
di Palermo
Tecniche di segmentazione a soglia
9 Arrestando a questo livello il processo di segmentazione, si hanno i quattro
segmenti S00, S01, S10 e S11, qui evidenziati in colore falso nella stessa
immagine:
250
T1 T3
200
T2
150
100
50
0
0
50
100
150
200
250
Si noti uno dei difetti principali dei
metodi a soglia: la impossibilità di
garantire la connettività dei segmenti
E. Ardizzone
24
Università degli Studi
di Palermo
Tecniche di segmentazione a soglia
9 L’estensione dei metodi di segmentazione a soglia al caso delle immagini in
cui ogni pixel è caratterizzato da più proprietà, come tipicamente avviene
nelle immagini a colori, è abbastanza immediata
9 Per una immagine RGB, per esempio, dato che ogni pixel è caratterizzato da
tre valori, è possibile costruire un istogramma 3-D definendo un reticolo
spaziale di celle cubiche, ciascuna delle quali corrisponde ad una delle
combinazioni possibili di R, G e B, che ne rappresentano le coordinate
9 Dopo la costruzione dell’istogramma, ogni cella contiene il numero dei pixel
caratterizzati dai tre valori RGB corrispondenti alle coordinate della cella
9 L’operazione di thresholding diviene a questo punto una ricerca di cluster di
punti nello spazio RGB: un cluster rappresenta quello che negli istogrammi
1-D è rappresentato da un modo, ovvero una aggregazione di valori contigui
di intensità, resa significativa dal numero dei punti dell’immagine che sono
caratterizzati da tali valori
E. Ardizzone
25
Università degli Studi
di Palermo
Tecniche di segmentazione a soglia
9 Individuati i cluster più significativi, la segmentazione può essere effettuata,
per esempio, assegnando un valore di intensità o un colore falso ai pixel le
cui componenti RGB sono vicine ad un cluster ed un altro valore agli altri
pixel dell’immagine
9 Un esempio di suddivisione in 4 segmenti di una immagine a colori:
E. Ardizzone
26
Università degli Studi
di Palermo
Tecniche di segmentazione a soglia
9 Rimanendo nell’ambito delle immagini a colori, la segmentazione può essere
ovviamente effettuata con riferimento a modelli di colore diversi dal modello
RGB
9 Per esempio, le rappresentazioni del tipo HSI si prestano bene a
segmentazioni basate sul valore della tinta, o della tinta e della saturazione,
quindi direttamente sulle caratteristiche percettive del colore (come richiesto
nelle applicazioni di classificazione di immagini che, basandosi sul colore,
tentano di emulare il comportamento umano)
E. Ardizzone
27
Università degli Studi
di Palermo
Tecniche di regionalizzazione
9 Sono tecniche basate ancora sull’analisi della similarità tra pixel, orientate
però alla individuazione diretta delle regioni
9 La segmentazione può infatti essere vista come un processo che determina la
presenza nell’intera immagine R di n componenti Ri, con (i= 1, …, n), tali
che:
a) la segmentazione risulti completa, cioè ogni pixel dell’immagine sia
contenuto in una regione:
n
UR
i
=R
i =1
b) ogni Ri sia connessa
c) le regioni siano disgiunte:
Ri I R j = φ ∀i, j e i ≠ j
E. Ardizzone
28
Università degli Studi
di Palermo
Tecniche di regionalizzazione
d) tutti i pixel di ognuna delle regioni soddisfino le proprietà sulla base
delle quali si effettua la segmentazione, per l’esempio la similarità di
intensità; esprimendo la proprietà in forma di predicato si può scrivere
P( Ri ) = TRUE per i = 1,2, K, n
e) sulla base dello stesso predicato, ogni regione sia diversa da tutte le
altre:
P ( Ri U R j ) = FALSE per i ≠ j
9 Una delle tecniche di regionalizzazione concettualmente più semplici è
quella detta di region growing, che aggrega pixel vicini, sulla base della
similarità di una qualche proprietà, per formare regioni di dimensione via via
crescente
9 La aggregazione ha luogo a partire da punti di “seme”, opportunamente
selezionati
E. Ardizzone
29
Università degli Studi
di Palermo
Tecniche di regionalizzazione
9 Si consideri il frammento di immagine a lato, in
cui i valori mostrati rappresentano livelli di grigio
e quelli segnati indicano i punti-seme
9 Utilizzando due semi si potranno ottenere al più
due regioni, R1 e R2
9 Il predicato P è il seguente: un pixel appartiene ad
una regione se la differenza, in valore assoluto, tra
il suo livello di grigio e il livello di grigio del
seme corrispondente è inferiore ad una soglia T.
Se un pixel soddisfa il criterio per entrambi i
semi, lo si assegna a R1
9 A destra è mostrato il risultato della
segmentazione per T=3: si ottengono appunto due
regioni, i cui pixel sono marcati rispettivamente
con a e b
E. Ardizzone
R1
0
1
0
2
0
0
1
(
1
0
1
5
5
6
7
5
6
8
(
7
6
6
7
7
7
6
5
a
a
a
a
a
a
a
a
a
a
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
R2
30
Università degli Studi
di Palermo
Tecniche di regionalizzazione
9 Se invece T=8 si ottiene solo la regione mostrata:
9 Ci si deve chiedere come si scelgono i punti di
seme, in modo che siano appropriati per la
segmentazione che si deve effettuare, e come si
scelgono le proprietà in base alle quali governare
il processo di accrescimento
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
9 Per quanto riguarda la selezione dei semi, spesso la natura del problema
in esame può dare precise indicazioni
9 Per esempio, nell’analisi di immagini ad infrarossi spesso sono di
interesse le zone più luminose, che corrispondono ad oggetti a
temperatura più alta dello sfondo (mezzi in movimento, esseri viventi,
etc.). In casi come questo è naturale selezionare come semi i pixel di
valore più elevato
E. Ardizzone
31
Università degli Studi
di Palermo
Tecniche di regionalizzazione
9 Nei casi in cui la natura del problema non fornisca indicazioni, si può
9
9
9
9
procedere al calcolo, in ogni pixel, dello stesso insieme di proprietà che poi
saranno utilizzate durante l’accrescimento
Se i risultati di questi calcoli mostrano una tendenza al clustering dei valori
nello spazio delle proprietà, è possibile scegliere come semi i pixel
corrispondenti o vicini ai centroidi di questi cluster
Nell’esempio precedente, in cui la segmentazione è basata sui valori di
grigio, un’analisi dell’istogramma avrebbe suggerito come semi esattamente
i pixel di valore 1 e 7
La scelta delle proprietà da utilizzare per la segmentazione è legata non solo
al problema in esame, ma anche alla natura dei dati a disposizione: colore,
intensità, tessitura e altre proprietà spaziali sono di norma utilizzate, e
peraltro sono anche le proprietà sulle quali si basano in prevalenza i
descrittori di immagini, dei quali parleremo in seguito
E’ fondamentale non trascurare il ruolo rivestito, ai fini della estrazione delle
regioni, dalle informazioni di adiacenza o connettività tra pixel
E. Ardizzone
32
Università degli Studi
di Palermo
Tecniche di regionalizzazione
9 Un altro problema nel region growing può essere costituito dalla
formulazione di una regola di arresto dell’accrescimento, che non sempre
coincide con quella (ovvia) della mancanza, ad un certo punto del processo,
di pixel in grado di soddisfare i criteri per l’inserimento in una certa regione
9 Infatti i criteri legati all’intensità, al colore, alla tessitura, etc. non possono
che essere “locali”, e quindi non tengono conto del modo in cui la regione si
è fino a quel momento formata
9 Per esempio, potrebbe essere fondamentale, per una segmentazione sensata
in relazione ad un certo problema, tener conto anche della forma assunta dal
segmento fino all’istante corrente, ovvero di altre proprietà come il valor
medio dei pixel correntemente inclusi nella regione, etc.
9 L’esempio seguente mostra l’applicazione di questa tecnica a partire da un
solo seme, utilizzando i seguenti criteri:
– La differenza, in valore assoluto, tra il seme ed un punto candidato non deve
superare il 10% della gamma dinamica dell’immagine (che in questo caso è 255)
– Ogni pixel aggiunto alla regione deve essere 8-connesso con almeno un pixel
precedentemente incluso
E. Ardizzone
33
Università degli Studi
di Palermo
Tecniche di regionalizzazione
9 Negli stadi iniziali dello
accrescimento, la regione ha
una forma a diamante dovuta al
fatto che i pixel aventi uguale
distanza D4 dal seme sono i
primi ad essere presi in
considerazione
9 La forma della regione perde
questa caratteristica non appena
si toccano i confini (pixel più
scuri che violano il primo
criterio)
9 Benché pixel in regioni vicine
abbiano valori di grigio simili,
essi non risultano inclusi nella
regione in quanto violano il
secondo criterio
E. Ardizzone
34
Università degli Studi
di Palermo
Tecniche di regionalizzazione
9 La tecnica nota come region splitting and merging procede in modo inverso
a quella di region growing, partendo dall’intera immagine e suddividendola
in parti disgiunte via via più piccole, fondendo quelle adiacenti fra esse con
caratteristiche simili, nel tentativo di costruire regioni che soddisfino ai
criteri adottati per la segmentazione
9 Supponendo che l’immagine di partenza, alla quale corrisponde la regione R,
sia quadrata, un modo naturale di effettuarne la suddivisione è in quadranti
via via più piccoli:
R1
R2
R41
R3
R43
R42
Ad ogni livello della suddivisione, il predicato
P viene verificato per tutti i quadranti: se esso
risulta falso, il quadrante viene ulteriormente
suddiviso, e così via
R44
E. Ardizzone
35
Università degli Studi
di Palermo
Tecniche di regionalizzazione
9 Questa tecnica di splitting può essere convenientemente rappresentata
mediante un albero a simmetria quadrantale o quadtree, cioè un albero in
cui ogni nodo ha quattro discendenti:
R
R1
R2
La radice dell’albero corrisponde
all’intera immagine, ogni nodo
corrisponde a una suddivisione
R3
R41
Nell’esempio, solo R4 risulta
ulteriormente suddiviso
R4
R42
R43
R44
E. Ardizzone
36
Università degli Studi
di Palermo
Tecniche di regionalizzazione
9 E’ da notare che lo splitting, da solo, non potrebbe evitare la presenza,
all’ultimo livello della suddivisione, di regioni adiacenti con caratteristiche
simili
9 A ciò si può porre rimedio mediante il merging delle regioni adiacenti i cui
pixel soddisfino il predicato P utilizzato nella segmentazione
9 Riassumendo, i passi della procedura-base di splitting e merging, ad ogni
livello della suddivisione, sono i seguenti:
– suddividere in quattro quadranti disgiunti ogni regione Ri per la quale
P(Ri) = FALSE
– fondere due regioni adiacenti Ri e Rj se P(Ri ∪ Rj) =TRUE, e
– terminare quando non è più possibile effettuare né splitting né merging
E. Ardizzone
37
Università degli Studi
di Palermo
Tecniche di regionalizzazione
9 Si è più volte accennato alla possibilità di utilizzare proprietà dei pixel
diverse dal semplice livello di grigio, ai fini sia della segmentazione che, più
in generale, della descrizione di regioni di una immagine
9 Di particolare rilievo sono le proprietà dei pixel che tendono a quantificare la
cosiddetta tessitura di una regione, come per esempio la media o la
deviazione standard dei valori dei pixel, momenti statistici di ordine più
elevato, etc.
9 La segmentazione basata sulla tessitura utilizza queste misure della tessitura
nella formulazione dei predicati P, come si vedrà in seguito
E. Ardizzone
38