Sei sulla pagina 1di 493

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
(obbligatorio, 5 CFU)
Immagini Digitali
Teoria e Tecniche
di Elaborazione
(propedeucità)
della Immagine

Trattamento e
(a scelta, corso annuale) Compressione di (a scelta, 5 CFU)
Dati Multimediali

E. Ardizzone 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=
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à medio-
alta, 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 i (candele)
Luce solare 9000
Cielo nuvoloso 1000
Chiaro di luna 0.01
Interno (amb. di lavoro) 100
Oggetto r
Velluto nero 0.01
Parete bianca 0.80
Argento e altri metalli 0.90
Neve fresca 0.93
E. Ardizzone 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:
0 ≤ x ≤ M −1 e 0 ≤ y ≤ N −1
si ha:

 f (0,0) f (0,1) L f (0, N − 1) 


 f (1,0) f (1,1) L f (1, N − 1) 
f ( x, y ) =  
 M M M M 
 f ( M − 1,0) f ( M − 1,1) L f ( M − 1, N − 1)

E. Ardizzone 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 48 x 64

12 x 16 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 16 8
dei valori di
intensità

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 folla

E. Ardizzone 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) 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)
ND(p)
✔ L’insieme degli 8-vicini di p è dato da:
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 4-
connessi se q è nel set N4(p)
# 8-connettività: due pixel p e q con valori di grigio in V si dicono 8-
connessi 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 8-
connettività
✔ 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:
0 1 1 0 1 1
8-connettività m-connettività
0 1 0 0 1 0

0 0 1 0 0 1

