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