E. Ardizzone 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 1 2 Si noti che i pixel a D4 = 1 sono i
2 1 (x,y) 1 2 4-vicini di (x,y)
2 1 2
2

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 2 2
2 1 1 1 2 Si noti che i pixel a D8 = 1 sono gli
2 1 (x,y) 1 2 8-vicini di (x,y)
2 1 1 1 2
2 2 2 2 2

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 (pixel-
by-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 Questa è una operazione di filtraggio passa
z = ∑ zi basso (filtro di media mobile)
9 i =1
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 aritmetico-
logiche 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
NOT: q oppure NOT q
✔ 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: v* = v + v 0 essendo, rispettivamente:

X  X 0  X *
 
v = Y  v 0 =  Y0  v* =  Y * 
   
 Z   Z 0   Z * 
E. Ardizzone 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 
 X *  1 0 0 X0  
 *   Y
 
 Y  = 0 1 0 Y0
 Z 
 Z *  0 0 1 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:
v * = Tv

E. Ardizzone 6
Università degli Studi
di Palermo

Trasformazioni geometriche
dove:
X * X  1 0 0 X0
 * Y  0
Y 1 0 Y0 
v* =  *  v=  T= 
Z  Z  0 0 1 Z0 
  1 0
1     0 0 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 θ   X 
 *  =  sin θ ovvero: v * = Rθ v
Y   cosθ   Y 
E. Ardizzone 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θ =  
 0 0 1 0 segno positivo per gli angoli presi
 0 0 0 1  in senso orario:
 

Analogamente si possono esprimere le


rotazioni attorno agli assi X e Y:
E. Ardizzone 9
Università degli Studi
di Palermo

Trasformazioni geometriche

1 0 0 0 cos β 0 − sin β 0
0 cos α sin α 0  0 1 0 0
Rα =   Rβ =  
0 − sin α cos α 0  sin β 0 cos β 0
0 0 0 1  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 0 0
0 Sy 0 0
S= 
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' −Y y
= cioè =
CP ' OC 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 λY
x= y=
λ−Z λ−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
0 1 0 0  Si consideri la trasformazione ch = Pwh,
P = 0 0 1 0 dove P è la matrice della trasformazione
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 
 0 0 1   k   λ + k 
λ
✔ Per ottenere le coordinate camera 3-D occorre dividere le prime tre
coordinate omogenee per la quarta. Pertanto:
 λX  Le prime due componenti di c sono le coordinate
 x   λ − Z  (x,y) della proiezione di (X,Y,Z) (e sono ovviamente
λY
c =  y =   uguali a quelle trovate precedentemente). La terza
  λ − Z componente non ha senso in termini del modello
 z   λZ 
  adottato, dato che z = 0 in tutto il piano xy
 λ − Z 
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  kx0 
ky  Applicando l’equazione ky 
ch =  0  precedente si ottiene: wh =  0 
 0   0 
 k   k 
   
✔ Passando alle coordinate 3-D:

 X   x0 
w =  Y  =  y0  Questo risultato è palesemente assurdo
    perché dà Z = 0 per qualunque punto 3-D
 Z   0 
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:
λX λY
x0 = y0 =
λ−Z λ−Z

✔ Risolvendo rispetto a X e Y si ottiene:


x0 y0
X = (λ − Z ) Y= (λ − Z )
λ λ
E. Ardizzone 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 
G= 0

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 0 − r1 
0 1 0 − r2  r1, r2 e r3 sono le componenti dello
C=  spostamento r
0 0 1 − r3 
0 0 0 1 
 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 − 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 + λ
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 a12 a13 a14   X 
c   a a 22 a23 a24   Y 
 h 2  =  21  
ch3   a31 a32 a33 a34   Z 
c   a a 42 a43 a44   1 
 h 4   41

✔ 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 Quindi il punto w sta su questa linea
X1 = (λ − Z1 )
λ

✔ 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 x2
X1 = (λ − Z ) X1 + B = (λ − Z )
λ λ
✔ Sostituendo e risolvendo per Z:

E. Ardizzone 32
Università degli Studi
di Palermo

Imaging stereo e geometria epipolare


λB
Z =λ−
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 3-
D, 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

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 soglia

E. Ardizzone 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 Questa è una espansione del contrasto o
s=
255 per r ≥ 64 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 5

4 3 2

1 0
E. Ardizzone 21
Università degli Studi
di Palermo

Elaborazioni puntuali omogenee

9 Il bit-plane slicing consiste quindi nello scomporre un’immagine in


otto immagini binarie, rappresentate dai vari piani.
9 I piani di bit più significativi contengono informazioni sulla struttura
dell’immagine, mentre quelli via via meno significativi forniscono i
dettagli sempre più piccoli
9 Si noti che solo i piani dal 7 al 3 contengono dati significativi dal
punto di vista visuale
9 Inoltre l’immagine binaria del piano 7 è esattamente quella che si
ottiene binarizzando con soglia pari a 128 l’immagine di partenza
9 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
nk
p (rk ) =
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 
p s ( s) =  pr (r )  = [1]r =T −1 ( s ) = 1, 0 ≤ s ≤ 1
 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 per 0 ≤ r ≤ 1
pr (r ) = 
0 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 
p s ( s ) =  pr (r )  = (−2r + 2)  =
 ds  r =T −1 ( s )  ds  r =1− 1− s

 d  −1
= (2 1 − s ) (1 − 1 − s )  = −2 1 − s =1 c.v.d.
 ds  r =1− 1− s 2 1− s
E. Ardizzone 12
Università degli Studi
di Palermo
Equalizzazione dell’istogramma
9 Tornando a considerare discreta la variabile r si ha:
nk
p (rk ) = per 0 ≤ rk ≤ 1 e k = 0, K , L − 1
n
9 La funzione da utilizzare per l'equalizzazione dell'istogramma nel caso
discreto è la seguente:

k nj k
s k = T (rk ) = ∑ = ∑ p r (r j ), 0 ≤ rk ≤ 1 e k = 0,1,K, L − 1
n j =0
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.

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à:
k r nk/n 0,45
0,4
0,4
0 0 0.015 0,35

1 1/7 0.1 0,3

2 2/7 0.25 0,25

Probabilità
0,25
0,2
3 3/7 0.4 0,2

4 4/7 0.2 0,15


0,1
0,1
5 5/7 0.035 0,05 0,035
0,015
6 6/7 0 0
0 0

0 1 2 3 4 5 6 7
7 1 0 Livelli r

E. Ardizzone 16
Università degli Studi
di Palermo
Equalizzazione dell’istogramma
9 Applicando la trasformazione di equalizzazione:
k nj k
sk = T ( rk ) = ∑ = ∑ pr ( rj ), 0 ≤ rk ≤ 1 e k = 0,1,K , L − 1
j =0 n j =0

si ottengono i seguenti valori:


0 n 1 n
n n
s0 = T ( r0 ) = ∑ = 0.015 s1 = T ( r1 ) = ∑ j = ( 0 + 1 ) = 0.015 + 0.1 = 0.115
j

j =0 n j =0 n n n
2 n
s2 = T ( r2 ) = ∑ j = L = 0.365 s3 = T ( r3 ) = L = 0.765
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:
k r s ss
0 0 0.015 0 r0
1 0.143 0.115 0.143 r1
2 0.286 0.365 0.428 r3
3 0.428 0.765 0.714 r5
4 0.571 0.965 1 r7
5 0.714 1 1 r7
6 0.857 1 1 r7
7 1 1 1 r7
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,4 0,4

0,35 0,35

0,3 0,3
0,25 0,25
Probabilità

0,25 0,25 0,235

Probabilità
0,2
0,2 0,2

0,15 0,15
0,1 0,1
0,1 0,1

0,05 0,035 0,05


0,015 0,015
0 0 0 0 0
0 0
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Livelli r Livelli s

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
E{g ( x, y )} = f ( x, y ) σ g ( x, y ) = σ η ( 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
A( x, y ) = k , con 0 < k < 1
σ ( 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 pre-
processing, 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:


3 1
a ( x, y ) = x+ y b ( x, y ) = x + 2y
2 2
si otterrebbe:
Nell’immagine di ingresso i pixel si trovano
(x,y) in f (x,y) in g soltanto in posizioni discrete, specificate, per
(1,1) (2.5,2.5) esempio, da coordinate intere
(2,1) (4,3) Invece, dopo il mapping, un pixel si verrebbe
(3,1) (5.5,3.5) 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 x0   x 
 b ( x, y )  =  0 1 y0   y 
    
 1  0 0 1   1 

9 Analogamente, per la rotazione (oraria) attorno all’origine:

a( x, y )  cosθ − sin θ 0  x 


b( x, y )  =  sin θ cosθ 0  y 
    
 1   0 0 1  1 

E. Ardizzone 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 0 0  x 
 b ( x, y )  =  0 1
 
0 y
   d  
 1   0 0 
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 a12 tx   x


b ( x, y )  =  a a22 t y   y
   21  
 1   0 0 1   1 

E. Ardizzone 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
coordinate, i coefficienti della trasformazione, che può quindi essere
applicata a tutti gli altri punti dell’immagine da correggere
9 Un esempio classico è quello della calibrazione geometrica di una
telecamera che produce distorsioni geometriche nelle immagini acquisite
9 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
9 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
9 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′ x2′ x3′   a11 a12 t x   x1 x2 x3 
 y′ y 2′ y3′  = a21 a 22 t y   y1 y2 y3 
 1    
 1 1 1   0 0 1   1 1 1 

ovvero:
P ′ = AP
dalla quale:
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 Senza ledere la generalità, si può ipotizzare
che le coordinate dei quattro vertici siano
x,y quelle mostrate
Il problema è sovradeterminato se si tratta di
1,0 1,1 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,1)
f(0,y)
f(0,y) f(0,1)
f(0,0) f(1,1) f(0,0)
f(x,y)

0,1 y
0,y
0,0 x,y 0 y 1
y
x,0
Si ha pertanto:
f(1,0) 1,1
1,0 1,y [ f (0, y ) − f (0,0)]: y = [ f (0,1) − f (0,0)]: 1
x
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 1
1 1 1 1 1 1
× 1 1 1
9 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 1 1
Altri esempi di filtri di smoothing:
1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
× 1 1 1 1 2 1
49 1 1 1 1 1 1 1 1 1
× 1 2 1 × 2 4 2
1 1 1 1 1 1 1 10 16
1 1 1 1 2 1
1 1 1 1 1 1 1

E. Ardizzone 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 35 52 29
115107 38 115 52 38
110 57 40 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 Blur 5x5 Mediano


10%

E. Ardizzone 32
Università degli Studi
di Palermo

Filtri di sharpening

9 I filtri di sharpening sono utilizzati per aumentare il contrasto locale


dell’immagine, in modo da arricchire i dettagli fini, o per evidenziare i
contorni degli oggetti (edge crispening)
9 A tal fine questi filtri lavorano accrescendo le differenze tra pixel vicini.
Sono pertanto complementari ai filtri di smoothing.
9 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
9 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
9 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 -1 -1 1 -2 1
-1 5 -1 -1 9 -1 -2 5 -2
0 -1 0 -1 -1 -1 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 passa-
basso 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 dove w = 9 A − 1, con A ≥ 1
-1 -1 -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 seno-
coseno corrispondente
E. Ardizzone 2
Università degli Studi
di Palermo

Trasformata di Fourier di una immagine

ü La antitrasformata è definita come:


+∞
F -1
{F (u )} = f ( x ) = ∫ F (u ) exp [ j 2πux ]du
−∞
ü 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
f(x0) f(x0+ (N-1) ∆x) discreta x si può scrivere come:

f(x0+∆x )
f ( x ) = f ( x0 + x∆x ), x = 0,K , N − 1
…..
∆x

x0 x0+ 2∆x x0+ (N-1)∆x x


x0+ ∆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 x= 0  N 
N −1
f ( x ) = ∑ F (u ) exp  j 2πux  , per x = 0,K , N − 1
u =0
 N 
ü 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) è:
M −1 N −1
f ( x , y ) exp  − j 2π  ux + vy  ,
1
F (u , v ) =
MN
∑∑
x =0 y = 0
  M N 
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 è:
M −1 N −1
 j 2π  ux + vy  ,
f ( x, y ) = ∑ ∑ F ( u , v ) exp
  M N 
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
∆u = ∆v =
M∆x N∆y
ü Se le immagini sono campionate in una griglia quadrata (M=N, ∆x=∆y):
N −1 N −1

∑ ∑ f ( x, y) exp[− j 2π (ux + vy ) N ]
1
F (u , v ) = con u , v = 0, K , N − 1
N x =0 y =0
N −1 N −1

∑∑ F (u, v) exp[ j 2π (ux + vy ) N ] con x, y = 0,K , N − 1


1
f ( x, y ) =
N 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 x x


0 1 2 3 4
x0 x1 x2 x3 x4

ü 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
N −1

∑ f ( x) exp − j 2πux N ,


1
F (u ) = per u = 0, K , N − 1
N 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

5 x=0
[ 1
5 5 
]
F (1) = ∑ f ( x) exp − j 2π x =  2 exp [0] + 3 exp − j 2π 
1 4
 5 

+ 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:

F (1) = 2 + 3 exp − j 2π 
1
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 x =0 5
1 4
[ ]
F (3) = ∑ f ( x) exp − j 6π x = L
5 x=0 5
1 4
[ ]
F ( 4) = ∑ f ( x ) exp − j8π x = L
5 x =0 5
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(x,y) |F(u,v)|

ü 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:
1 N −1 − π
N −1
F (u ) = ∑ f ( x ) exp  j 2 ux =
∑ f ( x ) g ( x , u ), per u = 0,K , N − 1
N x=0 
 N 
 x =0
dove
1
g ( x , u ) = exp [− j 2πux N ]
N
è 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(N-
1)

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 ′
N (g u , g u′ ) =  Perché?
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:
M −1 N −1

∑ ∑ f ( x, y) exp − j 2π  ux M + vy N ,


1
F (u , v ) =
MN 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:

exp  − j 2π  ux + vy  
1
g ( x, y , u , v) =
MN   M N  
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:

 1 
 exp [− j 2πu M ] 
1  
g u ,v =  exp[− j 2πu 2 M ]  × MN immagini di base
MN  
 M 
 exp[− j 2πu ( M − 1) M ]

× [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 23
prodotto esterno
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: y
1 x 
1 1 1 1
  1 1 1
1 1 1 1
g 0, 0 = [1 1 1 1] = 
4 1 4 1 1 1 1
1 1 1 1 1 1
 

1 1
g 0,1 = [1 exp [− j 2π / 4] exp [− j 4π / 4] exp [− j 6π / 4]]
4 1

1
1 exp [− jπ / 2] exp [− jπ ] exp[− j3π / 2] 1 − j −1 j
 exp [− jπ / 2] exp [− jπ ] exp[− j3π / 2] 1 1 − j −1 j
1 1 =  
=
4 1 exp [− jπ / 2] exp [− jπ ] exp[− j3π / 2] 4 1 − j −1 j
1 exp [− jπ / 2] exp [− jπ ] exp[− j3π / 2] 1 − j −1 j 
 
E. Ardizzone 25
Università degli Studi
di Palermo

Le immagini di base

 1  1 1 1 1 
   
1 exp[− j 2π / 4] 1 − j − j − j − j 
g 1, 0 = [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

 1 
 
1 exp[− j 2π / 4]
g 1,1 = [1 exp [− j 2π / 4] exp [− j 4π / 4] exp [− j 6π / 4]]
4 exp[− j 4π / 4]
 
 exp [− j 6π / 4 ]

 1 − j −1 j 
 1
1 − j − 1 j

=L=
4  −1 j 1 − j
 
 j 1 − j − 1

E. Ardizzone 27
Università degli Studi
di Palermo

Le immagini di base

 1  1 1 1 1
   
1  exp[− j 4π / 4]  1 − 1 − 1 − 1 − 1
g 2,0 = [1 1 1 1] = L =
4  exp [− j8π / 4]  4 1 1 1 1
 [ ]  
 exp − j12π / 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
Le immagini di base
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 − 1 1 − 1 1 j −1 − j
g 0 ,0 =  g 0 ,1 =  g 0 ,2 =  g 0 ,3 = 
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 − 1 1 − 1 1 − 1 − j 
    j

1 1 1 1   1 − j −1 j   1 − 1 1 − 1 1 j −1 − j
− j − j   − j −1   −j j −j j  − j 1
=
−j −j
 g1,1 = 
j 1
 g1, 2 =   j −1
g1, 0 g1,3 =  
 − 1 −1 −1 −1  −1 j 1 − j  −1 1 −1 1   −1 − j 1 j 
   j 1 − j − 1   j − j j − j   j
 j j j j     − 1 − j 1 

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 1 − 1 1   j 
g 2 ,0 =  g 2 ,1 =   g 2 ,2 =  g = −1 − j 1 
1 1 1 1  1 − j −1 j   1 − 1 1 − 1 2 ,3
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 
 j   1 − 1 1 −1 1 j − 1 − j
j j j  j 1 − j −1     j
g 3,0 =    g = j − j j −j −1 − j 1 
 − 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 − j − j − j  − j −1    − 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:
1 0 − 1 0 0 − 1 0 1
1 1 1 1 0 0 0 0 1
1 0 − 1 0 0 − 1 0 1
1 1 1 0 0 0 0 r0,1 =  i 0 ,1 = 
r0,0 =  i 0 ,0 =  1 0 − 1 0 0 − 1 0 1
1 1 1 1 0 0 0 0 
1 1 0 − 1 0 0
 − 1 0 1
 1 1 1 
0 0 0 0
E. Ardizzone 30
Università degli Studi
di Palermo
Le immagini di base
ü Le parti reali, per esempio, possono essere rappresentate nel modo illustrato,
dove ogni
v
blocco consiste di 4 x 4 elementi (x e y variabili tra 0 e 3):
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
3 immaginarie delle immagini di
base
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 0 0
0 1 1 0
f= 
0 1 1 0
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
E. Ardizzone 32
F (3,3) = (f , g 3, 3 ) = L = − j 2
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)| D(u,v)


E. Ardizzone 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:
1 N −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):
1 N −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


N −1

∑ F (x, v) exp[− j 2πu x N ]


1
F (u , v ) =
N x= 0

dove:
1 N −1 
F ( x , v) = N  ∑ f ( x, y ) exp[− j 2πv y N ]
N y=0 
ü 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) y (0,0) v (0,0) N -1 v
N -1 N-1

Trasform. di riga Trasf. di colonna


f ( x,y) F (x,v) F ( u,v )

Moltipl. per N N-1


N -1 N -1
x u
x

ü Lo stesso risultato può essere ottenuto trasformando prima per colonne e


poi per righe
ü Considerazioni del tutto analoghe possono essere fatte per la
trasformazione inversa

E. Ardizzone 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) ⇔ F(u- N 2 ,v- N 2 )
x+y

ü 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(x), x = 0, …, 255 |F(u)|, u = 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 Spettro traslato

E. Ardizzone 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:
N −1 N −1
1
f ( x, y ) = 2
N
∑ ∑ f ( x, y)
x =0 y =0

ü D’altro canto, dalla definizione di DFT, per u = v = 0 si ottiene:

N −1 N −1
1
F (0,0) =
N
∑∑ f ( x, y )
x=0 y =0

ü Quindi:

1
f ( x, y ) = 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:
 x/2 0 ≤ x ≤1

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) ∗ g ( x)
f(x)
A A

a x
∗ -T T
=
x -T a T x

E. Ardizzone 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
sequenze di, rispettivamente, A e B valori
9 Come si è visto, nel caso discreto le DFT e le loro inverse sono funzioni
periodiche
9 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
9 In tali ipotesi, anche la convoluzione è periodica, con lo stesso periodo M
9 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) 0 ≤ x ≤ A −1  g ( x) 0 ≤ x ≤ B − 1
f e ( x) =  g e ( x) = 
 0 A ≤ x ≤ M −1  0 B ≤ x ≤ M −1
9 Sulla base di queste estensioni, la convoluzione discreta di fe(x) e ge(x) è
così definita:
M −1
f e ( x) ∗ g e ( x) = ∑f
m =0
e (m) g e ( x − m), 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) A=B M = 2A - 1

=
ge(x) f e ( x) ∗ g e ( x)
1
∗ 1/2 1/2

1 2 x 1 2 x 1 2 x
A A
M M M

E. Ardizzone 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 ) 0 ≤ x ≤ A −1 e 0 ≤ y ≤ B −1
f e ( x, y ) = 
 0 A ≤ x ≤ M −1 o B ≤ y ≤ N −1

 g ( x, y ) 0 ≤ x ≤ C −1 e 0 ≤ y ≤ D −1
g e ( x, y ) = 
 0 C ≤ x ≤ M −1 o D ≤ y ≤ N −1

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:
M −1 N −1
f e ( x, y ) ∗ g e ( x, y ) = ∑∑ f
m=0 n=0
e (m, n) g e ( x − m, y − n)
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:
f(x) g(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


f(x) 9 Il risultato della convoluzione
manifesta una pendenza maggiore di
quella della f(x), con una
x evidenziazione delle componenti di
alta frequenza del segnale, e una
g(x)
sovraelongazione (ringing) sui due lati
dell’edge
9 Quindi la g(x) ha il comportamento
x tipico di un filtro passa-alto: in pratica
ha effettuato lo sharpening della f(x)
f ( x) ∗ g ( x) 9 Le due g(x) possono essere in realtà
considerate delle tipiche risposte
impulsive di filtri, rispettivamente
x 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
M −1 N −1
g ( x, y ) = f e ( x, y ) ∗ he ( x, y ) = ∑∑ f
m=0 n =0
e (m, n)he ( x − m, y − n)

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
per tutti i punti (x,y): al variare delle coordinate la maschera trasla
semplicemente, mantenendo inalterati forma, dimensioni e pesi
9 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
9 Come è noto, la risposta impulsiva caratterizza completamente il
comportamento di un sistema lineare spazio-invariante
9 Nel dominio della frequenza, alla risposta impulsiva corrisponde la
funzione di trasferimento del filtro H(u,v)
9 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:
M −1
f e ( x) o g e ( x) = ∑
m=0
f e* (m) g e ( x + m), 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 è:
M −1 N −1
f e ( x, y ) o g e ( x, y ) = ∑∑
m=0 n=0
f e* (m, n) g e ( x + m, y + n)

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(x) F(u)

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(x) F(u)

x -W W u
s(x) S(u)

∆x x −1/∆x 1/∆x u
s(x)f(x) S (u ) ∗ F (u )

x −1/∆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
produce la replica della funzione nei punti in cui sono localizzati gli
impulsi, la trasformata della funzione campionata è quella mostrata
9 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
9 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
9 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 ≤
2∆x 2W
9 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) S (u ) ∗ F (u )

x −2/∆x 1/∆x 2/∆x u


∆x/2
9 L’importanza di questa operazione sta nel fatto che adesso la trasformata
G(u)
può essere moltiplicata per la funzione:
1 − W ≤ u ≤ W 1
G (u ) = 
0 altrimenti
u
-W 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 )

E. Ardizzone 31
x -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
una funzione a banda limitata) nell’intervallo [-W, W], la ricostruzione
esatta della f(x) continua è possibile solo se la condizione di Whittaker-
Shannon è soddisfatta
9 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
9 Si è finora supposta illimitata la durata della f(x), e di conseguenza
infinitamente esteso l’intervallo di campionamento
9 E’ più interessante il caso pratico di una funzione campionata in una
regione di interesse di dimensione finita, come avviene per una immagine
9 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 1/∆x u
-W W
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(x) H(u)
1

X x u
-1/X 1/X
h(x)[s(x)f(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
Una funzione continua f(x,y)
può essere campionata
formando il prodotto
∆x
E. Ardizzone s(x,y)f(x,y) 35
∆y
x
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 1
v ≥ 2Wu
2Wv ∆x
1/∆x 1
R ≥ 2Wv
∆y
1/∆y
u
E. Ardizzone 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:

1 1
∆x ≤ ∆y ≤
2Wu 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 x =0  N 
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:
2 M −1
1
F (u ) =
2M
∑x =0
f ( x)W2uxM =
M −1 M −1
1 1 1 
= 
2 M
∑ f (2 x)W
x =0
u (2 x)
2M +
M
∑ f (2 x + 1)W
x =0
u ( 2 x +1)
2M 

 2π   2π 
9 Poiché W2uM( 2 x ) = exp − j u 2 x  = exp − j ux  = WMux
 2M   M 
si può scrivere:
M −1 M −1
1 1 1 
F (u ) = 
2 M

x =0
f (2 x)W ux
M +
M
∑ x =0
f (2 x + 1)WMuxW2uM 

E. Ardizzone 40
Università degli Studi
di Palermo

La trasformata veloce di Fourier (FFT)


9 Definendo:
M −1 M −1
1 1
Fe (u ) =
M
∑ f (2 x)W
x =0
ux
M Fo (u ) =
M
∑ f (2 x + 1)W
x =0
ux
M per u = 0, 1, …, M - 1

la F(u) può essere espressa come:


1
[
F (u ) = Fe (u ) + Fo (u )W2uM
2
]
per u = 0, 1, …, M - 1

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
[
F (u + M ) = Fe (u ) − Fo (u )W2uM
2
]
per u = 0, 1, …, M - 1

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 per n ≥ 1
2 2 2
a (n) = 2 n log 2 2 n = N log 2 N = Nn per n ≥ 1
E. Ardizzone 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 x =0  N 
N −1
f ( x) = ∑ F (u ) exp  j 2πux , per x = 0, K, N − 1
u =0
 N 

9 Prendendo la coniugata di quest’ultima e dividendo per N si ottiene:


N −1
1 1
N
f * ( x) =
N
∑ F * (u ) exp− j 2πux N ,
u =0
per x = 0, K, N − 1
E. Ardizzone 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:
argomento vettore argomento vettore
Si noti che se l’ingresso
originale originale bit reversed ordinato dell’algoritmo FFT è il vettore
000 f(0) 000 f(0) ordinato, l’uscita è la DFT con i
001 f(1) 100 f(4) coefficienti nell’ordine corretto
010 f(2) 010 f(2)
011 f(3) 110 f(6)
100 f(4) 001 f(1)
Oltre che su base 2, gli algoritmi FFT
101 f(5) 101 f(5) possono essere formulati su base
110 f(6) 011 f(3)
111 f(7) 111 f(7)
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 )
x =0 u = 0,1,..., N − 1
9 g(x,u) è il kernel della trasformazione diretta
9 Analogamente, la trasformazione inversa si può esprimere come:
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 ) u , v = 0,1,..., N − 1
x =0 y =0
N −1 N −1
f ( x, y ) = ∑∑ T (u , v)h( x, y, u , v) x, y = 0,1,..., N − 1
u =0 v =0

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 ]
g ( x, y , u , v ) =
N
9 g è in questo caso separabile e simmetrico, in quanto:

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:
A −1 = A ∗T AA ∗T = AA −1 = A ∗T A = I
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
h =1
ih a jh = 0 per i ≠ j (i, j = 1, K, N )
N

∑a
h =1
ih 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
segnale f(x) viene scomposto nelle sue componenti elementari, che sono
nella forma dei vettori di base
9 I coefficienti della trasformata specificano quanto di ogni componente di
base è presente nel segnale
9 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
9 Il coefficiente della trasformata è una misura della correlazione tra il
segnale ed il corrispondente vettore di base
9 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
W (u ) = ∑ f ( x)∏ (− 1) i n−1−i
b ( x )b (u )

N x =0 i =0

9 Il kernel diretto di Walsh è quindi:


1 n −1
g ( x, u ) = ∏ (− 1) i n−1−i
b ( x )b (u )

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 b2 ( z ) = 1
9 Sviluppando l’esempio (n = 3, N = 8) si ha:

1 2
g ( x, u ) = ∏ (− 1) i n−1−i
b ( x )b (u )

8 i =0
E. Ardizzone 60
Università degli Studi
di Palermo

La trasformata discreta di Walsh (DWT)


9 Da cui:
1 2 1 1
g (0,0) = ∏ (− 1) i n−1−i = (− 1) 0 2 (− 1) 1 1 (− 1) 2 0 =
b ( 0)b (0) b ( 0)b ( 0) b ( 0)b ( 0) b ( 0)b ( 0)

8 i =0 8 8
1 2 1 1
g (0,1) = ∏ (− 1) i n−1−i = (− 1) 0 2 (− 1) 1 1 (− 1) 2 0 =
b ( 0)b (1) b ( 0 ) b (1) b ( 0 ) b (1) b ( 0 ) b (1)

8 i =0 8 8
...
1 2 1 1
g (3,2) = ∏ (− 1) i n−1−i = (− 1) 0 2 (− 1) 1 1 (− 1) 2 0 = −
b ( 3) b ( 2) b ( 3) b ( 2 ) b ( 3) b ( 2 ) b ( 3) b ( 2 )

8 i =0 8 8
...

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 9 Da questo segue che il kernel inverso è identico
0 ++ + + ++ + + al kernel diretto, eccetto che per la costante 1/N:
1 ++ + + - - - -
n −1
2 ++ - - ++ - -
h( x, u ) = ∏ (− 1) i
b ( x ) bn −1−i ( u )
3 ++ - - - - + +
i =0
4 +- + - +- + -
5 +- + - - + - + 9 Quindi la trasformata inversa di Walsh è (x = 0,
6 +- - + +- - + …, N - 1): N −1 n −1
f ( x) = ∑ W (u )∏ (− 1) i n−1−i
b ( x )b (u )
7 +- - + - + + -
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:
N −1 N −1 n −1
1 [bi ( x ) bn−1−i ( u ) + bi ( y ) bn−1−i ( v ) ]
W (u , v ) = ∑ ∑ f ( x, y )∏ (− 1)
N x =0 y =0 i =0

N −1 N −1 n −1
1 [bi ( x ) bn−1−i ( u ) + bi ( y ) bn−1−i ( v ) ]
f ( x, y ) =
N
∑ ∑W (u, v)∏ (− 1)
u =0 v =0 i =0

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 0 1 2 3

u L’origine di ogni blocco


0
è in alto a sinistra

1
Il valore +1 è rappresentato
in bianco, il valore -1 in
nero
2

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
H (u ) = ∑ f ( x)(− 1)∑
bi ( x ) bi ( u )
i =0
N x =0
9 Il kernel diretto di Hadamard è quindi:
n −1
1
g ( x, u ) = (− 1)∑
bi ( x ) bi ( u )
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

h( x, u ) = (− 1)∑
bi ( x ) bi ( u )
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

f ( x) = ∑ H (u )(− 1)∑
bi ( x ) bi ( u )
i =0
u =0
9 Nel caso 2-D, il kernel diretto ed il kernel inverso di Hadamard valgono
rispettivamente: n −1
1
g ( x, y, u , v) = (− 1)∑
[bi ( x ) bi ( u ) + bi ( y ) bi ( v ) ]
i =0
N
n −1
1
h( x, y, u , v) = (− 1)∑
[bi ( x ) bi ( u ) + bi ( y ) bi ( v ) ]
i =0
N
9 La DHT e la sua inversa sono quindi espresse come:
n −1
1 N −1 N −1
H (u, v) = ∑∑ f ( x, y )(− 1)∑
[bi ( x ) bi ( u ) + bi ( y ) bi ( v ) ]
i =0
N x =0 y =0
N −1 N −1 n −1
1 ∑ [bi ( x )bi ( u ) + bi ( y )bi ( v ) ]
f ( x, y ) =
N
∑∑ H (u ,
u =0 v =0
v ) (− 1)i =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 x
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
u + + + + + u + + + + +
0 + + + 0 + + +
+ + + - - - + - - +
1 + - - 1 + + -
+ - - + - + - - + -
2 + + - 2 + + -
+ - - - + - - + - -
3 + - + 3 + + +
+ - - + + + + - -
4 + + - 4 + - -
- + - + - - + - + -
5 + - + 5 + - +
- + - - + - - +
6 + + + 6 + - +
- - + + + - + + +
7 + - - 7 + - -
- - - -
Kernel di Walsh (N = 8) Kernel di Hadamard (N = 8)
E. Ardizzone 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
trasformate, tanto che in parte della letteratura si parla di trasformata di
Walsh-Hadamard per indicare l’una o l’altra
9 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
9 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
9 Per esempio, le sequenze delle 8 colonne della matrice per N = 8 sono,
rispettivamente: 0, 7, 3, 4, 1, 6, 2 e 5
9 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 )
p1 (u ) = bn −1 (u ) + bn − 2 (u )
n −1
1
g ( x, u ) = (− 1)∑
i =0
bi ( x ) pi ( u ) dove: p2 (u ) = bn − 2 (u ) + bn −3 (u )
N
M
pn −1 (u ) = b1 (u ) + b0 (u )
9 Ne risulta il seguente set di funzioni di base, con colonne (e righe) in
x
0 1 2 3 4 5 6 7 ordine di sequenza crescente
u + + +
0 ++ + + +
+ - -
1 ++ + - -
- - +
2 ++ - - +
- + - Kernel ordinato di
3 ++ - + -
- + - Hadamard (N = 8)
4 +- + - +
- - +
5 +- + + -
+ - -
6 +- - + +
+ + +
7 +- - - - E. Ardizzone 70
Università degli Studi
di Palermo

La trasformata discreta di Hadamard (DHT)


9 Il kernel ordinato inverso è:
n −1

h( x, u ) = (− 1)∑
bi ( x ) pi ( u )
i =0

9 Ne risulta la seguente coppia di trasformate ordinate di Hadamard:


N −1 n −1
1
∑ f ( x)(− 1)∑
bi ( x ) pi ( u )
H (u ) = i =0
N x =0
N −1 n −1

f ( x) = ∑ H (u )(− 1)∑
bi ( x ) pi ( u )
i =0
u =0
9 Nel caso 2-D: n −1
N −1 N −1
1
f ( x, y )(− 1)∑
[bi ( x ) pi ( u ) + bi ( y ) pi ( v ) ]
H (u , v) =
N
∑∑
x =0 y =0
i =0

N −1 N −1 n −1
1 ∑ [bi ( x ) pi (u ) + bi ( y ) pi ( v ) ]
f ( x, y ) =
N
∑∑ H (u ,
u =0 v =0
v ) (− 1)i =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 1 2 3

u L’origine di ogni blocco è in


0
alto a sinistra

Il valore +1 è rappresentato in
1
bianco, il valore -1 in nero

Le immagini di base di Hadamard


2 differiscono da quelle di Walsh
solo perché sono ordinate per
valori di sequenza crescente, e
3
quindi appaiono più “naturali”

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π 
N −1
C (u ) = α (u ) ∑ f ( x) cos   , con u = 0, K, N − 1
x =0  2N 
9 La DCT inversa è definita come:

 (2 x + 1)uπ 
N −1
f ( x) = ∑ α (u )C (u ) cos   , con x = 0, K, N − 1
u =0  2N 

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π 
N −1 N −1
C (u, v) = α (u )α (v) ∑ ∑ f ( x, y ) cos   cos  2 N 
x =0 y =0  2N
per u , v = 0, K, N − 1
 (2 x + 1)uπ   (2 y + 1)vπ 
N −1 N −1
f ( x, y ) = ∑ ∑ α (u )α (v)C (u , v) cos   cos  2 N 
u =0 v =0  2N
per x, y = 0, K, N − 1

 1  1 per v = 0
 per u = 0  N
α (u ) =  N α (v ) = 
2
2
 N per u = 1, 2,..., N − 1  per v = 1,2,..., N − 1
 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 0 1 2 3

u L’origine di ogni blocco è in


0
alto a sinistra
1.2071

0.9239
Il valore massimo è rappresentato
0.707
1 in bianco, il valore minimo in
0.5
nero, i valori intermedi in toni di
0.3827
grigio
0.2071
2
-0.2071 L’importanza odierna della
-0.3827 DCT sta nel suo impiego nei
-0.5 principali algoritmi e standard
-0.707 3 di compressione di immagini e
-0.9239 video
E. Ardizzone 75
-1.2071
Università degli Studi
di Palermo

La trasformata coseno discreta (DCT)


9 Un esempio di DCT visualizzata come immagine di intensità:

Originale DFT (spettro) DCT

E. Ardizzone 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 è
x=  2

M una variabile random
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:

M M
1 1
mx =
M
∑ xk
k =1
Cx =
M
∑ k k x x
x x
k =1
T
− m m T

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
0  1 1  1
x1 =  0  x 2 =  0  x 3 =  1  x 4 =  0 
       
0 0 0 1
9 si ottiene:

3 3 1 1
1 1
m x = 1 C = 1 3 − 1
4  x
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
2 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:
λ1 0
Cy =  O 
 
 0 λn 
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 )

Kxn nx1
Kx1
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
nx1
nxK Kx1

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 n n
ems = ∑ λ J − ∑ λ J = ∑ λJ = ∑ σJ
j =1 j =1 j = K +1 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:
x2

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 l’oggetto risulta riferito ad un nuovo
y2 sistema di assi, y1 e y2, che risultano
allineati con gli autovettori e1 e e2, e la
cui origine coincide con il centroide
y1 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:
y = Ax x = AT y
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 prodotto interno
yi = (e , x)
i

E. Ardizzone 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  La procedura che qui viene descritta
x  considera, come popolazione di
 2
 x3  vettori cui applicare la KLT discreta,
x= 
x
 4 quelli ottenuti considerando la
 x5  disposizione delle immagini illustrata
x 
 6 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 0.40-0.44
Can. 2 0.62-0.66
Can. 3 0.66-0.72
Can. 4 0.80-1.00
Can. 5 1.00-1.40
Can. 6 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 yi = (eTi , (x − m x ))
i =1
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:
D0 è una quantità non negativa, e D(u,v)
1 per D(u , v) ≤ D0 è la distanza del punto (u,v) dall’origine
H (u , v) = 
0 per D(u , v) > D0 del piano delle frequenze: D (u , v) = (u 2 + v 2 )
12

Tutte le frequenza all’interno di un


cerchio di raggio D0 passano senza
attenuazione, mentre tutte quelle
superiori sono completamente attenuate

E. Ardizzone 20
D0 = 0.5
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 β Si può notare che lo spettro
ha una intensità decrescente
6 90
molto rapidamente: il 90%
12 95 della potenza totale è
27 98 racchiusa nel piccolo
cerchio di raggio 6
45 99
Le figure seguenti mostrano
70 99.5 i risultati dell’applicazione
di filtri PB ideali, con
frequenze di taglio uguali ai
raggi dei cerchi considerati
E. Ardizzone 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 è:
1
H (u, v) =
1 + [D (u, v) D0 ]
2n

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) = =
1 + [ 2 − 1][D(u , v) D0 ] 1 + 0.414[D(u , v) D0 ]
2n 2n

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:
D0 è una quantità non negativa, e D(u,v)
0 per D(u , v) ≤ D0
H (u , v) =  è la distanza del punto (u,v) dall’origine
1 per D(u , v) > D0 del piano delle frequenze: D (u , v) = (u 2 + v 2 )
12

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 D0 D(u,v)
E. Ardizzone 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 è:
1
H (u, v) =
1 + [D0 D(u , v)]
2n

9 Per esempio, con n = 1:


H(u,v)

D(u,v)/D0 E. Ardizzone 33
D0 = 1
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) = =
1 + [ 2 − 1][D0 D (u, v)] 1 + 0.414[D0 D (u, v)]
2n 2n

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
γH
frequenze e ad amplificare il
γL
contenuto delle alte frequenze

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
proceduto ad una standardizzazione dei tre colori primari, fissando i
seguenti valori:
B = 435.8 nm G = 546.1 nm R = 700 nm
9 Questo non significa che sia possibile generare qualunque colore dello
spettro come una somma pesata dei tre primari standard sopra definiti
9 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
9 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
9 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
punto l’immagine è l’intensità, che si traduce nel valore del corrispondente
pixel
9 Nel caso della radiazione cromatica, per ogni punto dell’immagine occorre
tener conto dei tre valori dei primari che ne determinano il colore
9 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
9 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
9 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
x= 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)

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
sugli assi, mentre ciano, magenta e
(0,0,1) = blu
ciano giallo sono ai vertici opposti
9 Il nero è all’origine ed il bianco è al
magenta bianco vertice più lontano, mentre la
diagonale che li congiunge è la
nero (0,1,0) = verde scala dei grigi
G
9 Un colore è rappresentato da un
scala dei grigi punto sulla superficie o all’interno
(1,0,0) = rosso giallo del cubo
R 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
blu Modelli del colore
9 La tinta H del colore P è l’angolo tra il vettore
che definisce P e l’asse del rosso
magenta ciano
9 Per esempio, un colore è rosso quando H = 0°, è
giallo quando H = 60°, è blu quando H = 240°,
H
P etc.
rosso verde
giallo 9 La saturazione S è proporzionale alla distanza di
P dal centro del triangolo HSI. Sul bordo del
bianco triangolo i colori sono completamente saturi
9 L’intensità I è misurata rispetto ad una linea
perpendicolare al triangolo, passante per il
blu centro: i valori rappresentati da punti sotto il
rosso triangolo tendono al nero, i valori sopra il
I verde
triangolo tendono al bianco
H 9 Il modello complessivo 3-D è una doppia
piramide a base triangolare

nero 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 Sono da notare alcune condizioni:
I = ( R + G + B)
3 • I valori di I e S sono normalizzati;
3 se si vuole lo stesso per H,
S = 1− [min( R, G, B)] bisogna porre H = H/360
R+G + B
 1  • Se (B/I) > (G/I), H = 360 - H
 [( R − G ) + ( R − B)] 
H = cos −1  2 • Se I = 0, S non è definita

 [
( R − G ) 2
+ ( R − B )(G − ]
B )
12
 • 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 1 S cos H 
b = (1 − S ) r = 1 + g = 1 − ( r + b)
3 3  cos(60° − H ) 
◆ Per 120° < H ≤ 240° (settore GB):
H = H − 120°
1 1 S cos H 
r = (1 − S ) g = 1 + b = 1 − (r + g )
3 3  cos(60° − H ) 
◆ Per 240° < H ≤ 360° (settore BR):
H = H − 240°
1 1 S cos H 
g = (1 − S ) b = 1 + r = 1 − ( g + b)
3 3  cos(60° − H ) 
E. Ardizzone 23
Università degli Studi
di Palermo

Modelli del colore


9 Per ottenere R, G, B, ricordando che:
R G B 1
r= g= b= I = ( R + G + B)
R+G + B R+G + B R+G+ B 3
si ha infine:
R = 3Ir G = 3Ig 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
Modelli del colore
V giallo 9 H è misurata dall’angolo descritto rispetto
verde 60°
all’asse verticale (rosso a 0°), mentre S
1 rosso
ciano bianco 0°
varia da 0 (sull’asse V) a 1 (sulla superficie
180°
della piramide)
blu magenta
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
H
nero
0 S importanza. Per S = 0, il valore di H è non
verde giallo definito
9 E’ interessante notare che la base esagonale
bianco corrisponde alla proiezione del cubo RGB
ciano rosso
lungo la diagonale principale, che diventa
esattamente l’asse V
blu magenta 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 ) m = min( R, G , B )
9 A questo punto:
M −m
V =M S= (S = 0 se M = 0)
M
9 Per il calcolo della tinta, se S = 0, H è indefinita; altrimenti, vengono prima
determinati:
M −R M −G M −B
R′ = G′ = B′ =
M −m M −m 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
bianco 9 In effetti, rispetto al modello HSV l’unica
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)
giallo 9 Il modello HLS può essere pensato come
verde 60° una deformazione del modello HSV
rosso
ciano 0,5 0° 9 Le conversioni RGB - HLS e HLS - RGB
180°
si possono effettuare con tecniche analoghe
blu magenta
a quelle utilizzate per il modello HSV

H
nero S
0 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:

L S H
E. Ardizzone 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:
K = min(C, M, Y)
C = (C - K)/(1 - K) 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:
Y  0.299 0.587 0.114   R 
 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:

Y   0.299 0.587 0.114   R 


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

 Y   0.299 0.587 0.114   R 


 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
 Y   0.257 0.504 0.098   R   16 
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
derivati mediante trasformazioni lineari o non lineari di coordinate) è che
esso non è dotato di uniformità percettiva
9 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
9 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
9 Dato che il sistema non è percettivamente uniforme, in generale le due
distanze, benchè uguali, saranno percepite come differenti
9 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* = 
 903.3(Y / Yn ) per Y Yn ≤ 0.008856
E. Ardizzone 38
Università degli Studi
di Palermo
Modelli del colore
9 Si ha inoltre:
u* = 13L * (u ′ − u n′ ) v* = 13L * (v′ − vn′ )

dove: 4X 9Y
u′ = v′ =
X + 15Y + 3Z X + 15Y + 3Z
4X n 9Yn
u n′ = ′
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:
v*
C* = (u *2 + v *2 )1 2 huv = tan −1 ( ) suv = C *
u* L*
E. Ardizzone 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
estrazione di informazioni, in forma più o meno aggregata, dalle immagini
stesse
9 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
9 Nelle operazioni di segmentazione di basso livello si parla più propriamente
di individuazione delle regioni che costituiscono l’immagine
9 Invece nelle operazioni di segmentazione dette di alto livello lo scopo è
direttamente l’individuazione degli oggetti presenti nell’immagine
9 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
dipendente dall’applicazione, nel senso che la segmentazione può arrestarsi
quando tutti gli oggetti di interesse per l’applicazione sono stati isolati
9 E’ intuibile la complessità intrinseca del processo di segmentazione
9 Pertanto, laddove possibile esso è in genere accompagnato da un insieme di
accorgimenti tendenti ad accrescerne le probabilità di successo
9 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.).
9 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:

-1 -1 -1
R >T
-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 -1 -1 2 -1 2 -1 2 -1 -1
2 2 2 -1 2 -1 -1 2 -1 -1 2 -1
-1 -1 -1 2 -1 -1 -1 2 -1 -1 -1 2
9 La prima maschera risponde più intensamente alle linee orizzontali (spesse un
pixel): con uno sfondo costante, il massimo di R si ha infatti quando la linea
coincide con la riga centrale della maschera
9 Analogamente, la seconda maschera risponde meglio a linee orientate a 45°, la
terza a linee verticali, la quarta a linee orientate a -45°
9 Siano, rispettivamente, R1, R2, R3 e R4 le risposte delle quattro maschere
9 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
9 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
hanno ricevuto più attenzione nella letteratura sull’image processing
9 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
9 Un edge si presenta in una immagine come il confine tra due regioni
caratterizzate da proprietà dei livelli di grigio in qualche modo distinguibili
9 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
9 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 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 b
h h h
a a a

y0 y y0 y y0 y
E. Ardizzone 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  
−1

misurato rispetto all’asse x  Gx 


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:
I valori assoluti delle risposte
1 0 0 1 delle due maschere vengono
0 -1 -1 0 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 0 0 0 0 0 0 0 0
0 1 0 0 1 -1 0 1 0 0 0 1
0 -1 0 0 0 0 0 0 -1 0 -1 0
Running difference 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 a a c b b b a a a d e b b
edge 0 0 h 0 0 0 0 0 0 h/2 h/2 0 0 0 0 0 h/3 h/3 h/3 0 0
gradino rampa più ripida rampa meno ripida
a −c = c−b = h 2 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 Differenza verticale Immagine di edge
(edge verticali) (edge orizzontali)
E. Ardizzone 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 a d e b b
edge 0 0 h/2 h h/2 0 0 0 0 h/3 2h/3 2h/3 h/3 0

E. Ardizzone 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 -1 -1 -1 -1 0 1 G x = ( z 7 + z8 + z 9 ) − ( z1 + z 2 + z 3 )
0 0 0 -1 0 1 G y = ( z 3 + z 6 + z 9 ) − ( z1 + z 4 + z 7 )
1 1 1 -1 0 1

Operatori di Sobel -1 -2 -1 -1 0 1
G x = ( z 7 + 2 z8 + z 9 ) − ( z1 + 2 z 2 + z 3 )
0 0 0 -2 0 2
G y = ( z 3 + 2 z 6 + z 9 ) − ( z1 + 2 z 4 + z 7 )
1 2 1 -1 0 1
E. Ardizzone 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:

-1 -1 -1 -1 0 1
Operatori di Prewitt 1 1
× 0 0 0 × -1 0 1
3 3
1 1 1 -1 0 1

Operatori di Sobel -1 -2 -1 -1 0 1
1 1
× 0 0 0 × -2 0 2
4 4
1 2 1 -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 Prewitt


E. Ardizzone 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

1 1 1 0 -1 -1 -1
9 Per esempio, l’operatore di Prewitt 1 1 1 0 -1 -1 -1
7 x 7 per il calcolo del gradiente di
1 1 1 0 -1 -1 -1
riga è mostrato a fianco
1 1 1 0 -1 -1 -1
1 1 1 0 -1 -1 -1
1 1 1 0 -1 -1 -1
1 1 1 0 -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 passa-
basso
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:
1 1 0 -1 -1
2 2 0 -2 -2
1
GCy = × 3 3 0 -3 -3
18
2 2 0 -2 -2
1 1 0 -1 -1
E. Ardizzone 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:
dove σ è la deviazione standard,
 x2 + y2   r2 
h( x, y ) = exp − 2 
 = exp − 2  ossia il valore di r per il quale h
 2σ   2σ  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 


0.0000 0.0113 0.0837 0.0113 0.0000 
 
0.0002 0.0837 0.6187 0.0837 0.0002
0.0000 0.0113 0.0837 0.0113 0.0000 

0.0000 0.0000 0.0002 0.0000 0.0000 

E. Ardizzone 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:

∂h x  x2 + y2  ∂h y  x2 + y2 
= − 2 exp − 2
 = − 2 exp − 2

∂x σ  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


 0.1129 0.7733 0.1129 
mostrata (i pesi sono normalizzati per  0 
ottenere media unitaria lungo y) 0 0
 
9 In maniera analoga si può agire per la − 0.1129 − 0.7733 − 0.1129
componente lungo y E. Ardizzone 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

snr =
hE
S(h) , con S ( h) = W
∫−W
h( x)dx
σn [ ]

2
h ( x ) dx
−W
E. Ardizzone 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):
hE h′(0)
LOC = L(h) , con L( h) =
σn W
[ ]
∫−W
2
h ′( x ) dx

3. 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

9 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 PF = ∫ p(G | no - edge) dG
t 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 Neyman-
Pearson)
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
rumore E. Ardizzone 36
Università degli Studi
di Palermo
Scelta del valore di soglia
9 L’approccio statistico presenta comunque due ordini di difficoltà, il primo
legato alla affidabilità del modello statistico di edge e il secondo alla
difficoltà di calcolo delle densità condizionali di gradiente
9 Tali difficoltà possono essere superate ricorrendo ad un approccio basato su
tecniche di pattern recognition
9 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
9 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)
9 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 ∂2 f ∂2 f
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 L ( x , y ) = f ( x , y ) ∗ H ( x, y )
 
 0 − 1 0
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
H=  1 4 1
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 b
h h h
a a a

y0 y y0 y y0 y
c−a = b−c = h 2 d −a = e−d = b−e = h 3
E. Ardizzone 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 c b b b
3 3 3 3
edge 0 0 − h h 0 0 0 0 0 − h 0 h 0 0
8 8 16 16
gradino rampa più ripida c−a = b−c = h 2

Per l’edge a rampa più ripida, il laplaciano rileva


correttamente il contorno in corrispondenza allo ZC
grigi a a a d e b b
h h Per l’edge a gradino, lo ZC si trova fra i due pixel a
edge 0 0 − 0 0 0 sinistra e a destra del contorno, e per convenzione
8 8
l’edge è collocato sul pixel a destra dello ZC
rampa meno ripida
d −a = e−d = b−e = h 3 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 
h( x, y ) = exp − 2 
 = exp − 2 
 2σ   2σ 

2 r2 −σ 2  r 2  Sezione trasversale
∇ h=− 2
exp − 2 
σ  2σ  per σ = 1

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
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
E. Ardizzone di riduzione del rumore 44
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):

 a x < x0
s( x) = 
E. Ardizzone 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:
x0 + L
E=∫ [ f ( x) − s ( x)]2 dx
x0 − L

9 Se |E| ≤ T un edge di altezza h viene assunto in x0


9 Nel caso 2D, il gradino ideale è definito come:
ρ e ϑ specificano la
 a ( x cos ϑ + y sin ϑ ) < ρ
s ( x, y ) =  distanza dell’edge dal
a + h ( x cos ϑ + y sin ϑ ) ≥ ρ centro di una regione
circolare di test C
9 L’errore è in questo caso:

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 y
rette passanti per esso è
(xi,yi)
yi = axi + b
9 Ciascuna di queste rette soddisfa l’equazione (xj,yj)
precedente per una determinata coppia dei
parametri a e b x
9 Scriviamo la stessa equazione nella forma
b’ b
b = − xi a + y i
che rappresenta, nello spazio dei parametri, b = −x j a + y j
l’equazione della sola linea definita dalla coppia di a’
valori (xi,yi), che possiamo ritenere associata al
b = − xi a + y i
punto in questione
9 Analogamente, un altro punto (xj,yj) ha una sola a
linea ad esso associata nello spazio dei parametri
9 Nel piano ab le due linee si intersecano nel punto
(a’,b’)
E. Ardizzone 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
contiene entrambi i punti considerati
9 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
9 La trasformata di Hough fa pertanto corrispondere a punti del piano xy rette
dello spazio dei parametri ab
9 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
9 Il piano dei parametri è quantizzato in celle, che fungono da accumulatori
9 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 bmin 0 bmax b
amin
possibili in base alla quantizzazione effettuata,
dando luogo ad una n-pla di coppie del tipo
<ap,bq> 0
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
esempio M, in uno degli accumulatori, per a
esempio A(i,j), significa che M punti nel piano
Gli estremi degli intervalli sono
xy sono allineati lungo la retta definita dai
parametri ai e bj, con una precisione che è scelti in modo da contenere
legata al numero delle suddivisioni di tutti i casi interessanti
quantizzazione nell’immagine in esame
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

140 500
T2
120
400 T1
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:

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),
dove f(x,y) = i(x,y)r(x,y) è l’immagine in esame
9 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
9 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
9 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
9 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 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
parte chiara E. Ardizzone 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

200 T1
150

100

50

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

200
T2 Si può effettuare una altra
150

100
sogliatura a T2 = 40,
50 ottenendo i segmenti S00 e
0

0 50 100 150 200 250


S01
9 Analogamente per il segmento S1:

250

200
T3 Si può effettuare una altra
150
sogliatura a T3 = 170,
ottenendo i segmenti S10 e
100

50

0
S11
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

200
T1 T3
150
T2
100

50

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 R1
9 Si consideri il frammento di immagine a lato, in 0 0 5 6 7
cui i valori mostrati rappresentano livelli di grigio R2
e quelli segnati indicano i punti-seme 1 1 5 8 7
( (
9 Utilizzando due semi si potranno ottenere al più 0 1 6 7 7
due regioni, R1 e R2 2 0 7 6 6
9 Il predicato P è il seguente: un pixel appartiene ad
0 1 5 6 5
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 a a b b b
semi, lo si assegna a R1 a a b b b
9 A destra è mostrato il risultato della a a b b b
segmentazione per T=3: si ottengono appunto due
a a b b b
regioni, i cui pixel sono marcati rispettivamente
con a e b a a b b b

E. Ardizzone 30
Università degli Studi
di Palermo
Tecniche di regionalizzazione
9 Se invece T=8 si ottiene solo la regione mostrata: a a a a a
a a a a a
9 Ci si deve chiedere come si scelgono i punti di
a a a a a
seme, in modo che siano appropriati per la
segmentazione che si deve effettuare, e come si a a a a a
scelgono le proprietà in base alle quali governare a a a a a
il processo di accrescimento
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ò
procedere al calcolo, in ogni pixel, dello stesso insieme di proprietà che poi
saranno utilizzate durante l’accrescimento
9 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
9 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
9 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
9 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 Ad ogni livello della suddivisione, il predicato


P viene verificato per tutti i quadranti: se esso
risulta falso, il quadrante viene ulteriormente
R41 R42
suddiviso, e così via
R3
R43 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
La radice dell’albero corrisponde
all’intera immagine, ogni nodo
corrisponde a una suddivisione
R1 R2 R3 R4 Nell’esempio, solo R4 risulta
ulteriormente suddiviso

R41 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

Potrebbero piacerti anche