STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf ·...

145

Transcript of STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf ·...

Page 1: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

Università degli Studi di Bologna

Facoltà di IngegneriaCorso di Laurea in Ingegneria Informatica

Architetture digitali per l'elaborazione dei segnali

STUDIO E SVILUPPO DI ALGORITMIPER L'ANALISI DI IMMAGINI DELLAPELLE ACQUISITE TRAMITE UN

SENSORE CAPACITIVO

Tesi di laurea di: Relatore:SIMONE PARCA Prof. Ing. ROBERTO GUERRIERI

Correlatori:Dott. ALESSANDRO BEVILACQUA

Ing. ALESSANDRO GHERARDI

Sessione estivaAnno accademico 2003-2004

Page 2: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

ii

Page 3: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

Parole chiave

image processing, image segmentation, capacitance image, skin ageing,medical imaging

Page 4: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

iv

Page 5: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

Indice

Introduzione 1Motivazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Obiettivi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Metodo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Struttura della tesi . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1 La pelle: Struttura e morfologia 71.1 La Struttura della pelle . . . . . . . . . . . . . . . . . . . . . . 71.2 Ricerche sulla pelle . . . . . . . . . . . . . . . . . . . . . . . . 81.3 Invecchiamento della pelle . . . . . . . . . . . . . . . . . . . . 9

1.3.1 Trattamenti della pelle . . . . . . . . . . . . . . . . . . 121.4 Analisi di immagini: elementi di morfologia . . . . . . . . . . . 14

1.4.1 Proprietà e alcune de�nizioni . . . . . . . . . . . . . . 141.4.2 Apertura e Chiusura con ricostruzione . . . . . . . . . 151.4.3 Operatore H-max . . . . . . . . . . . . . . . . . . . . . 161.4.4 Segmentazione Watershed . . . . . . . . . . . . . . . . 171.4.5 Granulometria . . . . . . . . . . . . . . . . . . . . . . . 201.4.6 Limiti dell'approccio morfologico . . . . . . . . . . . . 21

2 Esame della letteratura 232.1 Analisi delle immagini della pelle acquisite con altri strumenti 23

2.1.1 Mountain Technology . . . . . . . . . . . . . . . . . . . 242.2 Analisi con sensore Capacitivo . . . . . . . . . . . . . . . . . . 26

2.2.1 Impronte digitali . . . . . . . . . . . . . . . . . . . . . 262.2.2 Analisi della pelle . . . . . . . . . . . . . . . . . . . . . 28

v

Page 6: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

vi INDICE

2.3 Studi ARCES . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.3.1 Il lavoro precedente a questa tesi . . . . . . . . . . . . 302.3.2 Altre considerazioni . . . . . . . . . . . . . . . . . . . . 32

3 Acquisizione dei dati 353.1 Lo strumento di acquisizione: TouchChip . . . . . . . . . . . . 353.2 Il metodo di acquisizione . . . . . . . . . . . . . . . . . . . . . 36

3.2.1 Il protocollo di acquisizione . . . . . . . . . . . . . . . 373.3 I campioni ottenuti . . . . . . . . . . . . . . . . . . . . . . . . 383.4 Analisi del rumore . . . . . . . . . . . . . . . . . . . . . . . . 39

3.4.1 Rumore dovuto alle caratteristiche del sensore . . . . . 393.4.2 Rumore dovuto alle caratteristiche dell'immagine . . . 41

3.5 Commenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4 L'algoritmo di analisi delle immagini 474.1 Normalizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . 474.2 Filtraggi basati sul rilevamento di linee . . . . . . . . . . . . . 484.3 La segmentazione . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.3.1 Segmentazione a soglia H Variabile . . . . . . . . . . . 564.4 Granulometrie . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.5 L'estrazione di features . . . . . . . . . . . . . . . . . . . . . . 66

4.5.1 Granulometria H-min . . . . . . . . . . . . . . . . . . . 674.5.2 Granulometria basata sull'Area di immagini binarie . . 674.5.3 La deviazione standard locale . . . . . . . . . . . . . . 69

4.6 Altri algoritmi . . . . . . . . . . . . . . . . . . . . . . . . . . . 704.6.1 Sogliatura a doppia soglia . . . . . . . . . . . . . . . . 704.6.2 Etichettatura delle rughe . . . . . . . . . . . . . . . . . 71

5 Risultati 815.1 Granulometrie estratte da segmentazione Watershed . . . . . . 825.2 Granulometria H-min . . . . . . . . . . . . . . . . . . . . . . . 905.3 Deviazione standard locale . . . . . . . . . . . . . . . . . . . . 91

6 Conclusioni e lavori futuri 93

Page 7: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

INDICE vii

A Momenti e distribuzioni 95

B Regressioni lineari 97

C Note, Curiosità e Bug di Matlab 99

D Implementazione Matlab degli algoritmi usati 101D.1 Normalizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . 101D.2 Algoritmi di �ltraggio . . . . . . . . . . . . . . . . . . . . . . . 102D.3 Scelta automatica del parametro H . . . . . . . . . . . . . . . 105D.4 Granulometrie . . . . . . . . . . . . . . . . . . . . . . . . . . . 105D.5 Linelabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110D.6 Altre funzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

Bibliogra�a 133

Page 8: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

viii INDICE

Page 9: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

Introduzione

Motivazioni

L'informatica e l'elettronica hanno fatto, negli ultimi decenni, enormipassi in avanti, le ripercussioni sono evidenti in tutti gli aspetti della vitaquotidiana. Uno dei campi che ha compiuto grandi progressi grazie alle nuo-ve tecnologie è quello medico: grazie alla disponibilità di attrezzature semprepiù avanzate è possibile eseguire analisi e diagnosi più precise; di pari passocrescono le conoscenze sul nostro corpo e sul suo funzionamento. Il risultatoè una migliore prevenzione e cura delle malattie.La pelle, oltre ad essere l'organo più esteso del corpo umano, è anche unodei più importanti e l'interesse della comunità scienti�ca nei suoi confrontista crescendo. Il problema dei danni causati dai raggi solari, e del crescentenumero di tumori e altre malattie della pelle, sta allarmando l'intera società:la cura della pelle non è più solo un problema estetico, ma un problema disalute e benessere.La comunità scienti�ca dispone di numerosi strumenti per l'analisi della to-pogra�a della pelle, ma la maggior parte di questi strumenti sono costosi edi�cili da usare, e l'acquisizione dei campioni è complessa e richiede l'ese-cuzione in un laboratorio specializzato. L'uso di un sensore capacitivo puòrisolvere tutti questi problemi, e potrebbe permettere la realizzazione di unostrumento portatile e utilizzabile da tutti, dal laboratorio di ricerca all'utentedomestico.Lo studio presentato in questa tesi tenta di risolvere i precedenti problemicon l'uso di un dispositivo capacitivo per la caratterizzazione topogra�ca

1

Page 10: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

2 INDICE

della pelle. Verrà usato un sensore capacitivo disponibile in commercio enormalmente usato per acquisire impronte digitali. Questo dispositivo è sta-to usato precedentemente per misurare caratteristiche non topogra�che comel'idratazione, ottenendo buoni risultati.Gli studi saranno incentrati sulla caratterizzazione della super�cie della pellee di come di�erenti features siano correlate con l'età. Analizzare il degradodella pelle con il passare degli anni ha una grande importanza nell'industriacosmetica e nella ricerca medica. I campi applicativi possono riguardare:

• e�etto di creme e cosmetici sulla pelle

• analisi del deterioramento della pelle per individuare trattamenti spe-ci�ci

• analisi degli e�etti solari sulla pelle

• determinazione del rischio di tumori (le persone con più di 65 annicon pelli deteriorate hanno il 20% di probabilità in più di contrarre untumore della pelle)

Questo è uno dei primi tentativi compiuti nell'applicazione di questo dispo-sitivo per questo tipo di analisi. Per adesso lo studio è limitato all'analisi dipelli sane, ma si spera in futuro di estendere lo studio a pelli danneggiate omalate.Questa tesi fa parte di una linea globale di investigazione, e si concentreràsullo studio e la ricerca di algoritmi per elaborazione di immagini della pelleumana acquisite tramite un sensore capacitivo, in particolare sulle operazioninecessarie per il �ltraggio e l'estrazione di features correlate con l'età.Il punto di partenza sarà le immagini acquisite con un sensore capacitivo,che ha i seguenti vantaggi:

• Permette di ottenere un'immagine della microstruttura della pelle conuna buona risoluzione e de�nizione.

• Mette bene in risalto la texture che caratterizza la pelle, fatta di rughe(micro-solchi della pelle) e celle (le aree delineate dalle rughe).

Page 11: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

INDICE 3

• Il sensore non è in�uenzato dall'illuminazione dell'ambiente di acquisi-zione, essendo capacitivo.

• Il dispositivo è economico, di facile utilizzo, compatto e utilizzabile suqualsiasi personal computer.

• Viene usato in applicazioni simili (impronte digitali, studi sull'idrata-zione)

• L'acquisizione avviene velocementema presenta anche diversi inconvenienti:

• La tonalità di grigio è in�uenzata da fattori non controllabili, qualila pressione esercitata sul sensore durante l'acquisizione, lo stato diidratazione della pelle, il sottile strato di grasso presente sulla super�ciedella pelle.

• La pressione in�uenza anche la larghezza delle rughe: aumentando lapressione le rughe si schiacciano e tendono ad assottigliarsi o scompa-rire.

• Un movimento durante l'acquisizione può produrre immagini scadenti:un errore umano durante la procedura di acquisizione può portare aimmagini ingannevoli.

• La presenza di peli genera grosse aree bianche curvilinee, che ingannanosulla reale struttura delle rughe.

• Non è mai stato usato per studiare la struttura delle rughe e delle celle.

Page 12: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

4 INDICE

Obiettivi

I nostri intenti sono:• Pre-elaborare i campioni per ridurre il rumore, metterne in risalto lastruttura morfologica e ottenere immagini di qualità omogenea.

• Estrarre informazioni dalle immagini �ltrate• Segmentare le immagini per poter caratterizzare le strutture presenti.• Individuare ed estrarre features correlate con l'età.• Delineare il processo complessivo che porta dai campioni �no alle fea-tures.

Metodo

Il punto di partenza sarà dato dagli studi sviluppati in contesti analoghi:analisi della pelle e acquisizione tramite sensore capacitivo, oltre agli studipreliminari già svolti nel centro di ricerca ARCES. Lo studio di algoritmi ele prove sperimentali verranno eseguite in ambiente Matlab, per i seguentimotivi:

• disponibilità dell'Images Processing Toolbox [1], che o�re i principalistrumenti di elaborazione e visualizzazione necessari per le immagini

• possibilità di implementare algoritmi velocemente• ambiente interpretato, possibilità di eseguire elaborazioni a riga dicomando in modo �essibile

• possibilità di creare interfacce gra�che, con l'aiuto del framework GUIbuilder

Ovviamente usare un ambiente interpretato implica una perdita di velocitànei calcoli, ma si è ritenuta più utile la possibilità di implementare algoritmidi prova rapidamente.

Page 13: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

INDICE 5

Struttura della tesi

Il capitolo 1 è un'introduzione agli aspetti strutturali e morfologici dellapelle tratta da diversi siti web ([2], [3], [4]), descrive le caratteristiche ge-nerali della pelle e le sue patologie, e in�ne richiama alcuni elementi sullamorfologia come teoria matematica. il capitolo 2 spiega e commenta il lavorogià svolto da altri in contesti analoghi, illustra tutti i lavori che si è ritenu-to utile prendere in considerazione, e delinea il lavoro svolto nei laboratoriARCES, di cui questa tesi fa parte. Nel capitolo 3 si illustra il processo digenerazione dei dati che è stato l'input di questa tesi, so�ermandosi sullametodologia di acquisizione e facendo delle considerazioni preliminari lega-te alle immagini acquisite. Il capitolo 4 illustra il processo complessivo dielaborazione che dalle immagini porta �no alla generazione delle features,illustrando le modalità d'uso di algoritmi già noti e de�nendo alcuni algorit-mi pensati speci�camente per risolvere i problemi individuati. Il capitolo 5Illustra e commenta i risultati ottenuti con le tecniche de�nite nel capitoloprecedente.

Page 14: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

6 INDICE

Page 15: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

Capitolo 1

La pelle: Struttura e morfologia

1.1 La Struttura della pelle

La pelle è l'organo più esteso del corpo, sia come super�cie, ma anchecome peso. E' usato come isolamento, per la produzione della vitamina D,sensazioni, ed escrezione tramite sudore. La pelle regolarmente esposta allaluce del sole ha una pigmentazione che assorbe le radiazioni potenzialmentedannose. I peli servono principalmente come ulteriore isolamento. La pelleè divisa in tre strati, ognuna con una funzione precisa (�gura 1.1).

Figura 1.1: Sinistra: Anatomia della pelle. Destra: e�ettodell'invecchiamento.

7

Page 16: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

8 CAPITOLO 1. LA PELLE: STRUTTURA E MORFOLOGIA

Epidermide Questo sottile strato esterno è composto da cellule che ven-gono continuamente rimpiazzate. La super�cie più esterna è fatta di cellulemorte. Le cellule di base, che producono nuove cellule, sono nella parteinferiore dell'epidermide.

Derma Il derma, che si trova sotto l'epidermide, dà il contributo maggioreallo spessore della pelle. Contiene una densa struttura di collageni e �breelastiche, due tipi di proteine. Questa struttura sostiene la linfa e vasi san-guigni, nervi, celle muscolari, ghiandole sudoripare e oleose, e follicoli deipeli. Le �bre collagene ed elastina danno alla pelle forza ed elasticità.

Tessuto Sottocutaneo Sotto l'epidermide e il derma giace lo strato sotto-cutaneo composto prevalentemente da grasso. questo strato della pelle isolae protegge gli organi interni e aiuta a dare alla pelle resistenza.La pelle può essere classi�cata in sottile e spessa. Quella spessa è presentesulla suola del piede e sul palmo della mano. Ha un largo strato corneo conalto contenuto di Cheratina. su questo tipo di pelle non crescono peli. Lasua funzione è aiutare l'aderenza. La pelle sottile è presente sul resto delcorpo e ha uno strato corneo più piccolo. Può avere peli ed è più elastica.

1.2 Ricerche sulla pelle

La ricerca sta studiando sempre di più come la pelle si conserva in salutee giovane. Gli obiettivi sono migliorarne la salute e prevenire le malattie. Lelinee di ricerca hanno condotto a:

• migliori prodotti per proteggere dall'acne e creme solari

• trattamenti per molte malattie della pelle: allergie, punture, dermatiti,herpes, lebbra, leucemia, rosolia, tumori e funghi.

• nuove conoscenze su come i ricettori del dolore ricevono e trasmettonosegnali alla colonna vertebrale e al cervello.

Page 17: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

1.3. INVECCHIAMENTO DELLA PELLE 9

• identi�cazione di geni e proteine che regolano la crescita di melanocitisia normali che abnormali (cellule che producono il pigmento melanina)

• conoscenze sui fattori che causano invecchiamento della pelle e su comeprevenirli.

1.3 Invecchiamento della pelle

Cominciamo a invecchiare nel momento in cui nasciamo, e gli e�etti del-l'invecchiamento sono evidenti sul nostro corpo. Superati i 20 anni, i piùevidenti e�etti dell'invecchiamento cominciano a svilupparsi. Dopo questaetà gli e�etti dell'invecchiamento cominciano a essere visibili sulla pelle.L'invecchiamento programmato geneticamente causa cambiamenti biochimicinel collagene e nell'elastina, i tessuti connettivi che danno alla pelle resisten-za ed elasticità. La pelle rimpiazza le cellule più lentamente, e le cellule siriparano meno e�cacemente. Questo può produrre una rigenerazione e unaguarigione delle ferite più lenta. Il programma genetico è diverso per ognipersona, quindi la perdita di elasticità e resistenza cambia da un'individuoall'altro. Con l'età (vedi anche �gura 1.1 e [5], [6]):

• Lo strato più esterno (l'epidermide) si assottiglia anche se il numero distrati di cellule rimane lo stesso.

• Il numero di cellule contenenti pigmenti (melanociti) decresce, ma i ri-manenti melanociti crescono di dimensioni. Pelli vecchie appaiono quin-di più sottili, pallide e traslucide. Ampie macchie pigmentate (macchiedell'età e lentiggini) possono comparire nelle aree della pelle esposte alsole.

• Cambiamenti nel tessuto connettivo riducono la resistenza e l'elasti-cità della pelle. Questo fenomeno causa l'aspetto della pelle comunea contadini, marinai e altre persone che hanno passato molto tempoall'aperto.

Page 18: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

10 CAPITOLO 1. LA PELLE: STRUTTURA E MORFOLOGIA

• I vasi sanguigni del derma diventano più fragili, causando ecchimosi,macchie sotto la pelle e cose simili.

• Le ghiandole sebacee producono meno oli con l'invecchiamento. Gliuomini manifestano un decremento minimo, normalmente dopo gli 80anni; le donne gradualmente producono meno oli a cominciare dallamenopausa. Questo può rendere di�cile mantenere la pelle umida, conil risultato di secchezza e prurito.

• Lo strato di grasso sottocutaneo, che produce isolamento e riempimen-to, si assottiglia, aumentando il rischio di ferite e diminuendo la capa-cità di mantenere la temperatura corporea. Avendo meno isolamentonaturale, in caso di freddo si può avere ipotermia.

• Le ghiandole sudoripare producono meno sudore. Questo rende piùdi�cile il ra�reddamento, incrementando i rischi di surriscaldamento ecolpi di calore.

• Crescite di foruncoli, verruche e altre imperfezioni sono più comuninegli anziani.

Con il tempo, i raggi ultravioletti danneggiano le elastine. La rottura diqueste �bre causa la perdita nella pelle della capacità di ritirarsi dopo esserestata distesa. Come risultato si formano le rughe. Anche la gravità ha il suoe�etto, causando il cedimento della pelle soprattutto sul volto, collo e partesuperiore delle braccia.Anche il fumo contribuisce alle rughe. Le persone che fumano tendono adavere più rughe dei non fumatori della stessa età, carnagione ed esposizioneal sole. La ragione della di�erenza non è chiara; forse il fumo contribuisce adanneggiare l'elastina. Le rughe aumentano con il numero di sigarette e dianni passati fumando.L'invecchiamento per esposizione solare interagisce con l'invecchiamento cro-nologico e sembra accelerarlo. Infatti l'esposizione solare è responsabile dellamaggior parte dei cambiamenti associati all'età: pelle chiazzata, rugosità,rughe sottili che scompaiono quando la pelle è distesa, macchie sulle mani e

Page 19: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

1.3. INVECCHIAMENTO DELLA PELLE 11

vasi dilatati. Esposizione cronica al sole è il maggior fattore di rischio pertumori della pelle, carcinoma e melanoma.Con l'invecchiamento della pelle e con l'accumularsi di danni solari, un certonumero di lesioni diventano comuni. queste includono:

• chiazze brunastre e dell'età (lentiggini): Aree marroni con contorniarrotondati, dislocate di solito sulla faccia, mani, schiena e piedi. Sonocorrelate con l'età e con l'esposizione solare, �nché sono invisibili nonsono pericolose.

• Cheratosi attinica: Escrescenze spesse, verrucose, ruvide, rossastre suzone della pelle esposte al sole. Possono essere i precursori di carcinomicellulari squamosi.

• Cheratosi seborroica: Macchie in rilievo nere o marroni, simili a verru-che che sembrano essere attaccati alla super�cie della pelle. Non sonocancerose o precancerose, e possono essere rimosse facilmente.

• Angiomi a ciliegia: Innocui, piccole e brillanti cupolette rosse createda vasi sanguigni dilatati. Si formano in più dell'85% delle persone dimezza età �no agli anziani, di solito sul corpo.

• Telengiectasia (capillari rotti): Vasi sanguigni del viso dilatati, normal-mente legati all'esposizione solare.

• Ecchimosi: Spesso un risultato di aver perso il riempimento grasso dellapelle e di essere più soggetto a lesioni. Alcuni farmaci possono causareemorragie sottocutanee.

• Rughe: Cambiamenti nel tessuto elastico dovute all'esposizione al sole,agli e�etti della gravità o fattori dovuti al movimento della pelle.

• Malattie della pelle più di�use negli anziani includono herpes e derma-titi seborroiche.

Alcuni tumori sono più comuni con l'invecchiamento della pelle. La causascatenante dei tumori della pelle nelle persone anziane sono spesso i danni

Page 20: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

12 CAPITOLO 1. LA PELLE: STRUTTURA E MORFOLOGIA

accumulati in troppi anni di eccessiva esposizione al sole. In alcuni casi cipuò essere una predisposizione generica, o un'eredità del tipo di pelle cheincrementa il rischio. Tutti i tumori della pelle possono essere curati consuccesso se scoperti e trattati presto. Tutti possono potenzialmente deturparela pelle e possono potenzialmente essere fatali se si di�ondono ad altre partidel corpo.Le tre forme più comuni di tumori sono:

• Carcinoma delle cellule di base: Si sviluppano in 300000-400000 personeogni anno negli Stati Uniti.

• Carcinoma delle cellule squamose: Si sviluppano in 80000-100000 per-sone ogni anno negli Stati Uniti.

• Melanoma: Sono diagnosticati 45000-50000 nuovi casi ogni anno negliStati Uniti. Si tratta del tumore più letale: 6 persone su 7 muoiono.

1.3.1 Trattamenti della pelle

Ci sono molti tipi di trattamenti per evitare l'invecchiamento della pelle.L'industria cosmetica e dermatologica ha eseguito molte ricerche su questamateria. I trattamenti vengono fatti per motivi di salute ed estetici. Tratta-menti locali sono di solito più e�caci se le manifestazioni dell'invecchiamentosono super�ciali e moderate:

• Tretinoina, una sostanza della famiglia della vitamina A, si è visto cheriduce le rughe sottili, pigmentazione a macchie e pelli ruvide associateall'esposizione cronica al sole. Le creme basate su questo principioattivo allo 0.02% e 0.05% sono le uniche approvate dalla legge. Altreforme di Tretinoina sono indicate per il trattamento dell'acne.

• Acidi alfa-idrossilici: Possono essere usati da soli o unitamente a treti-noina per trattare pelli mediamente danneggiate. Derivano dalla fruttae dai latticini.

Page 21: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

1.3. INVECCHIAMENTO DELLA PELLE 13

• Innumerevoli prodotti contenenti retinolo (della famiglia delle vitamineA), antiossidanti e agenti idratanti possono migliorare temporaneamen-te l'aspetto di linee sottili e rughe.

• antiossidanti topici, specialmente vitamina C e E, aiutano la riparazionedelle celle danneggiate dalle radiazioni ultraviolette e dal fumo.

Page 22: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

14 CAPITOLO 1. LA PELLE: STRUTTURA E MORFOLOGIA

1.4 Analisi di immagini: elementi di morfologia

La morfologia può essere de�nita come una teoria per l'analisi delle strut-ture spaziali, da essa deriva un insieme di strumenti e di tecniche moltocompleto, in grado di a�rontare problematiche di �ltraggio, segmentazio-ne, analisi delle texture, estrazione di features, ecc. Essendo la morfologiabasata sull'analisi spaziale dell'immagine, molte de�nizioni in morfologia siapplicano a immagini binarie, ma quasi tutte possono essere estese al caso diimmagini in toni di grigio. La teoria che tratta questi argomenti è ampia enon completamente consolidata, e per una trattazione teorica più esaurientesi può far rifermento a1 [7], [8], [9], [10] (in particolare vol. 2, capitolo 21)[11], [12], [13] [14], [15], [16], [17], [18], [19], [20], [21], [22], [23], [24]; perapplicazioni della morfologia in domini simili a quello preso in considerazio-ne si può far rifermento a [25], [26], [27], [28], [29]. Si ritene tuttavia utileriprendere e sottolineare alcuni aspetti teorici meno banali per comprenderemeglio le scelte, le tecniche e le metodologie usate.

1.4.1 Proprietà e alcune de�nizioni

dato due operatori Ψ e Φ, L'operatore identità I e delle immagini x, y, side�niscono le seguenti proprietà:

Relazione d'ordine Siano i, j le coordinate di un'immagine, si dice chex<y se ∀i, j, x(i, j) < y(i, j). Per due operatori, si dice che Ψ < Φ se∀x, y, x < y, Ψ(x) < Φ(y). Analoghe le de�nizioni per >, ≤ e ≥.

Idempotenza ΨΨ = Ψ

Estensività I ≤ Ψ

Anti-estensività I ≥ Ψ

1Le opere sono citate in ordine, da quelle più sintetiche e introduttive a quelle piùspeci�che e complete, �no alle pubblicazioni più aggiornate sugli ultimi sviluppi

Page 23: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

1.4. ANALISI DI IMMAGINI: ELEMENTI DI MORFOLOGIA 15

Monotonia ∀x, y, x ≤ y ⇒ Ψ(x) ≤ Ψ(y)

Principio di sovrapposizione Operando una sogliatura di un'immaginein toni di grigio con tutti i possibili valori di soglia, si ottiene un insieme diimmagini binarie legate da una relazione d'ordine. Applicando un operatoremorfologico monotono si ottiene ancora un insieme di immagini legata darelazione d'ordine. A questo punto è possibile sommare le immagini binariee ottenere un'immagine in toni di grigio �ltrata. Questo principio permettedi estendere operatori monotoni de�niti su immagini binarie a caso dei tonidi grigio. Per esempio, applicando questo principio all'erosione e dilatazionebinaria, si può dimostrare che si ritrovano le de�nizioni di questi operatoriper le immagini in toni di grigio, basate su massimo/minimo.

L'estensione degli operatori morfologici binari, che avviene sostituendooperazioni di minimo e massimo alle operazioni di AND e OR, può essereanche pensata come un passaggio dalla logica tradizionale a una logica fuz-zy, in cui il i toni di grigio rappresentano dei valori fuzzy su cui vengonoapplicate delle operazioni logiche: infatti l'operazione di minimo, massimo ecomplemento sono alla base della più di�usa delle logiche fuzzy.

Aperture Algebriche Le de�nizioni di apertura (chiusura) morfologichegodono delle proprietà di idempotenza, anti-estensività (estensività) e mono-tonia. Per generalizzazione, qualsiasi operatore che goda di queste proprietàsi dice che è un'apertura (chiusura) algebrica.Una interessante apertura algebrica è l'area-open: vengono rimossi gli ogget-ti di un'immagine binaria di area inferiore a un certo valore. Per il princi-pio di sovrapposizione si può generalizzare al caso in toni di grigio. Un'al-tra interessante famiglia di aperture può essere de�nita con l'operatore diricostruzione.

1.4.2 Apertura e Chiusura con ricostruzione

L'operazione di apertura permette di rimuovere oggetti in base allo struc-ture element usato, ma ha il limite di non preservare le altre strutture, che

Page 24: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

16 CAPITOLO 1. LA PELLE: STRUTTURA E MORFOLOGIA

vengono comunque modi�cate. Questo limite viene completamente supera-to da un'operatore simile, l'apertura con ricostruzione [13], che opera nelseguente modo: l'immagine viene erosa con lo structure element come perl'apertura normale, ma invece di far seguire una dilatazione, si opera una ri-costruzione usando l'immagine originale come maschera, e l'immagine erosacome marker. Le �gure 1.2, 1.3, 1.4 mettono a confronto le due operazioni2,evidenziando il miglioramento indiscutibile nei risultati.

Figura 1.2: Chiusura normale (Sinistra) e con ricostruzione (Destra) Usandouno structure element a forma di diamante di raggio 1

1.4.3 Operatore H-max

Se si pensa all'immagine come a una mappa in rilievo in cui l'intensitàdel colore de�nisce la quota3, a ogni minimo può essere associato un valore,detto dinamica, pari alla quota che bisogna risalire prima di arrivare da un

2Per generare gli esempi sono state usate le operazioni duali di chiusura perché piùadatte per le immagini prese in considerazione, ovviamente la sostanza dei fatti non cambia

3questo modo di interpretare le immagini è detto DEM (digital elevation map)

Page 25: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

1.4. ANALISI DI IMMAGINI: ELEMENTI DI MORFOLOGIA 17

Figura 1.3: Chiusura normale (Sinistra) e con ricostruzione (Destra) Usandouno structure element a forma di quadrato di lato 2

minimo alla cresta più bassa.Operando una ricostruzione tra immagine originale e l'immagine decremen-tata di un valore H, si ottiene l'operatore H-max. si tratta di un'aperturaalgebrica interessante perché ha la caratteristica di rimuovere tutti i minimiche hanno dinamica minore del valore sottratto all'immagine originale. Que-sto operatore e il suo complementare, detto H-min, ha notevole importanzanel processo di segmentazione watershed.

1.4.4 Segmentazione Watershed

La segmentazione Watershed [11], [12], [26], [27], [15], implementa l'ap-proccio morfologico al problema della segmentazione.Pensando l'immagine come a un DEM, si può pensare alla segmentazionewatershed come a una simulazione in cui vengono progressivamente allagati

Page 26: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

18 CAPITOLO 1. LA PELLE: STRUTTURA E MORFOLOGIA

Figura 1.4: Chiusura normale (Sinistra) e con ricostruzione (Destra) Usandouno structure element a forma di quadrato di lato 3

Page 27: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

1.4. ANALISI DI IMMAGINI: ELEMENTI DI MORFOLOGIA 19

i bacini4. Quando due bacini si riempiono e si dovrebbero unire, viene alzatolungo le creste uno spartiacque per tenerli separati. Quando il processo diallagamento è �nito, gli spartiacque identi�cano una segmentazione. Il pro-blema principale di questa tecnica è che per ogni minimo viene generato unoggetto, causando una eccessiva segmentazione. Una de�nizione alternativadi watershed fa partire il processo di allagamento solo da alcuni punti speci-�ci, (watershed controllata da marker); in questo modo è possibile deciderein anticipo quanti oggetti produrrà la segmentazione. E' possibile dimostra-re che le due modalità sono equivalenti, infatti è possibile passare dall'unaall'altra con un processo automatico. Per passare dalla segmentazione water-shed semplice a quella con marker basta scegliere come marker tutti i minimidell'immagine, mentre per il passaggio inverso basta imporre i minimi identi-�cati dai marker con un'operazione di ricostruzione morfologica tra i markere l'immagine.Per un uso corretto della segmentazione watershed è stato de�nito uno sche-ma generale di utilizzo che prevede i seguenti punti:

• Si de�nisce un modello che permetta di generare i marker partendodall'immagine originale

• Si de�nisce un modello per generare i contorni degli oggetti partendodall'immagine originale.

• Si impongono i minimi identi�cati dal marker sull'immagine per gene-rare i contorni.

• Si esegue la segmentazione watershed.

Il processo usa una watershed controllata da marker. I due approcci sa-rebbero perfettamente equivalenti, ma questa tecnica permette di separareconcettualmente le problematiche di segmentazione, permettendo di identi-�care meglio i problemi.

4Un altro de�nizione di watershed si basa sulla teoria dei gra�, In proposito si veda labibliogra�a già citata

Page 28: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

20 CAPITOLO 1. LA PELLE: STRUTTURA E MORFOLOGIA

Una tecnica utile nella scelta dei marker è l'identi�cazione e selezione dei pun-ti di massimo/minimo, visto l'importante signi�cato che hanno questi puntiper la segmentazione watershed. Per questo hanno un ruolo importante nellade�nizione dei marker le operazioni di apertura/chiusura algebrica: è possi-bile dimostrare, infatti, che hanno la proprietà di garantire che non verrannogenerati nuovi massimi/minimi, limitandosi eventualmente a rimuoverne ounirne alcuni. Il tipo di apertura de�nisce il criterio di rimozione e unione;quindi la de�nizione di un modello per selezionare i minimi corrisponde allade�nizione di un'apertura algebrica adeguata.

1.4.5 Granulometria

Una granulometria è de�nita da un �ltro Φ il cui risultato dipende da unparametro λ e con le seguenti proprietà:

• anti-estensivo

• monotono

• assorbimento: dati due valori del parametro λ, a e b, ΦaΦb = ΦbΦa =

Φmax(a,b).Tramite questo �ltro si ottiene una sequenza di immagini, ottenute �ltrandol'immagine originale facendo variare il parametro λ, e da ognuna di questeimmagini viene estratta una proprietà numerica che viene gra�cata in fun-zione del parametro λ.Le proprietà numeriche normalmente usate per immagini binarie sono:

• numero di oggetti• aree degli oggetti• diminuzione dell'area degli oggetti.

Per le immagini in toni di grigio, le misure di area vengono di solito sosti-tuite da misure di volume. Nulla vieta di andare a misurare altre features

Page 29: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

1.4. ANALISI DI IMMAGINI: ELEMENTI DI MORFOLOGIA 21

dall'insieme di immagini ottenute.

1.4.6 Limiti dell'approccio morfologico

L'uso di operazioni di massimo e minimo impongono un limite all'e�ca-cia degli operatori morfologici; nel caso di dati a�etti da rumore, infatti, irisultati possono essere alterati sensibilmente: basta che un solo valore siasensibilmente alterato per modi�care sensibilmente i risultati, e di fatto ilrumore in un solo punto altera negativamente i risultati dei punti vicini.Questo inconveniente ha portato alla de�nizione degli operatori morfologiciSoft [23] [24], più tolleranti rispetto al rumore. Il rovescio della medaglia,però, è che vengono perse alcune importanti e cruciali proprietà degli ope-ratori morfologici, quali le proprietà delle aperture/chiusure algebriche neiconfronti dei minimi. La rigidità dell'approccio morfologico si ripercuote an-che nella segmentazione watershed, che di fatto non può essere usata senzagestire il problema dell'over-segmentazione.

Page 30: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

22 CAPITOLO 1. LA PELLE: STRUTTURA E MORFOLOGIA

Page 31: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

Capitolo 2

Esame della letteratura

Verrà fatta una rassegna della letteratura usata per questa tesi. L'argo-mento è molto innovativo e non esiste letteratura scritta su questi speci�ciargomenti. Ci sono diversi studi compiuti per la caratterizzazione della to-pogra�a della pelle ma non molti correlati ai nostri speci�ci obiettivi.Ci sono diverse compagnie che commercializzano strumenti per estrarre im-magini della pelle, come Identiprint, che vende materiale per generare re-pliche della pelle (�gura 2.1), Scantron [30], che produce pro�lometri usatiper l'analisi della super�cie della pelle, e ST Microelectionics [31] che vendesensori capacitivi per l'analisi delle impronte digitali e della pelle. In questatesi vengono usate immagini generate con sensore capacitivo, ma è bene ana-lizzare anche i risultati generati con altri strumenti.

2.1 Analisi delle immagini della pelle acquisite

con altri strumenti

La caratterizzazione della topogra�a della pelle è stata realizzata usandopro�lometri e repliche della pelle per ottenere alcune misure correlate sia alpro�lo tridimensionale che delle rughe [32]. Edward, Heggie e Marks (2003)con questo metodo hanno studiato le di�erenze nella ruvidità della pelle trapelli esposte al sole e non [33]. Lagardie Rouvrais, Black Diridollou e Gall

23

Page 32: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

24 CAPITOLO 2. ESAME DELLA LETTERATURA

(2001) hanno usato un metodo basato sulla pro�lometria delle proiezioni dellefrange di interferenza per descrivere le caratteristiche della pelle [34]. Gnia-decka e Jemec (1998) hanno usato ultrasonogra�a a 20Mhz [35] per avereuna valutazione quantitativa dell'invecchiamento cronologico e dovuto all'e-sposizione luminosa studiando l'ecogenicità e lo spessore della pelle [36].Un lavoro più vecchio (1987) di Nominè, Vincent e altri [25], studia la pel-le come una rete di micro-depressioni da cui si ricava un'immagine binaria,mettendo in evidenza che la pelle è caratterizzata da rughe principali e secon-darie, che si diversi�cano con l'aumentare degli anni; inoltre è interessantel'approccio morfologico nel �ltraggio di questo tipo di immagini.Sono stati identi�cati alcuni articoli come gli studi L'Oreal e Mountain soft-

Figura 2.1: Sinistra: Campione acquisito con il metodo Identiprint. Destra:Immagine di una ruga ottenuta con il software Mountain.

ware research, più correlati con le nostre applicazioni. Attualmente si puòconsiderare questi due studi come lo stato dell'arte sulla caratterizzazionedelle rughe con un dispositivo capacitivo. Vengono inoltre presi in conside-razione gli studi e�ettuati nell'estrazione di features biometriche (improntedigitali).

2.1.1 Mountain Technology

Mountain Pro�le [37] è un potente strumento per analizzare i pro�li mi-surati con qualsiasi tipo di strumento. Include tecnologia all'avanguardia

Page 33: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

2.1. ANALISI DELLE IMMAGINI DELLA PELLE ACQUISITE CONALTRI STRUMENTI25

nell'analisi e visualizzazione, compresi metodi e parametri standardizzati. Lapiattaforma funziona su Windows ed è rivolto ai produttori di strumentazioneper la metrologia delle super�ci. Permette l'analisi di:

• tessitura della super�cie 2D (pro�lometria) e 3D (topogra�a)

• errori nelle forme 2D (contorni) e 3D (appiattimento, volume, curvatu-ra...)

• immagini di scansioni con sonde microscopiche

• numerose applicazioni per disciplina: cosmetica, plastica, documenti,lamine di acciaio...

Lo studio della pelle viene eseguito come un'analisi delle depressioni dellemontagne (�gura 2.1). In questo modo il software può misurare: la profon-dità media delle rughe, il volume e l'area. La tecnologia è stata applicataall'analisi della pelle per diversi studi: rughe, invecchiamento, assottiglia-mento cellulare, punti neri e acne, borse degli occhi, labbra, lucentezza delleunghie e altro.Gli studi dell'invecchiamento e�ettuati hanno rilevato che le rughe, invec-chiando, diventano più grandi e orientate (�gura 2.2). Quando la rete dellerughe diventa meno densa e la pelle meno so�ce, le rughe sembrano più pro-fonde. Anche altri fattori hanno in�uenza: per esempio negli uomini, l'usogiornaliero di rasoi introduce una parziale distruzione della rete delle micro-rughe.L'analisi dei rilievi micro-cutanei permette di determinare diversi parametridella tessitura che rappresentano la base oggettiva di molti prodotti anti in-vecchiamento e idratanti. Ci sono molte altre applicazioni in cui si può usarequesto software:

• Creme fondotinta (riempimento di buchi, aspetto più levigato dellasuper�cie cutanea)

• Prodotti per la cura della pelle: l'aspetto irregolare e rugoso dellepelli deteriorate può essere migliorato usando prodotti, applicati sulla

Page 34: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

26 CAPITOLO 2. ESAME DELLA LETTERATURA

Figura 2.2: Risultati del software Mountain per campioni con 25 e 65 anni.

pelle, che aiutano a ripristinarne l'equilibrio e la sua ristrutturazione.Applicazioni: dopobarba, prodotti anti-acne, maschere idratanti.

• Tolleranza: i rilievi cutanei di pelli sane vengono danneggiati dall'ap-plicazione di prodotti cosmetici irritanti.

• E�cacia di prodotti esfolianti (riduzione di picchi, arrotondamentodella super�cie, riduzione della ruvidità)

• E�cacia di prodotti con e�etto opacizzante.

2.2 Analisi con sensore Capacitivo

Il principale uso dei sensori capacitivi è l'acquisizione di impronte digitali.Si tratta di un settore ben sviluppato e ricco di studi, e data la forte corre-lazione di questo tipo di immagini con quelle che andremo ad analizzare, èstata fatta un'analisi della letteratura disponibile.

2.2.1 Impronte digitali

Le impronte digitali sono le features biometriche più usate oggigiorno perl'identi�cazione personale (�gura 2.3). Una descrizione completa dello sta-to dell'arte �no al 1999 è stata fatta da Jain e Pankanti [38]. La maggiorparte dei sistemi automatici per il confronto delle impronte sono basati sul-la corrispondenza di punti caratteristici: discontinuità locali nel pattern che

Page 35: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

2.2. ANALISI CON SENSORE CAPACITIVO 27

rappresentano terminazioni e biforcazioni. La terminazione di una cresta ède�nita come il punto dove una cresta �nisce bruscamente. La biforcazionedi una cresta è de�nita come il punto dove diverge in più creste.Un sistema automatico per estrarre i punti caratteristici in modo a�dabile

Figura 2.3: Immagine di un'impronta digitale.

è un passo critico nella classi�cazione delle impronte digitali. E' necessarioun passo precedente che migliora la struttura delle creste e dei solchi per per-mettere una rilevazione migliore, ottenibile con diverse tecniche, che possonoessere divise in due classi.

Metodi basati su binarizzazione In molti casi il processo di binarizza-zione è preceduto da un'operazione di smoothing, basato sulla convoluzionecon una maschera gaussiana, per rendere più regolare l'immagine di partenza.Shlomo e Mayer [39] hanno proposto un metodo ottenuto usando un'equaliz-zazione locale dell'istogramma, �ltraggio di Wiener e binarizzazione. Questoprocesso combina tecniche di �ltraggio e riduzione del rumore sia per tecnichedi pre che di post-elaborazione.

Page 36: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

28 CAPITOLO 2. ESAME DELLA LETTERATURA

Approcci basati su miglioramento diretto in toni di grigio Si è fattomolto relativamente alla riduzione del rumore e all'incremento del contrastotra creste e valli nelle immagini delle impronte digitali in toni di grigio. Alcu-ne tecniche sono implementate nel dominio del tempo, altre nel domino dellafrequenza. O'Gorman e Nickerson (1989) e Mehtre (1993) hanno sviluppa-to una tecnica basata su un �ltro direzionale, Maio e Maltoni (1998) hannousato una rete di neuroni nel �ltraggio delle minuzie; Almasa e Lindeberg(2000), Greenberg e altri (2000) e Jiang (2001) hanno fatto uso di �ltri ani-sotropi e �ltri passa basso orientati per ridurre il rumore. Invece Sherlock ealtri (1994), Willis e Myers (2000), Kemei e Mizoghchi (1995) hanno �ltratole immagini nel dominio della frequenza. Ci sono vantaggi e svantaggi inentrambi gli approcci. Il �ltro di Gabor è uno strumento utile da tutti e duei punti di vista [40], ed è stato usato da Hong (1998) [41] per migliorare leimmagini, ed è stato osservato che si possono raggiungere buoni risultati. Inseguito Yang (2003) [42] e Tai (2003) [43] hanno ulteriormente migliorato irisultati ottenuti con il �ltro di Gabor.

Esistono anche altri approcci che non basano il confronto su punti ca-ratteristici, ma sul confronto di un' `impronta' estratta dall'immagine conopportuni �ltraggi. Anche in questo caso si è mostrato e�cace l'uso del �ltrodi Gabor. In [44] l'immagine viene �ltrata con un �ltro di Gabor relativoa 8 orientazioni principali, e dal risultato si generano delle mappe di 15x15pixel. Le 8 mappe così ottenute sono prese come un vettore di features,confrontabili con una semplice distanza euclidea. Un principio analogo vie-ne usato in [45], dove il risultato viene confrontato con i metodi basati supunti caratteristici, concludendo che questa tecnica è meno precisa, ma piùveloce, proponendo anche un approccio combinato per compensare i limiti dientrambe le tecniche.

2.2.2 Analisi della pelle

Gli studi condotti da Levecque e Querleux [46] hanno mostrato le otti-me caratteristiche di SkinChip per investigare la super�cie della pelle. La

Page 37: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

2.2. ANALISI CON SENSORE CAPACITIVO 29

STMicroelectronics ha adattato un strumento usato per acquisire le impron-te digitali e misurare le proprietà della super�cie cutanea. Analogamente èstato modi�cato il software per ottenere in modo sistematico immagini del-la super�cie cutanea in diverse parti del corpo. Le immagini permettonoprecise osservazioni sulla topogra�a della pelle che possono essere facilmentequanti�cate in termini di densità delle linee e orientazione.Hanno sviluppato del software per la rivelazione automatica delle orientazioniprincipali delle rughe principali, e la densità delle linee è espressa attraversola ricorrenza di intersezioni con le rughe principali. La rivelazione delle orien-tazioni è ottenuta in tre passi: Prima l'immagine viene pre-elaborata, poi unmetodo di clustering riduce i toni di grigio da 256 a 5; successivamente vienecalcolata la matrice di correlazione per diversi angoli. I coe�cienti principalisono gra�cati in funzione dell'angolo, e i picchi sono rappresentativi delledirezioni principali.Il parametro di densità delle rughe è calcolato dall'immagine pre-elaborata.Dopo aver fatto una sogliatura al valore 170, un processo di thinning vieneeseguito prima del rilevamento degli `angoli' negli incroci delle rughe.L'idratazione della pelle è stimata con un'analisi statistica dei livelli di grigionella regione di interesse. A causa della risoluzione del sensore (50µm) que-ste immagini capacitive rappresentano una mappa molto dettagliatata dellatopogra�a della super�cie cutanea, così come del contenuto d'acqua nellostrato corneo.La conclusione dei loro studi è stata che stimare l'idratazione cutanea conSkinChip è almeno equivalente a un metodo basato su Corneometro. In piùle immagini ottenute con SkinChip permettono di gra�care una mappa del-l'idratazione che ra�gura l'omogeneità dell'idratazione nell'area della pelleinvestigata. Questo nuovo metodo, basato su nuove tecnologie, è semplice ericco di risultati.

Page 38: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

30 CAPITOLO 2. ESAME DELLA LETTERATURA

2.3 Studi ARCES

Gli argomenti trattati in questa tesi fanno rifermento a parte del lavorosvolto presso il centro di ricerca ARCES, che ha iniziato le sperimentazioni suimmagini della pella acquisite tramite sensore capacitivo nella seconda metàdel 2003. Sono stati presi in considerazione i lavori precedenti relativi allacaratterizzazione dell'età della pelle basati su immagini acquisite con altretecniche, e i lavori precedenti relativi alle immagini acquisite tramite sensoricapacitivi (prevalentemente nel campo delle impronte digitali). La primaincoraggiante pubblicazione prodotta nel centro di ricerca [47] individua unafeature fortemente correlata con l'età, ricavata considerando le dimensionidelle celle della pelle. Parallelamente sono stati svolti lavori per caratterizzarele rughe [48].In particolare è utile sottolineare che i risultati confermano un'ipotesi su cuiè basato tutto il lavoro svolto in questa tesi: la pelle è caratterizzata da unatexture composta da tante rughe che si intersecano delineando delle celle.Con l'invecchiamento della pelle alcune rughe diventano più marcate, altresi a�evoliscono, delineando così una struttura composta da rughe principalie micro-rughe che frammentano le celle. Visivamente si delineano delle celleprincipali, sempre più grandi al crescere dell'età (Vedi �gura 2.4). Almenoper ora non sono noti studi che hanno permesso di caratterizzare l'età dellapelle con risultati accettabili per le applicazioni pratiche.

2.3.1 Il lavoro precedente a questa tesi

Il principale risultato ottenuto nel lavoro precedente [47] consiste nellade�nizione di una feature correlata con l'età. Per il calcolo della feature ènecessario misurare l'area delle celle contenute nell'immagine, che va quindisegmentata.Per la segmentazione viene usata la tecnica watershed, come pre-�ltraggiouna normalizzazione e un'operazione H-min. Successivamente è stato ag-giunto un pre-�ltraggio Gaussiano, che ha migliorato i risultati.Il problema di questo approccio è che la soglia usata come parametro per

Page 39: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

2.3. STUDI ARCES 31

Figura 2.4: Evoluzione della pelle con l'età. Le immagini sono rispettiva-mente quelle di un Bambino di 3 anni, un adulto di 46 e un vecchio di94.

la trasformazione H-min va determinato manualmente per ogni singola im-magine, veri�cando ad occhio la correttezza della segmentazione. Di seguitovengono descritte le varie fasi del processo in dettaglio.

La pre-elaborazioneSi tratta di una normalizzazione adattativa: vengono calcolate media e

deviazione standard localmente (l'intorno preso in considerazione è un qua-drato di lato 15 pixel) e in base a questi valori viene calcolata la luminositàdi ogni singolo punto secondo la seguente formula:

N(x, y) = σ0I(x, y)− µw(x, y)

σw(x, y)+ µ0

N rappresenta l'immagine normalizzata, I l'immagine originale, µw e σw sonorispettivamente la media e la deviazione standard locale, µ0 e σ0 sono dueparametri dell'algoritmo. Gli e�etti di bordo sono gestiti allargando l'imma-gine con una copia speculare dell'immagine stessa.Questa operazione non serve solo a migliorare l'illuminazione e il contrastodelle immagini: con i valori dei parametri usati, causa anche una saturazionenei toni di grigio dell'immagine che ha merito di eliminare parte del rumore

Page 40: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

32 CAPITOLO 2. ESAME DELLA LETTERATURA

tipico di questo tipo di immagini e descritto in dettaglio più avanti (3.4.1).I parametri σ0 e µ0 di fatto determinano le modalità con cui la saturazionetaglia l'istogramma dei toni di grigio.Il risultato è stato migliorato �ltrando l'immagine con un �ltro gaussiano conσ = 0.7.

La segmentazioneLa segmentazione avviene tramite Watershed, che è la tecnica standard

nell'elaborazione morfologica di immagini. La segmentazione è stata esegui-ta usando il parametro di connettività 8, valore prede�nito in Matlab. Perovviare al problema dell'over-segmentazione si è usato un �ltraggio basatosu H-min. La scelta del parametro H si è rivelata critica, e per ottenere unabuona segmentazione si è scelto manualmente un valore di H, diverso per ogniimmagine, controllando a occhio la correttezza della segmentazione ottenuta.Questo è il grande limite del metodo usato: il processo è solo parzialmenteautomatico, e necessita di un operatore umano che sia in grado di giudicarela correttezza della segmentazione.L'immagine ottenuta viene ritagliata con una �nestra di 200x200 pixel.

L'estrazione di featuresUna volta segmentata l'immagine, viene misurata l'area di ogni cella,

ottenendo una distribuzione cumulativa del numero di celle in funzione del-l'area. Come feature viene usato il numero di celle calcolato sul punto Pdella distribuzione cumulativa a pendenza unitaria. Di fatto questo approc-cio implementa il calcolo e�ciente di una granulometria basata su area-open,applicata su un'immagine binaria.

2.3.2 Altre considerazioni

Sono in corso ulteriori studi per caratterizzare le orientazioni dominanti, lerughe, e per ottenere segmentazioni migliori o altre features, eventualmente

Page 41: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

2.3. STUDI ARCES 33

basare su altri approcci. Uno studio al momento non ancora pubblicato[49] individua una caratterizzazione delle rughe basata sul contrasto locale,mentre in [48] viene fatto uno studio approfondito delle rughe basato sul�ltro di Gabor, e vengono proposte delle features che caratterizzano le rughee le orientazioni dominanti, senza però individuare evidenti correlazioni conl'età.

Page 42: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

34 CAPITOLO 2. ESAME DELLA LETTERATURA

Page 43: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

Capitolo 3

Acquisizione dei dati

3.1 Lo strumento di acquisizione: TouchChip

Il TouchChip, prodotto dalla ST Microelectronics è basato su un micro-chip al silicio basato su una tecnologia a rilevazione attiva brevettata, cheproduce risultati più accurati e immagini di qualità superiore rispetto a altriprodotti che usano solo una tecnologia passiva.Si tratta di un dispositivo pensato per l'acquisizione di impronte digitali,ma ne è stata modi�cata la sensibilità di acquisizione e l'aspetto �sico perpermettere una migliore acquisizione di immagini della pelle in zone diversedalle dita.Il sensore campiona un'area di 12.8x18mm e produce immagini di 256x360pixel; la risoluzione è quindi di 50µm/pixel. Essendo un sensore capacitivole immagini prodotte sono in scala di grigio, con 256 possibili sfumature.Ogni cella del sensore contiene un circuito attivo con retroazione la cui ca-pacità e�ettiva di retroazione è modulata dal contatto con la pelle vicina alsensore; quando la pelle è molto vicina al sensore la capacità è massimizzata(celle) e diminuisce man mano che la pelle è meno vicina alla super�cie delsensore (rughe).L'elettronica di condizionamento è integrata sulla stessa scheda, mentre unaseconda scheda integra il controller USB che permette il collegamento direttoalla maggior parte dei computer.

35

Page 44: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

36 CAPITOLO 3. ACQUISIZIONE DEI DATI

Figura 3.1: Sinistra: principio di funzionamento del sensore. Destra: aspettoesteriore del dispositivo.

L'immagine è una mappa della capacità della pelle. La super�cie su cui siappoggia la pelle è fatta di uno strato di SiO2 che protegge il micro-sensoreda contaminazioni, gra� e scariche elettrostatiche.Il software usato è un programma progettato appositamente per questo dispo-sitivo, una applicazione gra�ca che rende tutto molto semplice: una �nestrapermette di vedere l'immagine che verrà acquisita in tempo reale, un primopulsante fa partire l'acquisizione, un'altro la ferma. Il vantaggio del program-ma è che permette di visualizzare il risultato prima di salvarlo.Per una descrizione più dettagliata del dispositivo si veda [46].

3.2 Il metodo di acquisizione

Le immagini sono acquisite in tempo reale poggiando il dispositivo sullaregione di interesse, ma non può essere controllata la pressione esercitatadalla pelle sul dispositivo. I livelli di grigio delle celle sono più scuri di quellidelle rughe, ma non saranno omogenei a causa della curvatura della pellee altri fattori �siologici, come l'idratazione e lo strato di grasso della pelle.Per questi motivi si è scelto di concentrarsi solo sugli aspetti morfologici,trascurando quelli fotometrici.I campioni sono stati acquisiti nella parte interna del braccio perché in questopunto la struttura della pelle è ben de�nita ed è abbastanza protetta dalle

Page 45: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

3.2. IL METODO DI ACQUISIZIONE 37

radiazioni solari e tutti gli altri fattori che potrebbero modi�care il processodi invecchiamento della pelle [50]; inoltre è una zona dove di solito sonopresenti pochi peli, che degradano la qualità dell'immagine.

3.2.1 Il protocollo di acquisizione

Si è de�nito un protocollo per ridurre al massimo i problemi e gli erroriche possono veri�carsi durante l'acquisizione. questo protocollo è pensato peressere usato in un ospedale dove due persone si occupano dell'acquisizionedei campioni.

1. La persona 1 deve lavorare al computer con il software di acquisizione.La seconda si deve occupare di prendere il campione dal paziente.

2. Nella stanza dove avviene l'acquisizione devono esserci almeno due pa-zienti. La temperatura e l'umidità sono le principali caratteristiche acui bisogna stare attenti. Per questo, mentre si acquisisce il campionedal paziente 1, il paziente 2 attenderà seduto nella stessa stanza ri-lassandosi e ambientandosi. In questo periodo di tempo il paziente 2si adeguerà alla temperatura della stanza, si calmerà e ridurrà la suasudorazione.

3. La persona 2 spiegherà ai pazienti come verrà fatta l'acquisizione, ènecessario accedere alle braccia, per cui potrebbe essere necessariotogliersi i vestiti.

4. La persona 2 farà sedere il paziente e comincerà l'acquisizione.

5. Il paziente 1 posizionerà il braccio in una posizione comoda per permet-tere alla persona 2 di prendere il campione. La persona 2 pulirà delica-tamente la super�cie della pelle per eliminare il sudore. L'acquisizioneva fatta nella parte con meno peli.

6. La persona 2 poggia il TouchChip sul braccio del paziente. La pressionedeve essere quanto più possibile simile per ogni paziente. A questopunto può iniziare un dialogo tra le persone 1 e 2.

Page 46: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

38 CAPITOLO 3. ACQUISIZIONE DEI DATI

7. La persona 1 preme il pulsante di inizio acquisizione e osserva l'imma-gine sullo schermo.

8. Se l'immagine è corretta (non ci sono peli o sudore, e il dispositi-vo è tenuto fermo) la persona 1 sceglierà il momento migliore perl'acquisizione.

9. Una volta acquisita l'immagine, va salvata usando la seguente sintassiper il nome:<Nome>:==<Numero del campione>_[M|F]_<Età>_<Parte del cor-po>_<Tipo di persona>con il seguente signi�cato:• <Numero del campione> Indica un numero identi�cativo incre-mentato progressivamente.

• M o F indicano il sesso• <Età> indica l'età, rappresentata con 3 cifre• <Parte del corpo> identi�ca la zona da dove l'immagine è stataacquisita. BRAC indica il braccio.

• <Tipo di persona> indica la razza: CAU indica caucasian, ovverorazza bianca.

Esempio: 0041_F_025_BRAC_CAU10. Alla �ne viene chiamato un altro paziente.

3.3 I campioni ottenuti

Durante il periodo di svolgimento del lavoro le immagini disponibili sonoandate via via aumentando �no al valore attuale, superiore a 400. L'acqui-sizione delle immagini è tuttavia ancora in corso, e un numero maggiore diimmagini permetterà non solo di scegliere meglio i campioni su cui eseguirei test, ma permetterà anche di ottenere statistiche più signi�cative. Nono-stante i campioni siano già molti, si dispone di pochi campioni acquisiti su

Page 47: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

3.4. ANALISI DEL RUMORE 39

pazienti di età inferiore a 20 e maggiore di 90 e un numero maggiore di im-magini sarebbe auspicabile per avere statistiche signi�cative anche per ognisingola fascia di età.Tutti i campioni considerati �nora sono stati presi dal braccio di persone dirazza bianca.Per il momento si è scelto come insieme di veri�ca un gruppo di 90 imma-gini, su�cientemente ampio per confermare la qualità dei risultati, ma nontroppo grande, per eseguire i test velocemente: alcuni algoritmi, infatti, pos-sono richiedere tempi di calcolo non trascurabili se applicati a un gruppo diimmagini troppo grande. Questa prima scrematura ha anche permesso discartare alcune immagini di qualità scadente.

3.4 Analisi del rumore

3.4.1 Rumore dovuto alle caratteristiche del sensore

Rumore `sale e pepe' A causa della natura capacitiva del sensore, goccedi sudore sulla pelle causano delle macchie nere e sature in alcune immagini.Nell'istogramma del colore provocano un picco estremamente ben localizzatoa un suo estremo e separato dal resto dello spettro. L'area delle macchie vada un pixel isolato �no a un massimo di 6-7 pixel di diametro (vedi Figura3.2).Poiché causano dei minimi molto profondi potrebbero indurre una segmen-tazione errata, specialmente se sovrapposti alle rughe. tuttavia l'analisi delleimmagini mostra che queste macchie tendono a localizzarsi per lo più sulleisole: evidentemente il sudore, per adesione, tende a muoversi verso i puntidi contatto tra pelle e sensore: le celle, appunto. Questo tipo di rumore puòaumentare il numero dei minimi di ogni isola causando over-segmentazione,ma non necessariamente: a volte, `avvolgendo' l'isola, la delinea meglio. Glie�etti di questo disturbo sono attenuati sensibilmente dalla normalizzazione,quanto basta per non incidere in modo signi�cativo sui risultati �nali.Un analogo rumore di saturazione, molto più raro, è quello opposto: piccolemacchie bianche di area non superiore a pochi pixel, localizzati in posizio-

Page 48: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

40 CAPITOLO 3. ACQUISIZIONE DEI DATI

ni per lo più casuali. Probabilmente si tratta di polvere o altre sostanzeestranee con caratteristiche elettriche diverse dalla pelle. La normalizzazionele elimina quasi completamente e comunque, causando massimi, non hannoparticolare in�uenza sulla trasformazione watershed e l'identi�cazione dellecelle.

0 50 100 150 200 250

0

200

400

600

800

1000

1200

1400

0 50 100 150 200 250

0

200

400

600

800

1000

1200

Figura 3.2: Immagini con molto rumore di saturazione. Le frecce evidenzianoi picchi causati dal rumore `sale e pepe'

Page 49: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

3.4. ANALISI DEL RUMORE 41

Pressione Un altro disturbo di carattere globale è la variabilità della pres-sione, che tende a dilatare le isole (e in modo duale, ad assottigliare le rughe)dove è più alta, rendendo inattendibile la relazione tra lo spessore della rugareale e nell'immagine. La trasformazione watershed di fatto minimizza lospessore delle rughe, ma se da un lato questo signi�ca perdere l'informazionesulle rughe, dall'altro permette di ottenere un'informazione meno sensibilealla pressione.

Rumore casuale Diventa rilevante nella watershed perché provoca piccoliminimi locali. analizzando un'immagine catturata a vuoto (con 256 toni digrigio) si misura un valor medio di circa 195 e una deviazione standard dicirca 8. Calcolando valor medio e deviazione standard su �nestre 10x10 sipossono fare considerazioni locali: la deviazione standard del valor mediolocale è circa 5,7. Si deduce che l'illuminazione (anche se non si tratta diun'immagine illuminata) non è perfettamente omogenea. e questo risultatone misura la �uttuazione. Il valor medio della deviazione standard localeè circa 4,5, e e questo valore stima le �uttuazioni del rumore a prescinderedalle �uttuazioni di illuminazione. con la trasformazione H-min, che riempiei minimi locali, e vari valori del parametro H, si osserva che la maggior partedei minimi scompare per un valore di circa 10 e i restanti scompaiono per unvalore di circa 20; quindi una sommaria stima della profondità dei minimi èmediamente 10, al massimo 20. Questo risultato concorda con il valore dideviazione standard locale pari a 4,5, secondo cui il 95% circa dei valori sitrova in un range ampio circa 3σ ≈ 15.

3.4.2 Rumore dovuto alle caratteristiche dell'immagine

Oltre al normale rumore presente in ogni immagine, ci sono una serie didisturbi intrinseci nel tipo di immagini presi in considerazione. Se si pensaall'immagine come a una DEM, un disturbo è costituito dal fatto che ognicella, che di fatto dovrebbe essere una piccola valle, in realtà è composta dapiù avvallamenti minori, e anziché essere caratterizzata da un solo minimolocale, è spesso caratterizzata da più minimi. l'eccessiva presenza di minimi

Page 50: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

42 CAPITOLO 3. ACQUISIZIONE DEI DATI

provoca ulteriore over-segmentazione nella segmentazione watershed, quindiè opportuno caratterizzare i minimi.

minimi profondi Una caratterizzazione dei minimi potrebbe essere la pro-fondità, de�nita come la dinamica del minimo. Se i minimi buoni sono quellipiù profondi, una trasformazione H-min dovrebbe portare a una buona seg-mentazione; e infatti si ha un netto miglioramento nella segmentazione, an-che se non ancora perfetto. Numerose prove sperimentali eseguite lascianoa intendere che la profondità dei minimi è signi�cativa, e caratterizza quasicompletamente i minimi buoni.

Altre considerazioni sui minimi L'osservazione delle immagini e deirisultati (�gura 3.3) rivela che le isole possono avere più minimi (e quindi over-segmentazione) con caratteristiche simili: ad esempio, considerando una cellacon due minimi simili tra loro, un criterio che tenta di selezionare i minimilascerà entrambi i minimi o li rimuoverà entrambi, in ogni caso il risultatonon sarà corretto.Possibili soluzioni: un �ltraggio deve unire tali minimi, oppure unione dellecelle dopo la segmentazione.

0 2 4 6 8 10 120

50

100

150

200

250

300

Distance along profile

Figura 3.3: Cella caratterizzata da vari minimi simili e pro�lo dei minimi

Creste Si vorrebbe che le creste corrispondessero alle rughe, ma ci sonoaltre creste `cattive', che corrispondono alle micro-rughe di una cella. Si può

Page 51: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

3.4. ANALISI DEL RUMORE 43

pensare di tentare di eliminare le creste oppure limitarsi a unire celle separateda creste `cattive'. Per separare creste buone e cattive si possono prendere inconsiderazione alcuni metodi trovati in letteratura basati sulle dinamiche deicontorni. In letteratura ho individuato �nora alcune misure della dinamicadei contorni [27]:

1. dati due minimi, si misura la quota minima che bisogna scalare perpassare da un minimo all'altro.

2. e�ettuata la segmentazione con watershed, si misura il rapporto tra ilvalor medio dei valori dei bacini e delle creste.

Il pro�lo delle creste cattive è fortemente irregolare (�gura 3.4, e per questosi ritiene che la dinamica 1 non sia completamente attendibile: è facile tro-vare un'irregolarità che permette di passare da un minimo all'altro anche sela cresta è mediamente alta. La dinamica 2, essendo basata su delle medie,sembrerebbe meno sensibile alla forte irregolarità dell'immagine.L'over-segmentazione può essere limitata alzando i minimi cattivi o ab-

0 1 2 3 4 5 6 7 860

80

100

120

140

160

180

200

Distance along profile

Figura 3.4: Cella over-segmentata e pro�lo della cresta super�ua

bassando le creste cattive; non è detto che sia su�ciente prendere in con-siderazione soltanto i minimi. Sono comunque necessari ulteriori studi peridenti�care una segmentazione migliore.

Page 52: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

44 CAPITOLO 3. ACQUISIZIONE DEI DATI

3.5 Commenti

L'uso di questo dispositivo comporta sia vantaggi che svantaggi.Vantaggi:

• Permette di ottenere un'immagine della micro-struttura della pelle conuna buona risoluzione e de�nizione.

• Mette bene in risalto la texture che caratterizza la pelle, fatta di rughe(micro-solchi della pelle) e celle (le aree delineate dalle rughe).

• Il sensore non è in�uenzato dall'illuminazione dell'ambiente di acquisi-zione, essendo capacitivo.

• Il dispositivo TouchChip è economico, di facile utilizzo, compatto eutilizzabile su qualsiasi personal computer dotato di porta USB

• L'acquisizione avviene velocementeIl dispositivo presenta anche diversi inconvenienti:

• La tonalità di grigio è in�uenzata da fattori non controllabili, qualila pressione esercitata sul sensore durante l'acquisizione, lo stato diidratazione della pelle, il sottile strato di grasso presente sulla super�ciedella pelle.

• La pressione in�uenza anche la larghezza delle rughe: aumentando lapressione le rughe si schiacciano e tendono ad assottigliarsi o scompa-rire.

• Un movimento durante l'acquisizione può produrre immagini scadenti:un errore umano durante la procedura di acquisizione può portare aimmagini ingannevoli.

• La presenza di peli genera grosse aree bianche curvilinee, che ingannanosulla reale struttura delle rughe.

Il protocollo di acquisizione è stato pensato per ridurre al minimo tutti questiinconvenienti.

Page 53: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

3.5. COMMENTI 45

Figura 3.5: Confronto tra un'immagine della pelle acquisita con unamacchina fotogra�ca e una acquisita tramite sensore capacitivo.

Page 54: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

46 CAPITOLO 3. ACQUISIZIONE DEI DATI

Page 55: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

Capitolo 4

L'algoritmo di analisi delle

immagini

Il processo complessivo di elaborazione è analogo a quello usato nei lavo-ri precedenti e già descritto in 2.3.1, la descrizione viene ora approfondita,enfatizzando le modi�che apportate.

4.1 Normalizzazione

L'algoritmo è rimasto invariato rispetto a quanto visto in 2.3.1 ma si è ri-tenuto utile aggiungere una diversa parametrizzazione (lasciando comunquela possibilità di usare i parametri precedenti e ampiamente collaudati) in-tuitivamente più vicina agli e�etti prodotti dalla saturazione: la percentualedi saturazione ai due estremi dell'istogramma. Inoltre si è aggiunto comeparametro la correzione gamma. Questa parametrizzazione potrebbe risul-tare utile in futuro, quando bisognerà regolare in modo ottimale i parametridell'algoritmo.Si anticipa che nella generazione di tutti i risultati non è stata e�ettuatauna regolazione �ne e precisa dei parametri in gioco; questa problematica èstata rimandata a quando il processo complessivo raggiungerà uno stato piùmaturo.L'implementazione Matlab è riportata in appendice D.1.

47

Page 56: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

48 CAPITOLO 4. L'ALGORITMO DI ANALISI DELLE IMMAGINI

4.2 Filtraggi basati sul rilevamento di linee

Le immagini sono composte da un reticolo di rughe. Le celle delimitatedalle rughe sono a loro volta solcate da rughe più piccole. Per una correttasegmentazione delle immagini è necessario ripulire l'immagine dalle micro-rughe che frammentano le celle, e da ogni altro tipo di rumore e disturbopresente nell'immagine.Si è ritenuto conveniente prendere in considerazione un �ltro basato sul ri-levamento delle strutture lineari (le rughe). Se si considera un'immaginebinaria in cui i punti bianchi appartengono alle rughe e i punti neri alle celle,la rilevazione delle linee può essere pensata come l'applicazione di un ope-ratore morfologico in cui viene usato uno structure element che rappresentaun segmento. Un'operazione di erosione individua tutti i punti al centro diun segmento uguale allo structure element, una successiva dilatazione di talipunti restituisce tutti i punti dei segmenti rilevati; quindi un'operazione diapertura rileva con precisione tutte le linee di orientazione e dimensioni de-terminate dallo structure element.Ripetendo l'operazione per tutte le possibili orientazioni si ottiene un insie-me di immagini, ognuna delle quali contiene le informazioni relative a unaorientazione. Per ottenere l'immagine �nale basta eseguire un'operazione diOR tra tutte le immagini parziali, infatti un punto appartiene a una ruga seper quel punto passa una linea di orientazione qualsiasi.Il passaggio a immagini in toni di grigio è immediato, perché basta usare lede�nizioni generalizzate degli operatori morfologici. L'operazione �nale diOR, analogamente, viene sostituita ed estesa da un'operazione di massimo,esattamente come avviene nella generalizzazione degli operatori morfologici(1.4.1).E' utile sottolineare che rilevando linee di una certa dimensione, verrannoprese in considerazione anche le linee di dimensione maggiore, mentre quelledi dimensione minore verrano oscurate.Il limite di questo algoritmo è che le rughe non necessariamente sono dellelinee perfette, per questo non può essere usato e�cacemente con segmentimolto lunghi.

Page 57: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

4.2. FILTRAGGI BASATI SUL RILEVAMENTO DI LINEE 49

Un altro limite di questo algoritmo è quello classico degli operatori morfo-logici (1.4.6), infatti un solo punto di rumore può interrompere una linea,e questo fenomeno è tanto più marcato quanto più si tenta di rilevare lineegrandi.Sono state eseguite prove sperimentali per determinare le dimensioni ottima-li dei segmenti contenuti negli structure element, variando la lunghezza deisegmenti da 2-3 punti in su, e variando la larghezza da 1 punto in su; si os-servano risultati qualitativamente migliori per linee larghe 1 punto e lungheintorno a 10 punti.I risultati sono riportati nella �gura 4.1L'implementazione Matlab è riportata in appendice D.2. Per rendere i ri-

Figura 4.1: Risultati dell'algoritmo lineopen: immagine �ltrata con ilparametro di lunghezza linea impostato a 7 e 15

sultati meno dipendenti dalla scelta dei parametri si è pensato di ripeterel'algoritmo con diversi valori dei parametri, e poi eseguire la somma delleimmagini ottenute. Questo approccio ha anche un altro vantaggio: dove vie-ne rilevata una linea grande, viene rilevata anche una linea piccola, perciò le

Page 58: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

50 CAPITOLO 4. L'ALGORITMO DI ANALISI DELLE IMMAGINI

linee di dimensioni maggiori avranno intensità maggiore nel risultato �nale.I risultati sperimentali sono riportati nella �gura 4.2L'implementazione Matlab è riportata in appendice D.2. Per superare i limi-

Figura 4.2: Risultati dell'algoritmo linereconstruct: immagine originale e�ltrata

ti degli operatori morfologici si è pensato di sostituirli con una convoluzionecon un kernel che rappresenta una linea. Ispirandosi al precedente algoritmo,per tentare anche di diminuire la dipendenza dai parametri di lunghezza elarghezza, si sono eseguite alcune prove sperimentali che hanno portato allade�nizione della seguente funzione:

x0 = x ∗ sin(ϑ) + y ∗ cos(ϑ)

y0 = x ∗ cos(ϑ)− y ∗ sin(ϑ)

f(x, y) = exp(−x20

σ2a

+y20

σ2b

2)

Si tratta di una campana di Gauss molto schiacciata lungo un asse e ruo-tata di un opportuno angolo ϑ (Figura 4.3); in base a questa funzione viene

Page 59: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

4.2. FILTRAGGI BASATI SUL RILEVAMENTO DI LINEE 51

020

4060

80100

120140

0

50

100

1500

0.2

0.4

0.6

0.8

1

1.2

x 10−3

020

4060

80100

120140

0

50

100

1500

0.2

0.4

0.6

0.8

1

1.2

x 10−3

Figura 4.3: Funzione usata per il kernel di convoluzione

generata una matrice che servirà come kernel per una convoluzione con l'im-magine da �ltrare. Si può osservare come questa funzione assomigli molto aquella del �ltro di Gabor [45], [44], [39], [42], [43]; la di�erenza consiste nel-l'assenza di ondulazioni, questo svincola il �ltraggio da aspetti frequenzialie dalla larghezza delle rughe. Facendo variare l'angolo ϑ si ottiene un insie-me di immagini, ognuna di queste cattura le linee con una ben determinataorientazione. Il risultato �nale è ottenuto con un'operazione di massimo,analogamente all'algoritmo precedente.Un'altra osservazione interessante è che questa funzione generalizza la cam-pana gaussiana usata per il �ltraggio nel lavoro precedente [47] e si riconducead essa imponendo σx = σy; quindi scegliendo adeguatamente i parametri,possiamo essere matematicamente certi che l'algoritmo proposto non puòprodurre risultati peggiori.I risultati sperimentali sono riportati nella �gura 4.4, e come si può osservarei risultati sono decisamente buoni.L'implementazione Matlab è riportata in appendice D.2. L'inevitabile prezzoda pagare per aver usato una convoluzione al posto degli operatori morfologi-ci è il minore rigore nell rivelazione: se si tenta di rilevare linee molto grandi,si ottengono immagini molto sfumate. D'altra parte la minor rigidità nellarilevazione è anche il punto di forza dell'algoritmo, che o�re stime ragione-voli anche in caso di ambiguità. Il punto di forza dell'approccio morfologico,invece, è che de�nisce una chiusura algebrica, che ha interessanti proprietànella segmentazione watershed, come visto in 1.4.4. Tra i vari tipi di �ltraggi

Page 60: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

52 CAPITOLO 4. L'ALGORITMO DI ANALISI DELLE IMMAGINI

Figura 4.4: Risultati dell'algoritmo line�lter: immagine �ltrata e mappa delleorientazioni

appena de�niti, si è visto sperimentalmente che i migliori risultati si otten-gono usando l'algoritmo basato su convoluzione, impostatando i parametriai seguenti valori: σa = 0.7 e σb = 2.

4.3 La segmentazione

La segmentazione watershed, di per sé, mette in gioco solo il parametroconnettività. Sono state fatte alcuni studi per identi�care il tipo di connet-tività migliore. Si osserva che usando una connettività di tipo 4 anziché 8vengono individuate rughe diagonali molto sottili, a causa della quantizzazio-ne le celle ai lati della ruga si toccano e le rughe vengono perse. Il risultatosembra essere più corretto.La tecnica usata nelle segmentazioni esempli�cative, oltre il tipo di connet-tività, usa solo normalizzazione e H-min. nelle �gure 4.6 e 4.7 sono riportateanche le segmentazioni da cui si è ottenuto i primi risultati (connettività 8

Page 61: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

4.3. LA SEGMENTAZIONE 53

e �ltraggio gaussiano) usate come termine di riferimento. Si è visto speri-

Figura 4.5: Area segmentata con connettività rispettivamente 8 e 4.

Figura 4.6: Segmentazione di rughe sottili. Le �gure sono rispettivamentel'immagine originale, la segmentazione di riferimento, e le segmentazioni conconnettività 8 e 4

mentalmente che il problema dell'over-segmentazione può essere risolto conl'operatore H-min, ma per risultati ottimali bisogna scegliere la soglia H ma-nualmente. (vedi �gura 4.8). Il risultato delle soglie H scelte è interessantese gra�cato in funzione dell'età (�gura 4.9); infatti si nota una forte cor-relazione con quest'ultima. Il fenomeno non è casuale, ma è dovuto a dueconsiderazioni, una di natura teorica e una legata alla natura delle immagini.

Page 62: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

54 CAPITOLO 4. L'ALGORITMO DI ANALISI DELLE IMMAGINI

Figura 4.7: Segmentazione di una ruga ambigua. Le �gure sono ri-spettivamente l'immagine originale, la segmentazione di riferimento e lesegmentazioni con connettività 8 e 4

La considerazione di natura teorica è che l'operatore H-min, per sua naturae a prescindere dal tipo di immagine, elimina più oggetti per valori alti disoglia, e poiché nei vecchi gli oggetti (le celle) sono di meno, soglie H elevatesegmentano bene i vecchi. L'altra considerazione è che nei vecchi le celle sonosolcate da micro-rughe, e la segmentazione tenderebbe a segmentare tutte lemicro-celle anziché le celle principali. Alzando la soglia le micro-celle vengo-no riunite. Queste considerazioni sono utili perché, per valutare la qualità diun sistema automatico per la scelta della soglia H, è possibile valutare velo-cemente la qualità delle soglie scelte veri�candone la correlazione con l'età.Come veri�ca, si è gra�cato il risultato ottenuto scegliendo soglie H diret-tamente proporzionali all'età. L'ottimo risultato ottenuto conferma quantodetto, inoltre può essere utile per stimare la massima qualità dei risultatiottenibili.Nonostante i notevoli sforzi compiuti nel tentativo di segmentare meglio

l'immagine senza ricorrere a parametri variabili, si è preferito usare un pro-cesso di segmentazione �ltrando solo con soglia H-min variabile, con unascelta automatica del parametro H basata sugli algoritmi descritti in 4.3.1Gli algoritmi per la determinazione del parametro H ottimale sono anco-ra lontani dallo stato di maturità, ma nonostante questo hanno prodotto irisultati migliori �nora.

Page 63: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

4.3. LA SEGMENTAZIONE 55

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=−0.86742 Autovalori=70.7705,1007.5732

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25Residui − Correlazione=−0.14873

P1Ynorm - Correlazione: 86%, Dev. St. Residui: 8,41Asse X: età anagra�ca, Asse Y: feature normalizzata.

Figura 4.8: Risultati ottenuti scegliendo H manualmente.

0 10 20 30 40 50 60 70 80 90 1000.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=−0.92949 Autovalori=32.4591,904.7406

Figura 4.9: Sinistra: soglie H scelte manualmente. Destra: risultati �ttiziottenuti scegliendo la soglia H proporzionale all'età.

Page 64: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

56 CAPITOLO 4. L'ALGORITMO DI ANALISI DELLE IMMAGINI

4.3.1 Segmentazione a soglia H Variabile

Questo approccio si basa sul tentativo di emulare il processo mentalesvolto da un essere umano quando sceglie la soglia H ottimale per la seg-mentazione. Innanzitutto bisogna dire che questo processo è interattivo: lasegmentazione corretta viene ottenuta solo facendo alcune prove e variandoil parametro H basandosi sulla qualità dei risultati. La qualità del risulta-to viene valutata osservando la corrispondenza tra le rughe dell'immagineoriginale e di quella segmentata. Questo aspetto è stato emulato in due pos-sibili modi: scegliendo la soglia H in base ai risultati ottenuti da una primasegmentazione a soglia �ssa, e facendo variare la soglia H su tutti i valori,ricavando il valore da un gra�co che misuri la qualità della segmentazione infunzione di H.In entrambi questi approcci, è necessario de�nire un algoritmo che approssimiil processo mentale che porta la mente umana a dire che una segmentazio-ne è corretta. Questo algoritmo è il punto cruciale di tutto il processo e ilpunto più complesso da a�rontare, La ricerca di un algoritmo ottimale è unproblema quasi completamente inesplorato, che apre la strada ad ulterioriapprofondimenti e ricerche. Di seguito si propone un algoritmo che, nono-stante la sua semplicità, produce i migliori risultati ottenibili �nora: oltre alrisultato in sé, ha un'importanza grandissima perché dimostra la fertilità epercorribilità di questa strada.Per capire meglio il problema, è utile ri�ettere sul processo mentale che portaalla segmentazione corretta: si osserva la segmentazione sovrapposta all'im-magine originale, e ci si chiede se alcune rughe principali sono state mancate(under-segmentazione) o se sono state rilevate più rughe di quelle e�ettiva-mente presenti (over-segmentazione) e in base a quanto riscontrato si alza oabbassa la soglia H. Il processo si ferma quando si ottiene la corrispondenzamigliore, in altre parole quando le due immagini di�eriscono il meno possibile.L'idea di analizzare la di�erenza ha generato il seguente algoritmo: Si pren-de l'immagine binaria ottenuta con la segmentazione e si fa la di�erenza conl'immagine originale (normalizzata tra 0 e 1); la somma delle di�erenze vieneusata come misura della qualità della segmentazione. Come si può intuire il

Page 65: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

4.3. LA SEGMENTAZIONE 57

risultato è molto grossolano: le rughe reali sono molto più spesse delle rugheindividuate dalla watershed e la prima immediata conseguenza di questa os-servazione è che la corrispondenza migliore sarà calcolata per un'immagineche in realtà è over-segmentata. Il modo in cui il risultato è sfasato rispetto aquello atteso non è stato ancora analizzato a fondo, per cui al momento ci silimita a correggerlo con un fattore arbitrario di correzione, scelto sperimen-talmente. Anche la dinamica dei valori che se ne deducono non è detto chesia corretta, quindi è stato introdotto un secondo parametro moltiplicativo,di minore importanza ma comunque signi�cativo, dedotto sempre sperimen-talmente, per compensare gli errori. Uno degli obiettivi futuri è a�nare lafunzione per poter eliminare questi parametri.

Primo metodo: 2 passateLa considerazione, ricavata sperimentalmente, che sta alla base di questo

metodo è che un valore di h �sso, anche se scelto in modo ottimale, tendea over-segmentare soprattutto le pelli più vecchie. Questo è dovuto al fattoche le immagini di un bambino sono più omogenee, mentre in un vecchio lecelle sono grandi, ma scompaginate e solcate da tante micro-rughe.Si esegue una prima segmentazione con una soglia �ssa, poi si stima la qualitàdella segmentazione con il metodo indicato precedentemente, in�ne si ri-segmenta con con una soglia proporzionale alla stima calcolata. La stimafornisce un'informazione sulla qualità della segmentazione, ma non ci dicein che direzione dobbiamo muoverci: per questo motivo non è necessario néutile iterare ulteriormente.L'implementazione Matlab è riportata in appendice D.3.

Secondo metodo: distribuzione HL'immagine viene segmentata con facendo variare H, e per ogni segmen-

tazione viene calcolata la somiglianza con l'immagine originale. Il risultatoè una distribuzione di valori da cui si ricava la soglia H ottimale.In teoria la moda della distribuzione dovrebbe fornire direttamente il valoreottimale di segmentazione, ma in questo modo non si ottiene nessun risultato:

Page 66: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

58 CAPITOLO 4. L'ALGORITMO DI ANALISI DELLE IMMAGINI

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=0.54416 Autovalori=194.1104,660.0664

Figura 4.10: Soglia H ottenuta con l'algoritmo a 2 passate, gra�cata infunzione dell'età

le considerazioni fatte sulla grossolanità della funzione di confronto portanoa de�nire una soglia H proporzionale alla media della distribuzione.Si è osservato anche che la deviazione standard di questa distribuzione hauna correlazione con l'età: evidentemente la funzione di stima calcola pun-teggi buoni per la segmentazione in un intervallo più ampio per i vecchi, piùstretto per i giovani. Questo è coerente con l'assunzione che i vecchi vannosegmentati con soglie più alte.L'implementazione Matlab è riportata in appendice D.3.

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=0.55911 Autovalori=208.4443,777.7929

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=0.62736 Autovalori=169.6161,758.4064

Figura 4.11: Media e deviazione standard della distribuzione ottenutafacendo variare la soglia H. Risultati gra�cati in funzione dell'età.

Page 67: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

4.4. GRANULOMETRIE 59

4.4 Granulometrie

E' stato implementato un algoritmo che può generare le seguenti granu-lometrie, direttamente da immagini in toni di grigio:

• areaopen, rimozione di oggetti in base al parametro area

• lineopen, rimozione di oggetti lineari in base al parametro lunghezza(il �ltraggio avviene in tutte le direzioni e rimuove gli oggetti `corti')

• h-maxima, rimozione di oggetti in base all'altezza relativa

Da ogni granulometria, vengono estratte le seguenti distribuzioni:

• Numero: numero di oggetti presenti nell'immagine (aree chiare circon-date da contorni più scuri)

• Area: super�cie dell'immagine che non ha subito alterazioni

• Volume: volume complessivo degli oggetti.

Di ognuna di queste distribuzioni è possibile ottenere un gra�co altrettantosigni�cativo calcolando la derivata della curva.Si è osservato che nelle granulometrie in toni di grigio basate sulla misuradell'area c'è un problema concettuale, evidenziato dalla �gura 4.12: un og-getto può inglobare oggetti più piccoli, e bisogna chiedersi se si vuole contaresolo solo l'area dell'oggetto principale o anche di quelli secondari. La granu-lometria `normale' conta tutti gli oggetti, generando un numero enorme dioggetti di piccola dimensione in presenza di rumore, oppure, come nel casoin esame, nel caso di strutture composte da altre microstrutture. Si è pensa-to quindi di modi�care il conteggio scartando gli oggetti che fanno parte dioggetti più grossi, ottenendo una granulometria battezzata `ridotta'. Questaambiguità nelle misure delle aree è il motivo per cui, normalmente, si misural'area per immagini binarie, e il volume per immagini in toni di grigio. Datal'importanza della misura delle aree nel contesto applicativo, si è comunquecercato di studiare l'area anche per le immagini in toni di grigio.

Page 68: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

60 CAPITOLO 4. L'ALGORITMO DI ANALISI DELLE IMMAGINI

0 10 20 30 40 50 60 70 80 90 1000.4

0.45

0.5

0.55

0.6

0.65

0.7

0.75

Figura 4.12: Pro�lo di un oggetto contenente altri due oggetti al suo interno

Le prove sono state e�ettuate su 6 immagini di piccola dimensione a causadella complessità computazionale degli algoritmi, che avrebbe reso un'analisidi molte immagini a piene dimensioni impraticabile in assenza di algorit-mi ottimizzati. Questa prima analisi è stata svolta per valutare la fertilitàdi questo approccio e la correttezza degli algoritmi. Si può osservare che irisultati riportati non sono su�cientemente signi�cativi per trarre delle con-clusioni; in Matlab è implementata una versione su�cientemente e�cientedella trasformata H-max (e H-min) tale da permettere di eseguire un'indagi-ne più accurata.Per la granulometria basata su area, Matlab mette a disposizione solo lafunzione di Area-Open per immagini binarie, e applicando la de�nizione delprincipio di sovrapposizione per estenderla al caso di immagini in toni digrigio si è ottenuto o un algoritmo troppo ine�ciente per utilizzi pratici. Inletteratura, comunque, sono noti algoritmi per implementare e�cientementele granulometrie ([17], [18], [19], [20], [22], [21]). Visto che i migliori risultatidisponibili sono basati su una granulometria basata su area ottenuta da unaparticolare immagine binaria (quella ottenuta con la segmentazione water-shed) si ritiene particolarmente promettente la strada della granulometriabasata su Area direttamente su immagini in toni di grigio, perché individua-re la segmentazione corretta è un problema particolarmente critico e sarebbeinteressante poterlo aggirare. D'altra parte, non bisogna illudersi che questa

Page 69: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

4.4. GRANULOMETRIE 61

0 50 1000

50

100

150

2001

0 50 1000

50

100

150

20023

0 50 1000

50

100

150

20028

0 50 1000

50

100

150

20064

0 50 1000

50

100

150

20065

0 50 1000

50

100

150

20094

0 50 1000

20

40

60

80

1001

0 50 1000

20

40

60

80

10023

0 50 1000

20

40

60

80

10028

0 50 1000

20

40

60

80

10064

0 50 1000

20

40

60

80

10065

0 50 1000

20

40

60

80

10094

Figura 4.13: Granulometria - Numero. Commenti a pag. 59

Page 70: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

62 CAPITOLO 4. L'ALGORITMO DI ANALISI DELLE IMMAGINI

0 50 1000

5

10

15

20

251

0 50 1000

5

10

15

20

2523

0 50 1000

5

10

15

20

2528

0 50 1000

5

10

15

20

2564

0 50 1000

5

10

15

20

2565

0 50 1000

5

10

15

20

2594

0 50 1000

10

20

30

40

501

0 50 1000

10

20

30

40

5023

0 50 1000

10

20

30

40

5028

0 50 1000

10

20

30

40

5064

0 50 1000

10

20

30

40

5065

0 50 1000

10

20

30

40

5094

Figura 4.14: Granulometria - Numero Ridotto. Commenti a pag. 59

Page 71: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

4.4. GRANULOMETRIE 63

0 50 100500

1000

1500

20001

0 50 100500

1000

1500

200023

0 50 100500

1000

1500

200028

0 50 100500

1000

1500

200064

0 50 100500

1000

1500

200065

0 50 100500

1000

1500

200094

0 50 1000

20

40

60

80

1001

0 50 1000

20

40

60

80

10023

0 50 1000

20

40

60

80

10028

0 50 1000

20

40

60

80

10064

0 50 1000

20

40

60

80

10065

0 50 1000

20

40

60

80

10094

Figura 4.15: Granulometria - Area. Commenti a pag. 59

Page 72: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

64 CAPITOLO 4. L'ALGORITMO DI ANALISI DELLE IMMAGINI

0 50 1000

100

200

300

400

5001

0 50 1000

100

200

300

400

50023

0 50 1000

100

200

300

400

50028

0 50 1000

100

200

300

400

50064

0 50 1000

100

200

300

400

50065

0 50 1000

100

200

300

400

50094

0 50 1000

200

400

600

800

1000

12001

0 50 1000

200

400

600

800

1000

120023

0 50 1000

200

400

600

800

1000

120028

0 50 1000

200

400

600

800

1000

120064

0 50 1000

200

400

600

800

1000

120065

0 50 1000

200

400

600

800

1000

120094

Figura 4.16: Granulometria - Area Ridotta. Commenti a pag. 59

Page 73: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

4.4. GRANULOMETRIE 65

0 50 100300

400

500

600

700

800

900

10001

0 50 100300

400

500

600

700

800

900

100023

0 50 100300

400

500

600

700

800

900

100028

0 50 100300

400

500

600

700

800

900

100064

0 50 100300

400

500

600

700

800

900

100065

0 50 100300

400

500

600

700

800

900

100094

0 50 1000

5

10

15

20

251

0 50 1000

5

10

15

20

2523

0 50 1000

5

10

15

20

2528

0 50 1000

5

10

15

20

2564

0 50 1000

5

10

15

20

2565

0 50 1000

5

10

15

20

2594

Figura 4.17: Granulometria - Volume. Commenti a pag. 59

Page 74: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

66 CAPITOLO 4. L'ALGORITMO DI ANALISI DELLE IMMAGINI

strada sia per forza vincente: una granulometria sull'immagine in toni digrigio sarebbe inevitabilmente in�uenzata dal rumore, mentre una granulo-metria ricavata dalla segmentazione watershed ha il vantaggio di partire daun'immagine molto schematica e `pulita'. Una risposta de�nitiva può esseredata solo dopo ulteriori prove sperimentali.Per il momento la granulometria basata su area è calcolata solo a partire daimmagine binaria con un algoritmo speci�co ed e�ciente per questa partico-lare granulometria.

4.5 L'estrazione di features

Fra i tanti modi di estrarre features, quello che ha dato risultati migliorie su cui ci si è concentrati di più può essere schematizzato come segue: siricava una curva granulometrica dall'immagine, e da questa si ricavano dellestatistiche. Le granulometrie prese in considerazione sono basate su Area-Open partendo da immagini in bianco e nero prodotte dalla segmentazioneWatershed, e trasformazione H-min partendo da immagini in toni di grigio.Le statistiche prese in considerazione sono: media, varianza, skewness, kur-tosis, calcolate sia rispetto all'asse X che Y; Area totale della distribuzione;considerando poi la distribuzione cumulativa si sono presi in considerazionele coordinate X e Y di un percentile basso (5%), un percentile alto (95%), ladi�erenza tra questi due, il punto della distribuzione cumulativa a pendenza1, calcolato sia sulla distribuzione originale che normalizzata1. Quest'ultimacoincide con la feature individuata in [47].In seguito si farà riferimento a queste features rispettivamente con i nomi:mediaX, varianzaX, skewnessX, kurtosisX, mediaY, varianzaY, skewnessY,kurtosisY, totale, sogliaLX, sogliaHX, sogliaLY, sogliaHY, deltaX, deltaY,P1X, P1Y, P1Xnorm, P1Ynorm. Oltre a features di origine granulometri-che, è stata presa in considerazione anche una feature basata sulla deviazione

1per distribuzione normalizzata si intende una distribuzione di area unitaria, ovverodistribuzione cumulativa con valore massimo 1. Anche i valori dell'asse X vengono riportatitra 0 e 1

Page 75: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

4.5. L'ESTRAZIONE DI FEATURES 67

standard locale.

4.5.1 Granulometria H-min

La trasformazione H-minima è di fatto una chiusura morfologica con irequisiti matematici necessari per essere usata come granulometria. Se unacella è grande tende ad avere anche una dinamica maggiore, e quindi è corre-lata indirettamente con l'età. Questa correlazione meno diretta di quella chesi otterrebbe con una granulometria basata su area limita la qualità di questafeature, ma la possibilità di implementare gli algoritmi necessari senza ecces-sivi sforzi e la possibilità di ottenere una feature che non introduce nessunparametro e richiede in ingresso l'immagine in toni di grigio ha incoraggiatolo studio di questa granulometria. Inoltre lo studio della segmentazione infunzione di H potrebbe essere utile per fornire un metodo di segmentazionecon parametro H variabile.L'implementazione Matlab è riportata in appendice D.4.

4.5.2 Granulometria basata sull'Area di immagini bina-

rie

Una granulometria basata sull'area delle celle è la scelta più naturale percaratterizzare le immagini in funzione dell'età, visto che questa è legata pro-prio alla dimensione delle celle. La qualità delle features che ne derivano,però dipende dalla qualità dell'immagine binaria di partenza. Un'immagi-ne generata tramite segmentazione watershed produce immagini con celleperfettamente separate e prive di rumore. Questo tipo di segmentazione èindispensabile per raggiungere i risultati migliori, come confermato dai ri-sultati ottenuti applicando la granulometria a un'immagine binaria generatacon una soglia: si hanno risultati decisamente peggiori a causa dell'inevita-bile rumore residuo, delle celle che si toccano e delle celle frammentate. In4.18 sono riportati i risultati ottenuti con segmentazione watershed a sogliaH �ssa e sogliatura (la soglia usata è 0.7, ovvero quella che produce risultati

Page 76: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

68 CAPITOLO 4. L'ALGORITMO DI ANALISI DELLE IMMAGINI

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=−0.74709 Autovalori=122.6605,893.3757

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=−0.4855 Autovalori=243.9631,754.4622

Figura 4.18: Feature P1Ynorm ottenuta con soglia H �ssa, a sinistra ilrisultato con segmentazione watershed, a destra quello con sogliatura

migliori tra i valori provati).Assodato che la strada corretta è quella della segmentazione watershed, il

problema si riduce all'individuazione della segmentazione più corretta pos-sibile. I risultati di �gura 4.18, ottenuti con una soglia H �ssa, non sonocerto buoni come quelli ottenuti scegliendo manualmente la segmentazionemigliore. I risultati ottenuti manualmente, ci forniscono molte interessantiinformazioni: Innanzi tutto ci dicono che agire solo sul parametro H è su�-ciente per ottenere una buona segmentazione: questo è il motivo per cui siè messa da parte la strada che si basava sulla ricerca di una segmentazionemigliore basandosi su parametri �ssi e si è cercato di individuare un algorit-mo per scegliere una soglia H variabile.Di fatto, questo modo di generare le features è lo stesso usato nel lavoro pre-cedente; l'unico marginale cambiamento è la gestione dell'e�etto di bordo:Le celle ai bordi vengono spezzate a metà, e quindi risultano più piccole diquanto e�ettivamente sono. L'e�etto ai bordi viene evitato scartando le celleconnesse ai bordi, inoltre la feature viene rapportata all'area complessiva del-l'immagine e�ettivamente usata, che varia in funzione della dimensione dellecelle ai bordi rimosse. In Questo modo diventa anche indipendente dalle di-mensioni dell'immagine (anche se, per immagini più grandi, sarà più precisaperché dispone di maggiore informazione).L'implementazione Matlab è riportata in appendice D.4.

Page 77: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

4.5. L'ESTRAZIONE DI FEATURES 69

4.5.3 La deviazione standard locale

La media della deviazione standard locale dell'immagine �ltrata presentauna certa correlazione con l'età. Si è studiata l'in�uenza della dimensionedell'intorno sui risultati e si è ottenuto che per intorni piccoli la retta dei mi-nimi quadrati ha pendenza negativa, aumentando le dimensioni dell'intornola pendenza (in valore assoluto) diminuisce, quando la retta diventa oriz-zontale anche la correlazione è minima. Aumentando ancora le dimensionidell'intorno la pendenza diventa positiva e la correlazione aumenta di nuovo,in�ne la correlazione con l'età tende a diminuire ancora, �no a svanire quandotutti i valori convergono verso la deviazione standard globale, costante pertutte le immagini. Alla luce di queste osservazioni si sono presi due valoridell'intorno, uno per intorni piccoli e uno per intorni grandi, in cui la corre-lazione è alta e la pendenza opposta. La di�erenza tra le due ha generatouna nuova feature migliore delle due prese singolarmente. Le dimensioni diintorno considerate sono 2, 4, 8, 16, 32, 64, 128. E' importante sottolineareche l'operazione di �ltraggio è indispensabile per ottenere i risultati trovati:come conferma e veri�ca in �gura 4.19 sono riportati alcuni risultati ottenutidall'immagine normalizzata e senza alcun �ltraggio. In �gura 4.20, invece,sono riportate le deviazioni locali standard per un intorno grande e per unintorno piccolo.L'implementazione Matlab è riportata in appendice D.6.

0 10 20 30 40 50 60 70 80 90 1000

20

40

60

80

100

120Correlazione=−0.62792 Autovalori=144.0135,632.57

0 10 20 30 40 50 60 70 80 90 100−40

−20

0

20

40

60

80

100

120

140

160Correlazione=−0.27999 Autovalori=333.9422,663.3814

Figura 4.19: Feature Deviazione Standard Locale con intorno 4 e 64, generatasenza �ltrare l'immagine

Page 78: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

70 CAPITOLO 4. L'ALGORITMO DI ANALISI DELLE IMMAGINI

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=−0.67139 Autovalori=135.1189,687.3328

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=0.48983 Autovalori=205.9724,601.6027

Figura 4.20: Feature Deviazione Standard Locale con intorno 4 e 32, generata�ltrando l'immagine

4.6 Altri algoritmi

Sono stati studiati anche numerosi altri algoritmi che non hanno prodotto,per ora, risultati signi�cativi. Si ritiene utile prenderli lo stesso in considera-zione perché potrebbero rivelarsi utili per ulteriori studi: l'attuale processo dielaborazione delle immagini è ancora lontano dallo stato di piena maturità,e questi algoritmi sono possibili punti di partenza per ulteriori studi. Inoltrela loro trattazione serve anche per mettere in evidenza le di�coltà e i limitidi altre strade, giusti�cando ulteriormente le scelte fatte nella de�nizione delprocesso globale di elaborazione.

4.6.1 Sogliatura a doppia soglia

Per migliorare il passaggio da un'immagine in toni di grigio a un'imma-gine binaria è stato implementato l'operatore di soglia doppia, secondo lade�nizione in [10], pagina 652. E�ettivamente i risultati prodotti da questooperatore sono migliori di quelli ottenuti con una sola soglia, ma ci sono anchedegli inconvenienti: ri�ettendo su questo algoritmo si osserva che una sogliade�nisce quali oggetti appariranno nell'immagine �nale, mentre l'altra decidela forma degli oggetti selezionati. Una conseguenza di questa implementazio-ne è la spiccata asimmetria nel comportamento che potrebbe rendere di�cile

Page 79: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

4.6. ALTRI ALGORITMI 71

l'applicazione dell'algoritmo perché oltre a scegliere due soglie anziché unabisogna anche scegliere se applicare l'operatore all'immagine originale e alsuo negativo, visto che i risultati sono diversi (vedi �gura 4.21).Per superare questi inconvenienti la funzione è stata migliorata basando-si sul principio dei �ltri alternati (Alternating Sequential Filers, ASF [14],[16]). L'algoritmo �nale conserva i vantaggi del precedente ma opera simme-tricamente, sempli�candone le modalità d'uso.

4.6.2 Etichettatura delle rughe

L'algoritmo si ripropone di identi�care le rughe, con lo scopo di poterlecaratterizzare o per meglio �ltrare l'immagine. Una ruga è pensata come uninsieme di punti connessi disposti più o meno lungo una linea.

Il test di appartenenza a una rugaAlla base dell'algoritmo c'è il problema di decidere se un insieme di punti

costituiscano una ruga o no. Questo problema viene a�rontato calcolandola retta dei minimi quadrati dei punti. Si dimostra che se le distanze deipunti dalla retta dei minimi quadrati hanno una distribuzione gaussiana, lasomma delle distanze ha una distribuzione σ2χ2

n−2, dove σ2 è la varianza eχ2

n−2 è la distribuzione chi-quadro di grado n-2, dove n è il numero di punti.In questo modo è possibile calcolare la probabilità che un insieme di puntiappartengano a una linea.Per il calcolo della retta dei minimi quadrati è stata applicata la trasformatadi Karhunen-Loève (appendice B). Nel nostro caso, I punti del piano vengonoapprossimati con una retta2.La di�erenza tra una linea e una ruga, però è che una ruga è lineare sololocalmente. Per tenere conto anche di questo, vanno testati solo i punti dellaruga contenuti in un intorno. Considerare una ruga lineare solo localmente

2Questo approccio potrebbe essere generalizzato per tener conto dei toni di grigiodell'immagine: i punti di una linea sarebbero punti in uno spazio tridimensionale cheapprossimano una retta

Page 80: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

72 CAPITOLO 4. L'ALGORITMO DI ANALISI DELLE IMMAGINI

Figura 4.21: Immagini in Bianco e nero ottenute rispettivamente con soglianormale, doppia soglia (positivo e negativo), doppia soglia simmetrica

Page 81: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

4.6. ALTRI ALGORITMI 73

non solo porta a risultati migliori, ma sempli�ca anche i calcoli, visto chebisogna eseguire test solo su un numero limitato di punti, a prescindere daquanto sia lunga la ruga o grande l'immagine.Quanto visto �nora, di fatto, stabilisce un criterio di raggruppamento deipunti, quindi ci si trova ad a�rontare un problema di clustering, già di persé complesso, ulteriormente complicato dai seguenti fatti:

• Le rughe possono intersecarsi, quindi un punto può appartenere a piùrughe.

• In un'immagine in toni di grigio non è ben de�nito quali punti sianorughe e quali celle.

• Il numero di cluster che si otterranno non è de�nito a priori

L'idea di baseL'idea intuitiva di base è la seguente: a partire da un punto, si va alla

ricerca della ruga aggiungendo gradualmente punti vicini �no a quando non èpiù possibile aggiungere punti, poi si riparte da altri punti. Per concretizzarequesta idea bisogna precisare molti aspetti. Si è già precisato il criterio ma-tematico per veri�care se un punto possa o meno essere aggiunto a una ruga,ma bisogna ancora decidere quali punti tentare di aggiungere, in che ordine,se bisogna eseguire test solo per aggiungere punti o anche per rimuoverli,da quali punti o raggruppamenti di punti iniziare, bisogna speci�care se ecome gestire la sovrapposizione delle rughe, e in�ne analizzare come questiaspetti in�uenzino le prestazioni dell'algoritmo, sia in termini di correttezzadei risultati che di velocità di calcolo.

Il problema dei punti di partenzaBisogna decidere da dove far partire la ricerca delle rughe. Innanzi tutto

bisognerebbe sapere quali punti appartengono a qualche ruga, supponendodi saperlo l'algoritmo più corretto da un punto di vista dei risultati dovrebbefar partire la ricerca da tutti questi punti e per ogni punto identi�care tutti

Page 82: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

74 CAPITOLO 4. L'ALGORITMO DI ANALISI DELLE IMMAGINI

i possibili insiemi connessi di punti che lo includono e scegliere l'insieme chemeglio approssima una ruga. Ovviamente un algoritmo del genere sarebbecomputazionalmente improponibile, per cui si è pensato di approssimare ilproblema come segue: partendo da ogni punto con luminosità al di sopra diuna certa soglia, si aggiungono i punti adiacenti scegliendoli in base a qualchecriterio, e si continua �no a quando non è più possibile aggiungere punti.Il principale inconveniente di questo approccio è che genera una ruga per ognipunto, e oltre a essere computazionalmente dispendioso genera molte rugheridondanti, simili tra loro ma non identiche. Eliminare questa ridondanzanon è un problema banale, perché è possibile che due rughe si sovrapponga-no per incrociarsi, pur essendo distinte. Anche disponendo di un criterio perdecidere se due rughe sono sovrapposte o si incrociano, l'eliminazione del-la ridondanza a posteriori sarebbe computazionalmente proibitiva: il costodell'algoritmo di confronto (che nelle più ottimistiche delle ipotesi avrà uncosto lineare nel numero di punti di cui sono composte le rughe, ma presu-mibilmente e ragionevolmente avrà costo più elevato) va moltiplicato per ilnumero di confronti da fare, che è o(n2), dove n è il numero delle rughe. Inconclusione, non è possibile eliminare la ridondanza delle rughe a posteriori,quindi è necessario eliminarla (o per lo meno limitarla) durante il processostesso di generazione delle rughe; l'ideale sarebbe scegliere i punti di partenzain modo ottimale per generare solo le rughe strettamente necessarie: il costodell'algoritmo sarebbe così quello minimo possibile.Una approssimazione del problema potrebbe essere quella di non iniziare laricerca delle rughe dai punti che sono stati già assegnati a un'altra ruga. Siconserva in questo modo la possibilità di generare rughe che si incrociano ediminuisce sensibilmente il tempo di calcolo, ma i risultati non sono identicie dipendono dall'ordine di valutazione dei punti. I risultati sperimentali (�-gura 4.22) mostrano il degrado dei risultati. Nella tabella 4.1 sono riportati itempi di esecuzione e il numero di rughe rilevate. Per minimizzare il degradosi dovrebbe valutare i punti secondo un ordine ottimale, ad esempio primai punti più chiari, oppure prima i punti in cui è stata già rilevata una lineacon un'altro metodo. Lo studio in questa direzione è comunque rimandato alavori successivi.

Page 83: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

4.6. ALTRI ALGORITMI 75

Figura 4.22: Le prime due immagini mostrano il risultato ripartendo da tuttii punti, le altre due mostrano i risultati senza ripartire dai punti già assegnatia una ruga

Anziché partire da singoli punti, è possibile partire da gruppi con un nume-ro di punti più elevato possibile. Esperimenti fatti partendo da insiemi dipunti individuati con linedetection ha mostrato un sensibile abbassamentodei tempi di calcolo e una diminuzione della ridondanza delle rughe, intro-ducendo però ulteriori problematiche. Se le rughe iniziali vengono generatecon tecniche diverse, non è detto che soddis�no le condizioni di appartenenzaad una ruga già viste: bisogna quindi eseguire una operazione preliminare discrematura che potrebbe rendere le rughe non connesse, o addirittura can-cellarle completamente. Inoltre bisogna comunque far in modo di generareun insieme iniziale che cattura tutte le rughe, e ogni cluster iniziale devefar rifermento a una sola ruga, altrimenti diventa necessario una ulterioreprocedura che si occupa di spezzare un cluster in più rughe e un criterio perdecidere quando spezzare un cluster.

Page 84: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

76 CAPITOLO 4. L'ALGORITMO DI ANALISI DELLE IMMAGINI

La ricerca delle rughe di partenza diventa molto simile alla ricerca di un in-sieme di marker.Una prima prova è stata fatta facendo iniziare l'algoritmo con linee rilevatemorfologicamente, in questo modo si ha il vantaggio che le condizioni inizialisono automaticamente soddisfatte. I risultati riportati in 4.25 e 4.1, eseguitipartendo da linee lunghe 7 punti, evidenziano un miglioramento dei risultatiin termini di ridondanza delle rughe �nali e tempo di calcolo.E' stata implementato un algoritmo di generazione delle rughe iniziali basatosull'algoritmo line�lter, che oltre al �ltraggio produce una mappa dell'orien-tazione locale dominante (vedi �gura 4.4) che sembra adatta a generare lerughe iniziali. Gli insiemi connessi di orientazioni simili sono le rughe ini-ziali; la �gura 4.23 e la tabella 4.1 mostrano i risultati ottenuti. Un'altra

Figura 4.23: Risultati ottenuti partendo da rughe generate da orientazione

idea sarebbe quella di partire dai punti di massimo, ma per evitare punti dipartenza falsi bisognerebbe fare qualche �ltraggio, presumibilmente di tipomorfologico per le proprietà che hanno nel gestire i punti estremanti.

Il problema della sovrapposizionese due cluster si sovrappongono non è immediato capire se si tratta di

due rughe che si incrociano o se si tratta di due segmenti della stessa ruga.Le prime implementazioni sperimentali si limitavano a ignorare il problema,generando molte rughe sovrapposte e ridondanti. In seguito si è studiato un

Page 85: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

4.6. ALTRI ALGORITMI 77

semplice algoritmo che unisce due rughe in base a criteri di sovrapposizione eorientazione: se la sovrapposizione supera una certa soglia o se l'orientazionemedia dei punti di intersezione è simile le due rughe vengono fuse. Il calcolodella sovrapposizione ha costo o(n), il test sull'orientazione, ha complessitào(n2). Sono stati eseguiti alcuni test su immagini di piccole dimensioni conbuoni risultati dal punto di vista della correttezza: il numero di rughe di-minuisce sensibilmente, mentre la segmentazione rimane buona; purtropponon è stato possibile eseguire test su immagini complete a causa dell'esplo-sione dei tempi di calcolo, che ha reso impossibile eseguire prove in tempiragionevoli. Si conclude che le prove sperimentali confermano quanto antici-

Figura 4.24: Risultati del test di fusione delle rughe ridondanti

pato: a prescindere dalla qualità dei risultati, non è praticamente possibileeliminare la ridondanza delle rughe a posteriori a causa della complessitàcomputazionale.

Il criterio di scelta dei punti da aggiungereSono stati individuati due criteri per scegliere l'ordine di aggiunta dei

punti a un insieme: in base a una probabilità di linearità oppure in basealla luminosità. In entrambi i casi viene assegnato a ogni punto adiacenteun punteggio che determina quali punti bisogna tentare di aggiungere prima.Un punteggio inferiore a una certa soglia esclude il punto dalla valutazione,in questo modo prima o poi l'algoritmo ferma l'esplorazione.

Page 86: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

78 CAPITOLO 4. L'ALGORITMO DI ANALISI DELLE IMMAGINI

La probabilità che un punto appartenga alla ruga è calcolata come spiega-to in 4.6.2. In questo caso, però non bisogna semplicemente chiedersi se laprobabilità supera una certa soglia (calcolo che può essere fatto ricorrendo auna tabella, e quindi con tempi di calcolo quasi nulli) ma bisogna calcolareil valore della probabilità vero e proprio. Le prove sperimentali eseguite conMatlab e il tool Pro�ler hanno mostrato che la funzione chi2cdf (che calcolail valore della funzione cumulativa della distribuzione χ2) usata per calcolarequesta probabilità pesa notevolmente sui tempi di calcolo.Inoltre il test di linearità può essere eseguito solo se si dispone di almeno duepunti, complicando il problema della scelta degli insiemi iniziali.Il criterio basato sulla luminosità fornisce direttamente un punteggio per de-terminare l'ordine di aggiunta dei punti senza fare calcoli. Sebbene sarebbeteoricamente più e�cace combinare i due criteri, usando solo il criterio dellaluminosità si ottengono risultati accettabili con tempi di calcolo minori.La �gura 4.25 e la tabella 4.1 riportano i risultati ottenuti con i due criteri.Sarebbe corretto calcolare l'ordine di aggiunta di tutti i punti intorno allaruga ogni volta che viene aggiunto un nuovo punto, ma ancora una volta l'o-nere computazionale che ne deriverebbe ha portato a valutare il punteggio diun punto una sola volta quando viene `toccato' dalla ruga. Un'altra appros-simazione può essere: per ogni punto si calcolano i punteggi, poi si visitanoricorsivamente i punti in base al punteggio, e si generano nuovi punteggi. Inpratica si testa prima il punto migliore immediatamente adiacente al puntocorrente, anche se ci sarebbero punteggi migliori vicino ad altri punti, cheverranno visitati alla �ne della ricorsione. Questa imprecisione non è peròcosì grave: in fondo il punteggio stesso usato è poco preciso e ha valore pu-ramente indicativo; l'importante è valutare comunque tutti i punti.

Possibili ottimizzazioni

Una volta de�nito l'algoritmo, si possono eseguire diverse ottimizzazioniper rendere l'implementazione più veloce.La regressione lineare potrebbe essere calcolata incrementalmente man ma-

Page 87: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

4.6. ALTRI ALGORITMI 79

Figura 4.25: Risultati partendo da linee rilevate morfologicamente; le imma-gini sopra si riferiscono ai risultati usando punteggi basati su luminiosità,quelli inferiori si riferiscono ai risultati usando punteggi basati su test chi2

Page 88: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

80 CAPITOLO 4. L'ALGORITMO DI ANALISI DELLE IMMAGINI

no che vengono aggiunti i punti. Bisogna valutare se questa ottimizzazionesia conveniente perché la regressione viene fatta sempre e comunque con unnumero limitato di punti (quelli in un intorno) e quindi il costo della regres-sione non aumenta con le dimensioni dell'immagini, mentre un algoritmo piùcomplesso potrebbe degradare le prestazioni con pochi punti. inoltre, semprea causa dell'analisi locale, oltre al calcolo parziale aggiungendo punti bisognaconsiderare la possibilità di calcolo parziale rimuovendo i punti dall'insiemedi test (prove sperimentali e implementazione di�erenziale rinviate a futurilavori). Il calcolo dei punti che appartengono all'intorno sottopone a testtutti i punti della ruga, forse potrebbe essere ottimizzato (anche per questosi rimanda a futuri lavori).

ConclusioniQuesta tecnica si è rilevata particolarmente complessa sia concettualmen-

te che dal punto di vista computazionale, per cui è stata temporaneamentescartata per favorire strade più agevoli e promettenti.L'implementazione Matlab è riportata in appendice D.5.

Tipo di test Tempo RugheRicerca a partire da tutti i punti 97 468Ricerca senza partire dai punti già assegnati 3 50Unione Rughe 418 da 468 a 413Ricerca partendo con linee rilevate morfologicamente 40 164Come sopra, ma punteggio basato su chi2 test 68 164Ricerca partendo con linee rilevata dalle orientazioni 4 54

Tabella 4.1: Risultati delle prove e�ettuate

Page 89: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

Capitolo 5

Risultati

Lo scopo di questa tesi era individuare algoritmi per l'elaborazione delleimmagini della pelle acquisite tramite un sensore capacitivo. Il risultato deglistudi compiuti ha condotto a un processo che prende in input un'immagineacquisita e restituisce delle features correlate con l'età. Segue una descrizionedei risultati sperimentali conseguiti.Per la valutazione della qualità dei risultati si è tenuto conto di:

• coe�ciente di correlazione tra l'età anagra�ca e le features

• centroidi e barre di errore delle classi ottenute raggruppando i campioniper fasce di età di 10 anni ciascuna

• analisi dei residui, in particolare deviazione standard dei Residui

• pendenza della retta di regressione

Tutti i gra�ci riportati mostrano le features normalizzate tra 0 e 100 in fun-zione dell'età anagra�ca. Viene riportato il gra�co dei valori e dei residui,sul gra�co dei valori si riporta anche la retta di regressione, i baricentri delleclassi (rappresentati da un cerchietto) e le barre di errore.

81

Page 90: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

82 CAPITOLO 5. RISULTATI

5.1 Granulometrie estratte da segmentazione

Watershed

In �gura 5.1 è riportato il risultato ottenuto con scelta automatica del-la soglia H con l'algoritmo basato su distribuzione H. Fra le varie featuresestratte dalla curva granulometrica quella che ha prodotto risultati migliorisi è confermata essere quella proposta in [47] e qui indicata con P1Ynorm.Il risultato è decisamente buono: il coe�ciente di correlazione è un pò su-

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=−0.80446 Autovalori=89.3052,839.7126

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25Residui − Correlazione=−0.16598

Correlazione: 80,4%, Dev. St. Residui: 9,45Asse X: età anagra�ca, Asse Y: feature normalizzata.

Figura 5.1: Feature P1Ynorm, ottenuta con la soglia H generatadall'algoritmo basato su distribuzione H.

periore all'80% la distribuzione dei punti è omogenea e ben distribuita lungouna fascia, come è sottolineato anche dalle barre di errore, che hanno tuttepiù o meno la stessa lunghezza. I centroidi sono abbastanza allineati, ad ecce-zione dell'intervallo tra 40 e 50, dove si osserva un leggero scalino. I risultatinon sono molto buoni per età inferiori a 10 e superiori a 90, ma bisogna sot-tolineare che queste classi di età contengono solo 2 soggetti, e quindi non puòessere dato troppo peso ai valori calcolati per queste classi. Inoltre, anche sele classi contenessero più soggetti, sarebbe ugualmente tollerabile un erroremaggiore, visto che si tratta di casi `estremi'; soprattutto per i bambini, chesono in fase di sviluppo e crescita, è lecito aspettarsi comportamenti anomali.

Page 91: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

5.1. GRANULOMETRIE ESTRATTE DA SEGMENTAZIONEWATERSHED83

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=−0.80051 Autovalori=90.4779,830.1359

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25Residui − Correlazione=−0.10309

SogliaHY - Correlazione: 80,0%, Dev. St. Residui: 9,51

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=−0.80186 Autovalori=91.4294,850.5593

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25Residui − Correlazione=−0.11158

DeltaY - Correlazione: 80,1%, Dev. St. Residui: 9,56

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=−0.80136 Autovalori=90.2288,832.2352

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25Residui − Correlazione=−0.10312

Totale - Correlazione: 80,1%, Dev. St. Residui: 9,50Asse X: età anagra�ca, Asse Y: feature normalizzata.

Figura 5.2: Features SogliaHY, DeltaY e Totale ottenuta con la soglia Hgenerata dall'algoritmo basato su distribuzione H. Immagini commentate apagina 82

Page 92: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

84 CAPITOLO 5. RISULTATI

In �gura 5.2 sono riportati i risultati di altre features che hanno datobuoni risultati. Per tutte e tre le features (SogliaHY, DeltaY e Totale) si os-serva un andamento analogo, un pò peggiore delle feature P1Ynorm ma condiverse analogie. In particolare si può notare l'accentuazione dello scalinotra 40 e 50 anni. Come si può osservare, questo particolare andamento deicentroidi è comune a tutte le features, anche quelle che verranno presenta-te nei successivi gra�ci e generate in modo diverso. Questo lascia pensareche il gradino non sia dovuto a un problema delle features, ma sia legatoai particolari campioni usati, che producono questo andamento `spezzato'.Valgono le stesse considerazioni fatte sul gra�co precedente relativamente alcomportamento ai due estremi del gra�co. Il coe�ciente di correlazione ècomunque intorno all'80% per tutte queste features.Le �gure 5.3 e successive mostrano invece le rimanenti features calcolate.Queste altre features sono presentate in ordine decrescente di correlazione, eanche gli altri indicatori sottolineano la minore qualità dei risultati: maggio-re dispersione, maggiore presenza di outlier, l'andamento perde di linearità,i centroidi perdono l'allineamento, le barre tendono ad avere lunghezze nonomogene.

Page 93: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

5.1. GRANULOMETRIE ESTRATTE DA SEGMENTAZIONEWATERSHED85

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=−0.79676 Autovalori=92.2526,829.4107

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25Residui − Correlazione=−0.13639

P1Y - Correlazione: 79,6%, Dev. St. Residui: 9,60

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=−0.75112 Autovalori=106.498,751.8383

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25

30

35Residui − Correlazione=−0.18802

SogliaLY - Correlazione: 75,1%, Dev. St. Residui: 10,3

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=−0.74407 Autovalori=110.5299,756.8923

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25

30Residui − Correlazione=−0.29729

DeviazioneStandardY - Correlazione: 80,1%, Dev. St. Residui: 9,50Asse X: età anagra�ca, Asse Y: feature normalizzata.

Figura 5.3: Features P1Y, SogliaLY e DeviazioneStandardY, Immaginicommentate a pagina 88

Page 94: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

86 CAPITOLO 5. RISULTATI

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=0.73478 Autovalori=119.1698,791.1988

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25

30

35Residui − Correlazione=−0.058725

SogliaHX - Correlazione: 73,4%, Dev. St. Residui: 10,9

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=0.73277 Autovalori=110.907,719.4753

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25

30

35Residui − Correlazione=0.054856

SogliaHX - Correlazione: 73,2%, Dev.e St. Residui: 10,5

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=0.73137 Autovalori=123.2429,812.6488

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25

30

35Residui − Correlazione=−0.028272

SogliaHX - Correlazione: 73,1%, Dev. St. Residui: 11,1Asse X: età anagra�ca, Asse Y: feature normalizzata.

Figura 5.4: Features P1X, mediaX e SogliaHX. Immagini commentate apagina 88

Page 95: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

5.1. GRANULOMETRIE ESTRATTE DA SEGMENTAZIONEWATERSHED87

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=0.72414 Autovalori=127.5707,818.8752

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25

30

35Residui − Correlazione=−0.041906

DeltaX - Correlazione: 72,4%, Dev. St. Residui: 11,3

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=0.70292 Autovalori=133.0464,773.8295

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25

30

35Residui − Correlazione=−0.0024605

DeviazioneStandardX - Correlazione: 70,2%, Dev. St. Residui: 11,5

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=0.68647 Autovalori=118.0828,640.378

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25

30

35

40Residui − Correlazione=0.058741

SogliaLX - Correlazione: 68,6%, Dev. St. Residui: 10,8Asse X: età anagra�ca, Asse Y: feature normalizzata.

Figura 5.5: Features DeltaX, DeviazioneStandardX e SogliaLX. Immaginicommentate a pagina 88

Page 96: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

88 CAPITOLO 5. RISULTATI

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=0.66154 Autovalori=142.4703,700.5495

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25

30Residui − Correlazione=0.0045653

P1Ynorm - Correlazione: 66,1%, Dev. St. Residui: 11,9Asse X: età anagra�ca, Asse Y: feature normalizzata.

Figura 5.6: Features P1Xnorm. Immagini commentate a pagina 88

Le Features P1Y, SogliaLY e DeviazioneStandardY mostrano comunqueuna certa correlazione con l'età, anche se non eccellente.Le features P1X, mediaX, SogliaHX, DeltaX, DeviazioneStandardX, So-

gliaLX e P1Xnorm hanno la particolarità di avere pendenza positiva, mentretutte le altre hanno pendenza negativa; inoltre sono accomunate anche dalfatto che le barre degli errori crescono abbastanza progressivemente con l'e-tà. E' interessante notare che anche i residui tendono ad avere correlazionemaggiore in queste features. I risultati non sono buoni, ma questo gruppodi features ha anche la peculiarità di un ridotto gradino nell'intervallo 40-50 anni, in alcune di queste features addirittura l'andamento dei centroidi èmonotono (almeno nella zona centrale).

Page 97: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

5.1. GRANULOMETRIE ESTRATTE DA SEGMENTAZIONEWATERSHED89

Anche l'algoritmo per la scelta della soglia H a due passate ha dato ottimirisultati; in �gura 5.7 si riportano i risultati della sola feature P1Ynorm,senza ripetere le considerazioni fatte per tutte le altre features calcolate, chesi comportano in modo perfettamente analogo a quanto già visto. Il punto a

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=−0.82201 Autovalori=81.596,851.8343

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25Residui − Correlazione=−0.048005

P1Ynorm - Correlazione: 82,2%, Dev. St. Residui: 9,03Asse X: età anagra�ca, Asse Y: feature normalizzata.

Figura 5.7: Feature P1Ynorm, ottenuta scegliendo H con l'algoritmo a 2passate

favore di questo risultato è certamente la correlazione molto alta: superioreall' 82%. Anche il comportamento in prossimità dell'intervallo 40-50 anni èdecisamente buono, in questa feature l'andamento dei centroidi è monotonoe regolare. La monotonia viene persa solo per le due classi ai due estremidel gra�co, la regolarità si a�evolisce solo nella parte centrale del gra�co,ma, come si è già detto, questi difetti sono comuni a tutte le features epresumibilmente sono legate anche ai particolari campioni usati.

Page 98: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

90 CAPITOLO 5. RISULTATI

5.2 Granulometria H-min

Quello della granulometria H-min è un risultato indipendente dai prece-denti, e introduce nuove features.In �gura 5.8 è riportata la feature DeviazioneStandardY, generata dalla di-stribuzione granulometrica basata sul numero di oggetti. Questa feature è

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=−0.80346 Autovalori=90.1493,844.2205

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25Residui − Correlazione=−0.039039

DeviazioneStandardY - Correlazione: 80,3%, Dev. St. Residui: 9,49Asse X: età anagra�ca, Asse Y: feature normalizzata.

Figura 5.8: Feature DeviazioneStandardY, ottenuta con granulometria H-min. Asse X: età anagra�ca, Asse Y: feature normalizzata

molto interessante perché, oltre ad o�rire risultati paragonabili e con ca-ratterisitche analoghe a quelli già visti, ha il pregio di non aver bisogno disegmentazione, quindi il processo che genera questa feature non è in�uen-zato da alcuni parametri critici come la soglia H. Questo pregio è ancheil limite di questa feature: si tratta di un risultato `maturo', che di�cil-mente può essere migliorato ulteriormente, mentre le features generate daimmagini segmentate possono essere migliorate ancora molto se si migliorala segmentazione.

Page 99: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

5.3. DEVIAZIONE STANDARD LOCALE 91

5.3 Deviazione standard locale

Anche la feature generata tramite la deviazione standard locale è un ri-sultato un pò a sè stante rispetto agli altri riportati. Il miglior risultato inquesto settore è rappresentato dalla feature basata su di�erenza descritta in4.5.3, usando un intorno grande di 32 pixel e un intorno piccolo di 4 pixel.La �gura 5.9 mostra i risultati ottenuti. Come la precedente, ha il pregio

0 10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

90

100Correlazione=−0.76268 Autovalori=98.0728,728.6056

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

20

25

30Residui − Correlazione=0.085326

Dev. St. Locale - Correlazione: 76,2%, Dev. St. Residui: 9,9Asse X: età anagra�ca, Asse Y: feature normalizzata.

Figura 5.9: Feature Deviazione Standard Locale. Asse X: età anagra�ca,Asse Y: feature normalizzata

di non richiedere la segmentazione dell'immagine, ma introduce due ulterioriparametri (anche se non particolarmente critici), in questo caso i risultatisono buoni ma non particolarmente eccellenti: si osserva un coe�ciente dicorrelazione del 76%, la distribuzione non è una fascia molto regolare, inoltrele barre di errore per le classi di persone anziane tendono a diventare piùgrandi. Questo non signi�ca che questo risultato sia da buttare: poichè èstato generato con un metodo radicalmente diverso da tutte le altre features,potrebbe rivelare interessanti sviluppi quando, nei lavori futuri, i risultativerranno combinati inisieme.

Page 100: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

92 CAPITOLO 5. RISULTATI

Page 101: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

Capitolo 6

Conclusioni e lavori futuri

Questa tesi ha trattato il processo di elaborazione di immagini della pelleacquisite tramite un sensore capacitivo �nalizzato allo studio dell'invecchia-mento della pelle. Si tratta di una pubblicazione completamente innovativa:non esiste in letteratura un'altra trattazione che de�nisce un processo com-pletamente automatico per caratterizzare l'età della pelle partendo da im-magini generate da semplici sensori capacitivi. Un accurato studio dei lavorigià svolti, dei loro punti di forza e dei loro punti deboli, un approfondimentodella teoria e dello stato dell'arte degli strumenti disponibili, sperimentazio-ni fatte per comprendere bene quali strumenti usare e in che modo, hannopermesso di migliorare l'intero processo di analisi e elaborazione.I risultati ottenuti possono essere riassunti nei seguenti punti:

• De�nizione di nuovi algoritmi speci�ci per il contesto applicativo, inparticolare algoritmi di �ltraggio e di selezione automatica dei parame-tri

• identi�cazione di nuove features correlate con l'eta

• miglioramento delle features già utilizzate

Molte questioni sono ancora aperte e richiederanno ulteriori approfondimenti;alcuni possibili approfondimenti promettono risultati ancora migliori:

• Miglioramento del processo di segmentazione delle celle

93

Page 102: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

94 CAPITOLO 6. CONCLUSIONI E LAVORI FUTURI

• Miglioramento degli algoritmi per la selezione automatica del parame-tro H.

• Studio delle granulometrie basate su area direttamente su immagini intoni di grigio, usando algoritmi ottimizzati

• Studio più approfondito della morfologia delle rughe.• Analisi statistica dei risultati ottenuti elaborando molti campioni• Integrazione di tutti risultati ottenuti.

In�ne bisogna dire che gli studi e�ettuati �nora si sono concentrati preva-lentemente sullo studio della pelle in funzione dell'età, gli strumenti a di-sposizione possono essere usati anche per lo studio di altre caratteristichebiometriche, in particolare le immagini prodotte dal sensore capacitivo sonoparticolarmente adatte allo studio dell'idratazione. Si conclude che i risultatiottenuti, comunque buoni, possono essere considerati soltanto incoraggiantirisultati preliminari, e il lavoro da svolgere è solo agli inizi.

Page 103: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

Appendice A

Momenti e distribuzioni

Data una distribuzione a valori discreti xi, si de�nisce momento di ordinek: ∑

i (xi − x̄)k

n

dove x̄ è il valore atteso, n il numero di valori. Da questa de�nizione derivanole formule di varianza, skewness e kurtosis, corrispondenti ai momenti delsecondo, terzo e quarto ordine. Nel caso discreto ci sono alcune variantipossibili nelle de�nizioni (alcuni preferiscono dividere per n, altri per n-1);riportiamo quelle usate:Varianza, intuitivamente misura quanto una distribuzione è `larga'

σ2 =

∑i (xi − x̄)2

n− 1

Skewness, intuitivamente misura quanto una distribuzione è `asimmetrica':

s =

∑i (xi − x̄)3

(n− 1)σ3

Kurtosis, intuitivamente misura se una distribuzione è `piatta' o `appuntita':

k =

∑i (xi − x̄)4

(n− 1)σ4

95

Page 104: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

96 APPENDICE A. MOMENTI E DISTRIBUZIONI

Page 105: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

Appendice B

Regressioni lineari

Date le distribuzioni generate da variabile aleatoria X e un'altra variabileY dipendente da X, è possibile stimare la legge che lega Y e X con unaregressione, in particolare con una regressione lineare. Anche nel caso di duevariabili X e Y correlate è possibile stimare una regressione lineare, ma inquesto caso il calcolo va fatto in modo diverso: sarebbe un errore considerarele variabili X e Y una in funzione dell'altra anche nel caso di correlazione1.Il metodo corretto è un caso particolare della trasformata di Karhunen-Loeve,che proietta uno spazio N-dimensionale in uno di dimensione inferiore.Dato un insieme di punti P, il valor medio x̄ e la matrice di co-varianza C,è possibile calcolare la matrice di proiezione Ψ composta dagli autovettoricorrispondenti agli n autovalori maggiori, dove n è la dimensione dello spaziodi proiezione. La proiezione y e la proiezione inversa x' si calcolano con leseguenti formule:

y = ΨT (x− x̄)

x′ = Ψy + x̄ = ΨΨT (x− x̄) + x̄

e si dimostra che si tratta della trasformazione che minimizza la quantità∑x∈P

(x− x′)2

1In Matlab, questo signi�ca che non è corretto usare la funzione reglin

97

Page 106: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

98 APPENDICE B. REGRESSIONI LINEARI

E quindi si tratta proprio della regressione lineare.Gli autovalori corrispondono alla varianza lungo la direzione corrispondente,e misurano gli assi dell'elissoide di inerzia dei punti.

Page 107: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

Appendice C

Note, Curiosità e Bug di Matlab

Usando intensivamente per diversi mesi l'ambiente Matlab 6.5 con l'Ima-ges Processing Toolbox 4.1 si sono osservati alcuni comportamenti inaspet-tati. Non possono essere considerati veri e propri bug, ma a volte possonoprodurre risultati imprevisti; a parte questo Matlab si è rivelato, comunque,un ottimo strumento di lavoro.

Se lo structure element in un'operazione morfologica ha l'elemento cen-trale a 0 l'operazione morfologica viene eseguita con lo structure elementtrasposto rispetto agli assi. Non è ben chiaro se sia un e�etto voluto o unbug dovuto a qualche ottimizzazione.

Il valore di alcune variabili, visualizzato sui gra�ci, può dare valori leg-germente diversi, probabilmente nel gra�co i double vengono approssimati(sono state osservate alterazioni sulla quarta cifra signi�cativa).

Se si rimuove una regione da una label matrix bisogna ri-etichettarlacon bwlabel prima di passarla al comando regionprops; ovvero le etichettedelle regioni non possono essere interi arbitrari, ma devono essere una suc-cessione ininterrotta. altrimenti la funzione regionprops può non funzionarecorrettamente.

99

Page 108: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

100 APPENDICE C. NOTE, CURIOSITÀ E BUG DI MATLAB

Page 109: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

Appendice D

Implementazione Matlab degli

algoritmi usati

D.1 Normalizzazione

function out=normalizza(in,s,gamma,r);

% normalizza un'immagine

% output=normalizza(input,[nero bianco],gamma,raggio) oppure

% output=normalizza(input,sigma,gamma,raggio)

% nero e bianco sono le frazioni di pixel da rimuovere ai bordi

% dell'istogramma, invece sigma è la deviazione standard

parametri=ParametriPredefiniti;

if (nargin<2) s=parametri.s; end;

if (nargin<3) gamma=parametri.gamma; end;

if (nargin<4) r=parametri.r; end;

in=double(in);

kernel=ones(r)/r^2; % possibile miglioramento: kernel rotondo

media=imfilter(in,kernel,'same','symmetric');

dev=sqrt(imfilter((in-media).^2,kernel,'same','symmetric'));

out=(in-media)./dev;

if (s(1)>1),

out=(out*s+128)/255;

101

Page 110: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

102APPENDICE D. IMPLEMENTAZIONEMATLAB DEGLI ALGORITMI USATI

out=imadjust(out,[0 1],[0 1],gamma);

else

%cambio di scala per riportare i valori tra 0 e 1

minimo=min(out(:));

massimo=max(out(:));

out=(out-minimo)/(massimo-minimo);

out=imadjust(out,stretchlim(out,s),[0 1],gamma);

end;

if (nargout==0)

figure;imshow(out);

end;

D.2 Algoritmi di �ltraggio

function out=lineOpen(in,lunghezza,larghezza)

% rileva le linee con apertura morfologica

if (nargin<2) lunghezza=7; end;

if lunghezza==0

out=in;

return;

end;

if (nargin<3) larghezza=1; end;

if (lunghezza<larghezza) error('lunghezza deve essere maggiore di larghezza'); end;

orientazioni=round(lunghezza*pi/2);

sepiccolo=ones(larghezza);

for i=1:orientazioni,

%crezione dello structure element. per linee spesse bisogna allargare

%lo structure element

temp=getnhood(strel('line',lunghezza,180*i/orientazioni));

temp=padarray(temp,[larghezza larghezza],0,'both');

s=size(temp);

se=zeros(s+2*larghezza);

Page 111: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

D.2. ALGORITMI DI FILTRAGGIO 103

se(larghezza+1:s(1)+larghezza,larghezza+1:s(2)+larghezza)=temp;

se=imdilate(se,sepiccolo);

%filtraggio vero e proprio

out(:,:,i)=imopen(in,se);

%figure, imshow(out(:,:,i));

end;

out=max(out,[],3);

if (nargout==0),

figure,imshow(out);

end;

function out=linereconstruct(in)

% combina i risultati di lineopen con varie parametrizzazioni

out=0;

i=0;

for larghezza=1:2,

for lunghezza=larghezza+1:larghezza+20,

out=out+lineopen(in);

i=i+1;

end;

end;

out=out/i;

if (nargout==0),

figure, imshow(out);

title('linereconstruct')

end;

function [out,dir,orientazioni]=lineFilter(in,lunghezza,larghezza)

% filtraggio gaussiano direzionale

parametri=parametriPredefiniti;

if (nargin<2) lunghezza=parametri.lunghezza; end;

if (nargin<3) larghezza=parametri.larghezza; end;

Page 112: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

104APPENDICE D. IMPLEMENTAZIONEMATLAB DEGLI ALGORITMI USATI

if (lunghezza<=larghezza) error('lunghezza deve essere maggiore di larghezza'); end;

k=3*lunghezza; % la campana gaussiana è lunga circa 3*sigma

orientazioni=round(k*pi/2); % le orientazioni distano circa 1 punto agli estremi della linea

k=round(k);

for n=1:orientazioni,

% crezione del kernel di convoluzione.

angolo=n*pi/orientazioni;

for i=1:2*k+1

for j=1:2*k+1

x=i-k-1;

y=j-k-1;

x1=x*sin(angolo)+y*cos(angolo);

y1=x*cos(angolo)-y*sin(angolo);

kernel(i,j)=exp(-(x1^2/lunghezza^2+y1^2/larghezza^2)/2);

end;

end;

kernel=kernel/sum(kernel(:));

% filtraggio vero e proprio

out(:,:,n)=conv2(in,kernel,'same');

% if (nargout==0),

% figure, imshow(out(:,:,n));

% end;

end;

[out,dir]=max(out,[],3);

out=imadjust(out,stretchlim(out,0.02),[0 1],1);

if (nargout==0),

figure,imshow(out);

dir(:,:,1)=(dir-1)/orientazioni;

dir(:,:,2)=ones(size(in));

dir(:,:,3)=dir(:,:,2);

dir=hsv2rgb(dir);

figure,imshow(dir);

end;

Page 113: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

D.3. SCELTA AUTOMATICA DEL PARAMETRO H 105

D.3 Scelta automatica del parametro H

function out=sogliaH(in)

n=0;

for i=0:0.01:0.99

n=n+1;

temp=imabsdiff(double(imcomplement(im2bw(ritaglia(segmenta(in,i))))),ritaglia(in));

distribuzione(n)=sum(temp(:));

end;

distribuzione=(max(distribuzione)-distribuzione)/size(temp(:),1);

statistiche=statisticheDistribuzione(distribuzione);

out=((statistiche.mediaX/100)-0.25)*0.9;

function h=sogliaH2(immagine,k1,k2)

if nargin<3 k1=1.6; k2=-0.2; end;

temp=imabsdiff(ritaglia(immagine),double(imcomplement(im2bw(ritaglia(segmenta(immagine))))));

h=max([(sum(temp(:))/size(temp(:),1))/k1+k2 0]);

if h==0

'attenzione: soglia 0, forse è necessario cambiare i parametri'

end;

D.4 Granulometrie

function [out,areaUtile]=granulometriaAreaBN(in,conn)

% granulometria di area, tenendo conto degli effetti di bordo

parametri=parametripredefiniti;

if (nargin<2), conn=parametri.conn; end;

%crea un marker per unire tutte le celle al bordo (andranno eliminate):

dimensioni=size(in);

for i=1:dimensioni(1),

in(i,1)=1;

in(i,dimensioni(2))=1;

end;

Page 114: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

106APPENDICE D. IMPLEMENTAZIONEMATLAB DEGLI ALGORITMI USATI

for i=2:dimensioni(2)-1,

in(1,i)=1;

in(dimensioni(1),i)=1;

end;

% si risegmenta, verra' generata una grossa cella di bordo. non e'

% sufficiente eliminare le celle di bordo perche' bisogna calcolare l'area

% effettiva utile, e per farlo bisogna considerare non solo l'area delle

% celle rimosse, ma anche l'area delle linee fra queste celle. creando un

% unica cella queste linee vengono inglobate nella cella di bordo ed e'

% possibile calcolarne l'area facilmente.

in=watershed(imcomplement(im2bw(in)),conn);

%statistiche=regionprops(in,'Area');

%areaTotale=sum([statistiche.Area]);

areaTotale=sum(in(:)>0); % questa riga rimpiazza le due precendenti

in=bwlabel(imclearborder(in,conn),conn);

statistiche=regionprops(in,'Area');

area=[statistiche.Area];

areaUtile=dimensioni(1)*dimensioni(2)-(areaTotale-sum(area));

massimo=max(area);

out(1:massimo)=0;

for i=1:size(area,2),

out(area(i))=out(area(i))+1;

end;

% commentare la seguente riga per disabilitare la compensazione di bordo

out=out/areaUtile;

if (nargout==0),

figure,plot(out);

end;

function out=granulometryclose(in,metodo,tipo,conn)

% rimozione grayscale di buchi in base a granulometrie

% vedi granulometryopen

if nargin<2, metodo='h'; end;

if nargin<3, tipo='NnAav'; end;

if nargin<4, conn=4; end;

Page 115: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

D.4. GRANULOMETRIE 107

out=granulometryopen(imcomplement(in),metodo,tipo,conn);

function out=granulometryopen(in,metodo,tipo,conn)

% rimozione grayscale di oggetti in base a granulometrie.

% metodo specifica il tipo di granulometria e può assumere i seguenti valori:

% 'a' area

% 'l' linee

% 'h' H min

% tipo specifica il tipo di risultato generato:

% 'N' numero di oggetti filtrati

% 'A' area

% 'n' numero di oggetti ridotti filtrati

% 'a' area ridotta

% 'v' volume filtrato

if nargin<2, metodo='h'; end;

if nargin<3, tipo='NnAav'; end;

if nargin<4, conn=4; end;

nmax=255;

n=0;

temp=in;

while( not(all(temp(:)==0)) & n<nmax )

if metodo=='a',

temp=areaopen(in,n,conn);

else if metodo=='l'

temp=lineopen(in,n);

else if metodo=='h'

temp=imhmax(in,n/255,conn);

end; end; end;

n=n+1;

%figure,imshow(temp);

if any(tipo=='N')|any(tipo=='n')

marker=imregionalmax(temp,conn);

label=bwlabel(marker,conn);

out.numero(n)=max(label(:));

if out.numero(n)==1

break;

Page 116: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

108APPENDICE D. IMPLEMENTAZIONEMATLAB DEGLI ALGORITMI USATI

end;

end;

if any(tipo=='n')

mappaNumero(:,:,2)=marker*n;

mappaNumero(:,:,1)=max(mappaNumero,[],3);

end;

if any(tipo=='A')|any(tipo=='a')

mappa=(abs(in-temp)<1/255);

out.area(n)=bwarea(mappa);

if out.area(n)==0

break;

end;

end;

if any(tipo=='a')

mappaArea(:,:,2)=mappa*n;

mappaArea(:,:,1)=max(mappaArea,[],3);

end;

if any(tipo=='v')

out.volume(n)=sum(temp(:));

end;

end;

%if any(tipo=='N')

% out.numero=derivata(-out.numero);

%end;

if any(tipo=='n')

out.mappaNumero=mappaNumero(:,:,1);

for i=1:n,

label=bwlabel(out.mappaNumero==i,conn);

out.numeroRidotto(i)=bweuler(out.mappaNumero==i,conn);

end;

end;

%if any(tipo=='A')

% out.area=derivata(-out.area);

%end;

if any(tipo=='a')

out.mappaArea=mappaArea(:,:,1);

for i=1:n,

out.areaRidotta(i)=bwarea(out.mappaArea==i);

Page 117: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

D.4. GRANULOMETRIE 109

end;

end;

if any(tipo=='v')

out.volume=derivata(-out.volume);

end;

function out=areaopen(in,area,conn)

% rimuove gli oggetti inferiori a una certa area da immagini grayscale

if nargin<3, conn=4; end;

out=0;

valori=sort(valoridistinti([in(:);0]));

for i=2:size(valori,2),

out=out+(valori(i)-valori(i-1))*double(bwareaopen(im2bw(in,valori(i)),area,conn));

end;

if (nargout==0),

figure,imshow(out);

title('area open');

end;

function out=valoridistinti(in,n);

% crea un elenco contenente tutti i valori dati in input senza ripetizioni

% per limitare i conti si approssima a un numero finito di valori

in=mat2gray(double(uint8(in(:)*64)));

out(1)=in(1);

if (size(in,1)>1),

n=2;

for i=2:size(in,1),

if (all(in(i)~=out)),

out(n)=in(i);

n=n+1;

end;

end;

end;

Page 118: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

110APPENDICE D. IMPLEMENTAZIONEMATLAB DEGLI ALGORITMI USATI

D.5 Linelabel

function out=traccia(in);

% test 1 e 2: (non) riparte da tutti i punti

global sogliavalore;

sogliavalore=0.5;

global sogliaprobabilita;

sogliaprobabilita=0.5;

global direzioni;

direzioni=[0 -1;0 1;1 -1; -1 1;-1 0;1 0;-1 -1;1 1];

global tabellachi2;

tabellachi2=chi2inv(sogliaprobabilita,1:100);

% bisogna sperare che non sia necessaria una tabella piu grande....

global puntiiniziali;

puntiiniziali=padarray(in,[1 1],0,'both');

dimensioni=size(in);

out.l=[];

numerolinea=0;

global puntidafare;

for x0=2:dimensioni(1)+1

for y0=2:dimensioni(2)+1

if puntiiniziali(x0,y0)>sogliavalore

numerolinea=numerolinea+1;

out.l(numerolinea).l(1,:)=[x0,y0];

puntidafare=puntiiniziali;

puntidafare(x0,y0)=0;

out.l(numerolinea).l=aggiungipunti(out.l(numerolinea).l,x0,y0);

end;

end;

end;

% le linee vengono misurate e viene creata una mappa con le etichette.

[out.mappa,out.punteggio]=calcolamappa(out.l,dimensioni);

if nargout==0

figure,imshow(label2rgb(out.mappa));

figure,imshow(mat2gray(out.punteggio));

end;

function l=aggiungipunti(l,x,y);

global sogliavalore;

Page 119: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

D.5. LINELABEL 111

global puntidafare;

global puntiiniziali;

global direzioni;

for i=1:8, % cambiare in base al tipo di connettività

valorecandidato=puntidafare(x+direzioni(i,1),y+direzioni(i,2));

if valorecandidato>sogliavalore

punteggio(i)=valorecandidato;

puntidafare(x+direzioni(i,1),y+direzioni(i,2))=0;

else

punteggio(i)=0;

end;

end;

% la funzione si chiama ricorsivamente partendo dai punti con punteggio

% più elevato, l'ordinamento ha un costo basso perchè sono al massimo 8

% punti

[punteggioordinato,indice]=sort(punteggio);

i=8;

while i & punteggioordinato(i)>0

x0=x+direzioni(indice(i),1);

y0=y+direzioni(indice(i),2);

lvicini=puntivicini(l,x0,y0);

if chi2test([x0 y0;lvicini])

l(size(l,1)+1,:)=[x0 y0];

l=aggiungipunti(l,x0,y0);

%puntiiniziali(x0,y0)=0; % evita di far ripartire la

%ricerca dai punti che appartengono a un'altra ruga

end;

i=i-1;

end;

function superato=chi2test(l)

global tabellachi2;

n=size(l,1);

if n==2

superato=1;

else

distanze=calcoladistanze(l);

if distanze(1)>1

superato=0;

Page 120: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

112APPENDICE D. IMPLEMENTAZIONEMATLAB DEGLI ALGORITMI USATI

else

v=varianza(distanze);

if v==0, superato=1;

else if sum(distanze.^2)/v>tabellachi2(n-2), superato=1;

else superato=0;

end; end;

end;

end;

function out=traccia(in);

% test 3: parte da linee morfologiche

global sogliavalore;

sogliavalore=0.5;

global sogliaprobabilita;

sogliaprobabilita=0.5;

global direzioni;

direzioni=[0 -1;0 1;1 -1; -1 1;-1 0;1 0;-1 -1;1 1];

global tabellachi2;

tabellachi2=chi2inv(sogliaprobabilita,1:100);

% bisogna sperare che non sia necessaria una tabella piu grande....

global puntiiniziali;

puntiiniziali=padarray(in,[1 1],0,'both');

dimensioni=size(in);

%viene definito un insieme di linee di partenza con imerode e imdilate

lunghezza=7;

orientazioni=round(lunghezza*pi/4);

numerolinee=0;

for i=1:orientazioni,

%crezione dello structure element.

se=strel('line',lunghezza,180*i/orientazioni);

%filtraggio vero e proprio

immaginefiltrata=imerode(puntiiniziali,se);

%generazione delle linee iniziali

se=getnhood(se);

centro=ceil(size(se)/2);

[sex,sey]=find(sparse(se));

sex=sex-centro(1);

sey=sey-centro(2);

for x0=1+centro(1):dimensioni(1)-centro(1)

for y0=1+centro(2):dimensioni(2)-centro(2)

Page 121: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

D.5. LINELABEL 113

if immaginefiltrata(x0,y0)>sogliavalore

numerolinee=numerolinee+1;

for i=1:size(sex,1)

out.l(numerolinee).l(i,:)=[x0+sex(i),y0+sey(i)];

immaginefiltrata(x0+sex(i),y0+sey(i))=0;

end;

end;

end;

end;

end;

%le linee vengono estese per via morfologica

global puntidafare;

for i1=1:numerolinee

puntidafare=puntiiniziali;

for i2=1:size(out.l(i1).l,1)

puntidafare(out.l(i1).l(i2))=0;

end;

for i2=1:size(out.l(i1).l,1)

out.l(i1).l=aggiungipunti(out.l(i1).l,out.l(i1).l(i2,1),out.l(i1).l(i2,2));

end;

end;

% le linee vengono misurate e viene creata una mappa con le etichette.

[out.mappa,out.punteggio]=calcolamappa(out.l,dimensioni);

if nargout==0

figure,imshow(label2rgb(out.mappa));

figure,imshow(mat2gray(out.punteggio));

end;

function l=aggiungipunti(l,x,y);

global sogliavalore;

global puntidafare;

global puntiiniziali;

global direzioni;

for i=1:8, % cambiare in base al tipo di connettività

valorecandidato=puntidafare(x+direzioni(i,1),y+direzioni(i,2));

if valorecandidato>sogliavalore

punteggio(i)=valorecandidato;

puntidafare(x+direzioni(i,1),y+direzioni(i,2))=0;

else

Page 122: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

114APPENDICE D. IMPLEMENTAZIONEMATLAB DEGLI ALGORITMI USATI

punteggio(i)=0;

end;

end;

% la funzione si chiama ricorsivamente partendo dai punti con punteggio

% più elevato, l'ordinamento ha un costo basso perchè sono al massimo 8

% punti

[punteggioordinato,indice]=sort(punteggio);

i=8;

while i & punteggioordinato(i)>0

x0=x+direzioni(indice(i),1);

y0=y+direzioni(indice(i),2);

lvicini=puntivicini(l,x0,y0);

if chi2test([x0 y0;lvicini])

l(size(l,1)+1,:)=[x0 y0];

l=aggiungipunti(l,x0,y0);

%puntiiniziali(x0,y0)=0; % evita di far ripartire la

%ricerca dai punti che appartengono a un'altra ruga

end;

i=i-1;

end;

function superato=chi2test(l)

global tabellachi2;

n=size(l,1);

if n==2

superato=1;

else

distanze=calcoladistanze(l);

if distanze(1)>1

superato=0;

else

v=varianza(distanze);

if v==0, superato=1;

else if sum(distanze.^2)/v>tabellachi2(n-2), superato=1;

else superato=0;

end; end;

end;

end;

function out=traccia(in);

Page 123: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

D.5. LINELABEL 115

% test 5: sceglie l'ordine di aggiunta punti in base a probabilità chi2

global sogliavalore;

sogliavalore=0.5;

global sogliaprobabilita;

sogliaprobabilita=0.5;

global direzioni;

direzioni=[0 -1;0 1;1 -1; -1 1;-1 0;1 0;-1 -1;1 1];

global tabellachi2;

tabellachi2=chi2inv(sogliaprobabilita,1:100);

% bisogna sperare che non sia necessaria una tabella piu grande....

global puntiiniziali;

puntiiniziali=padarray(in,[1 1],0,'both');

dimensioni=size(in);

%viene definito un insieme di linee di partenza con imerode e imdilate

lunghezza=7;

orientazioni=round(lunghezza*pi/4);

numerolinee=0;

for i=1:orientazioni,

%crezione dello structure element.

se=strel('line',lunghezza,180*i/orientazioni);

%filtraggio vero e proprio

immaginefiltrata=imerode(puntiiniziali,se);

%generazione delle linee iniziali

se=getnhood(se);

centro=ceil(size(se)/2);

[sex,sey]=find(sparse(se));

sex=sex-centro(1);

sey=sey-centro(2);

for x0=1+centro(1):dimensioni(1)-centro(1)

for y0=1+centro(2):dimensioni(2)-centro(2)

if immaginefiltrata(x0,y0)>sogliavalore

numerolinee=numerolinee+1;

for i=1:size(sex,1)

out.l(numerolinee).l(i,:)=[x0+sex(i),y0+sey(i)];

immaginefiltrata(x0+sex(i),y0+sey(i))=0;

end;

end;

end;

end;

Page 124: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

116APPENDICE D. IMPLEMENTAZIONEMATLAB DEGLI ALGORITMI USATI

end;

%le linee vengono estese per via morfologica

global puntidafare;

for i1=1:numerolinee

puntidafare=puntiiniziali;

for i2=1:size(out.l(i1).l,1)

puntidafare(out.l(i1).l(i2))=0;

end;

for i2=1:size(out.l(i1).l,1)

out.l(i1).l=aggiungipunti(out.l(i1).l,out.l(i1).l(i2,1),out.l(i1).l(i2,2));

end;

end;

% le linee vengono misurate e viene creata una mappa con le etichette.

[out.mappa,out.punteggio]=calcolamappa(out.l,dimensioni);

if nargout==0

figure,imshow(label2rgb(out.mappa));

figure,imshow(mat2gray(out.punteggio));

end;

function l=aggiungipunti(l,x,y);

global sogliavalore;

global puntidafare;

global puntiiniziali;

global direzioni;

for i=1:8, % cambiare in base al tipo di connettività

x0=x+direzioni(i,1);

y0=y+direzioni(i,2);

valorecandidato=puntidafare(x0,y0);

if valorecandidato>sogliavalore

punteggio(i)=chi2([x0 y0;puntivicini(l,x0,y0)]);

puntidafare(x0,y0)=0;

else

punteggio(i)=0;

end;

end;

% la funzione si chiama ricorsivamente partendo dai punti con punteggio

% più elevato, l'ordinamento ha un costo basso perchè sono al massimo 8

% punti

[punteggioordinato,indice]=sort(punteggio);

Page 125: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

D.5. LINELABEL 117

i=8;

while i & punteggioordinato(i)>0

x0=x+direzioni(indice(i),1);

y0=y+direzioni(indice(i),2);

lvicini=puntivicini(l,x0,y0);

if chi2test([x0 y0;lvicini])

l(size(l,1)+1,:)=[x0 y0];

l=aggiungipunti(l,x0,y0);

%puntiiniziali(x0,y0)=0; % evita di far ripartire la

%ricerca dai punti che appartengono a un'altra ruga

end;

i=i-1;

end;

function superato=chi2test(l)

global tabellachi2;

n=size(l,1);

if n==2

superato=1;

else

distanze=calcoladistanze(l);

if distanze(1)>1

superato=0;

else

v=varianza(distanze);

if v==0, superato=1;

else if sum(distanze.^2)/v>tabellachi2(n-2), superato=1;

else superato=0;

end; end;

end;

end;

function out=chi2(l)

global sogliaprobabilita

n=size(l,1);

if n==2

out=1;

else

distanze=calcoladistanze(l);

Page 126: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

118APPENDICE D. IMPLEMENTAZIONEMATLAB DEGLI ALGORITMI USATI

if distanze(1)>1

out=0;

else

v=varianza(distanze);

if v==0, out=1;

else

out=chi2cdf(sum(distanze.^2)/v,n-2);

if out<sogliaprobabilita, out=0; end;

end;

end;

end;

function out=traccia(in);

% test 6: parte da linee basate su orientazione

global sogliavalore;

sogliavalore=0.5;

global sogliaprobabilita;

sogliaprobabilita=0.5;

global direzioni;

direzioni=[0 -1;0 1;1 -1; -1 1;-1 0;1 0;-1 -1;1 1];

global tabellachi2;

tabellachi2=chi2inv(sogliaprobabilita,1:100);

% bisogna sperare che non sia necessaria una tabella piu grande....

dimensioni=size(in);

% viene definito un insieme di linee di partenza con un linefilter

lunghezza=2;

larghezza=0.7;

k=3*lunghezza;

orientazioni=round(k*pi/2); % le orientazioni distano circa 1 punto agli estremi della linea

k=round(k);

for n=1:orientazioni,

angolo=n*pi/orientazioni;

for i=1:2*k+1

for j=1:2*k+1

x=i-k-1;

y=j-k-1;

x1=x*sin(angolo)+y*cos(angolo);

y1=x*cos(angolo)-y*sin(angolo);

kernel(i,j)=exp(-(x1^2/lunghezza^2+y1^2/larghezza^2)/2);

Page 127: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

D.5. LINELABEL 119

end;

end;

kernel=kernel/sum(kernel(:));

temp(:,:,n)=conv2(in,kernel,'same');

end;

global puntiiniziali;

puntiiniziali=padarray(in,[1 1],0,'both');

[immaginefiltrata,mappadirezioni]=max(temp,[],3);

immaginefiltrata=padarray(immaginefiltrata,[1 1],0,'both');

mappadirezioni=padarray(mappadirezioni,[1 1],0,'both');

out.l=[];

numerolinee=0;

for i=1:orientazioni

temp=bwlabel(bwareaopen((mappadirezioni==i|mappadirezioni==mod(i+1,orientazioni))

&(puntiiniziali>sogliavalore),5));

%figure,imshow(label2rgb(temp));

lunghezzarughe=zeros(max(temp(:)),1);

for x=2:dimensioni(1)-1

for y=2:dimensioni(2)-1

if temp(x,y)>0

lunghezzarughe(temp(x,y))=lunghezzarughe(temp(x,y))+1;

out.l(numerolinee+temp(x,y)).l(lunghezzarughe(temp(x,y)),:)=[x,y];

end;

end;

end;

numerolinee=size(out.l,2);

end;

% viene eseguita una potatura delle linee generate. l'algoritmo va migliorato

numerolinee=0;

for i1=1:size(out.l,2)

numeropunti=0;

l=[];

for i2=1:size(out.l(i1).l,1)

x=out.l(i1).l(i2,1);

y=out.l(i1).l(i2,2);

ltest=puntivicini(out.l(i1).l,x,y);

if chi2test([ltest;x y])

numeropunti=numeropunti+1;

l(numeropunti,:)=[x,y];

Page 128: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

120APPENDICE D. IMPLEMENTAZIONEMATLAB DEGLI ALGORITMI USATI

end;

end;

if size(l,1)>0

numerolinee=numerolinee+1;

out.l(numerolinee).l=l;

end;

end;

%le linee vengono estese per via morfologica

for i1=1:numerolinee

puntidafare=puntiiniziali;

for i2=1:size(out.l(i1).l,1)

puntidafare(out.l(i1).l(i2))=0;

end;

for i2=1:size(out.l(i1).l,1)

out.l(i1).l=aggiungipunti(out.l(i1).l,out.l(i1).l(i2,1),out.l(i1).l(i2,2));

end;

end;

[out.mappa,out.punteggio]=calcolamappa(out.l,dimensioni);

if nargout==0

figure,imshow(label2rgb(out.mappa));

figure,imshow(mat2gray(out.punteggio));

end;

function l=aggiungipunti(l,x,y);

global sogliavalore;

global puntidafare;

global direzioni;

for i=1:8, % cambiare in base al tipo di connettività

valorecandidato=puntidafare(x+direzioni(i,1),y+direzioni(i,2));

if valorecandidato>sogliavalore

punteggio(i)=valorecandidato;

puntidafare(x+direzioni(i,1),y+direzioni(i,2))=0;

else

punteggio(i)=0;

end;

end;

% la funzione si chiama ricorsivamente partendo dai punti con punteggio

% più elevato

[punteggioordinato,indice]=sort(punteggio);

Page 129: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

D.5. LINELABEL 121

for i=indice(8:-1:1)

if punteggio(i)>0

lvicini=puntivicini(l,x+direzioni(i,1),y+direzioni(i,2));

if chi2test([x+direzioni(i,1) y+direzioni(i,2);lvicini])

l(size(l,1)+1,:)=[x+direzioni(i,1) y+direzioni(i,2)];

l=aggiungipunti(l,x+direzioni(i,1),y+direzioni(i,2));

end;

else break;

end;

end;

function superato=chi2test(l)

global tabellachi2;

n=size(l,1);

if n==2

superato=1;

else

distanze=calcoladistanze(l);

if distanze(1)>1

superato=0;

else

v=varianza(distanze);

if v==0, superato=1;

else if sum(distanze.^2)/v>tabellachi2(n-2), superato=1;

else superato=0;

end; end;

end;

end;

function errori=calcoladistanze(in,dim)

% trasformata di Karhunen-Loève, proietta i punti di uno spazio in uno di

% dimensione minore. restituisce gli errori (minimizzati) e l'orientazione

if nargin<2, dim=1; end;

s=size(in);

if dim>=s(2)

error('la dimensione di proiezione deve essere minore di quella dei dati');

end;

media=mean(in);

for i=1:s(1)

in1(i,:)=in(i,:)-media;

Page 130: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

122APPENDICE D. IMPLEMENTAZIONEMATLAB DEGLI ALGORITMI USATI

end;

[autovettori,autovalori]=eig(cov(in));

autovalori=diag(autovalori);

[autovalori,indice]=sort(autovalori);

psi=autovettori(:,indice(s(2):-1:s(2)-dim+1));

for i=1:s(1)

errori(i)=sqrt(sum(((((psi*psi'*in1(i,:)')+media')')-in(i,:)).^2));

end;

function [mappa,punteggio]=calcolamappa(l,dimensioni)

numerolinee=size(l,2);

% dimensioni non sarebbe necessario, ma così l'implementazione è più veloce

mappa=zeros(dimensioni);

punteggio=zeros(dimensioni);

for i=1:numerolinee,

dimensionelinea=size(l(i).l,1); % come misura viene usata l'area

for j=1:dimensionelinea,

x=l(i).l(j,1)-1;

y=l(i).l(j,2)-1;

if punteggio(x,y)<dimensionelinea

mappa(x,y)=i;

punteggio(x,y)=dimensionelinea;

end;

end;

end;

function orientazione=calcolaorientazione(in,dim)

% trasformata di Karhunen-Loève, proietta i punti di uno spazio in uno di

% dimensione minore. restituisce gli errori (minimizzati) e l'orientazione

if nargin<2, dim=1; end;

s=size(in);

if dim>=s(2)

error('la dimensione di proiezione deve essere minore di quella dei dati');

end;

media=mean(in);

for i=1:s(1)

in1(i,:)=in(i,:)-media;

end;

Page 131: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

D.5. LINELABEL 123

[autovettori,autovalori]=eig(cov(in));

autovalori=diag(autovalori);

[autovalori,indice]=sort(autovalori);

psi=autovettori(:,indice(s(2):-1:s(2)-dim+1));

for i=1:s(2)-1

for j=1:dim

orientazione(i,j)=angle(complex(psi(i,j),psi(i+1,j)));

end;

end;

function out=puntivicini(in,x,y)

% seleziona i punti vicini.

distanza=100; % in realtà va inserita la distanza^2 (per semplificare i conti)

n=0;

puntivicini=[];

for i=1:size(in(:,1),1)

if (in(i,1)-x)^2+(in(i,2)-y)^2 < distanza

n=n+1;

puntivicini(n)=i;

end;

end;

out=in(puntivicini,:);

function l=uniscirughe(l,dimensioni)

% test 4

global dimensioni;

if nargin<2, dimensioni=[23 33]; end;

numerolinee=size(l,2);

for i1=numerolinee:-1:2,

for i2=1:i1-1,

ltest=unisci2rughe(l(i1).l,l(i2).l);

if size(ltest,1)>0

numerolinee=numerolinee-1;

l(i2).l=ltest;

l(i1:numerolinee)=l(i1+1:numerolinee+1);

break;

end;

Page 132: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

124APPENDICE D. IMPLEMENTAZIONEMATLAB DEGLI ALGORITMI USATI

end;

end;

l=l(1:numerolinee);

[mappa,punteggio]=calcolamappa(l,dimensioni);

if nargout==0

figure,imshow(label2rgb(mappa));

figure,imshow(mat2gray(punteggio));

end;

function out=unisci2rughe(in1,in2)

% se le due rughe possono essere unite restituisce la ruga unita,

% altrimenti restituisce []

global dimensioni;

angolotolleranza=pi/300;

sogliaarea=0.8;

sogliaintersezione=0.2;

ruga1=sparse(in1(:,1),in1(:,2),1,dimensioni(1)+2,dimensioni(2)+2);

ruga2=sparse(in2(:,1),in2(:,2),1,dimensioni(1)+2,dimensioni(2)+2);

intersezione=ruga1 & ruga2;

area1=nnz(ruga1);

area2=nnz(ruga2);

areaintersezione=nnz(intersezione);

out=[];

if areaintersezione>sogliaintersezione |areaintersezione>5

%test di sovrapposizone

if (area1*sogliaarea<areaintersezione) | (area2*sogliaarea<areaintersezione)

[lx,ly]=find(ruga1|ruga2);

out=[lx,ly];

return;

end;

%test di orientazione

[lx,ly]=find(intersezione);

% nelle righe seguenti viene calcolata l'orientazione media in itinere

orientazione1=0;

orientazione2=0;

for i=1:areaintersezione

orientazione=calcolaorientazione(puntivicini(in1,lx(i),ly(i)));

orientazione1=orientazione1+orientazione;

Page 133: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

D.6. ALTRE FUNZIONI 125

orientazione=calcolaorientazione(puntivicini(in2,lx(i),ly(i)));

orientazione2=orientazione2+orientazione;

end;

if abs(orientazione1-orientazione2)<areaintersezione*angolotolleranza

[lx,ly]=find(ruga1|ruga2);

out=[lx,ly];

return;

end;

end;

D.6 Altre funzioni

function out=openByReconstruction(in,se,conn)

parametri=parametriPredefiniti;

if nargin<3, conn=parametri.conn; end;

out=imreconstruct(imerode(in,se),in,conn);

if (nargout==0),

figure,imshow(out);

%title('open by reconstruction');

end;

function out=closebyreconstruction(in,se,conn)

parametri=parametriPredefiniti;

if nargin<3, conn=parametri.conn; end;

out=imcomplement(openbyreconstruction(imcomplement(in),se,conn));

if (nargout==0),

figure,imshow(out);

%title('close by reconstruction');

end;

function out=geodesicErode(marker,mask,i,se)

% erosione geodetica grayscale, specificando connettività o structure element e iterazioni

Page 134: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

126APPENDICE D. IMPLEMENTAZIONEMATLAB DEGLI ALGORITMI USATI

parametri=parametriPredefiniti;

if (nargin<3), i=1; end;

if (nargin<4), se=parametri.conn; end;

if (any(marker<mask)), error('marker>mask'); end;

if (se==4), se=strel('diamond',1);

else if (se==8), se=strel('square',3);

end; end;

precedente=marker;

out=mask;

iterazioni=0;

while(iterazioni<i & any(precedente~=out)),

precedente=out;

iterazioni=iterazioni+1;

out=max(imerode(marker,se),mask);

end;

function out=geodesicDilate(marker,mask,i,se)

% erosione geodetica grayscale, specificando connettività o structure element e iterazioni

parametri=parametriPredefiniti;

if (nargin<3), i=1; end;

if (nargin<4), se=parametri.conn; end;

if (any(marker>mask)), error('marker>mask'); end;

if (se==4), se=strel('diamond',1);

else if (se==8), se=strel('square',3);

end; end;

precedente=mask;

out=marker;

iterazioni=0;

while(iterazioni<i & any(precedente~=out)),

precedente=out;

iterazioni=iterazioni+1;

Page 135: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

D.6. ALTRE FUNZIONI 127

out=min(imdilate(marker,se),mask);

end;

function out=im2bwDouble(in,l,h,conn)

% conversione di immagini grayscale in B/N con doppia soglia

% i risultati dei punti tra le due soglie vengono decisi in base ai punti

% vicini con elaborazioni geodetiche

if (nargin<4), conn=8; end;

if (nargin<3), l=1/3; end;

if (nargin<2), h=2/3; end;

if (l>h), error('l deve essere minore di h'); end;

sopra1=in+(h-l)/2;

sotto1=in-(h-l)/2;

sopra2=sopra1;

sotto2=sotto1;

%figure,imshow(im2bw(sopra1));

%figure,imshow(im2bw(sotto1));

while not(all(sopra1==sotto1))

% cambiando l'ordine di queste due operazioni il risultato cambia:

sopra1=geodesicErode(sopra1,sotto1,1,conn);

sotto1=geodesicDilate(sotto1,sopra1,1,conn);

end;

while not(all(sopra2==sotto2))

% cambiando l'ordine di queste due operazioni il risultato cambia:

sotto2=geodesicDilate(sotto2,sopra2,1,conn);

sopra2=geodesicErode(sopra2,sotto2,1,conn);

end;

out=im2bw((sotto1+sotto2)/2,(h+l)/2);

if nargout==0,

figure,imshow(out);

end;

function out=deviazioneStandardLocale(in,r)

parametri=ParametriPredefiniti;

Page 136: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

128APPENDICE D. IMPLEMENTAZIONEMATLAB DEGLI ALGORITMI USATI

if (nargin<2) r=parametri.r2; end;

kernel=ones(r)/r^2; % possibile miglioramento: kernel rotondo

media=imfilter(in,kernel,'same','symmetric');

dev=sqrt(imfilter((in-media).^2,kernel,'same','symmetric'));

out=mean(dev(:));

function out=parametriPredefiniti

%normalizzazione

out.r=15; %dimensione intorno

out.s=100; %sigma

out.gamma=1;

%filtraggio

out.lunghezza=2;

out.larghezza=0.7;

%segmentazione

out.h=0.15; % soglia H min

out.conn=4; % connettività

%ritaglio

out.bordo=15;

%statistiche

out.L=0.05;

out.H=0.95;

%feature deviazione standard locale

out.r2=60;

%GUI

out.cartella='\immagini\';

function out=ritaglia(in,bordo)

% ritaglia il bordo dell'immagine

% output=ritaglia(input,bordo)

% bordo e' espresso in pixel

parametri=ParametriPredefiniti;

if (nargin<2), bordo=parametri.bordo; end;

[x,y]=size(in);

out=in(1+bordo:x-bordo,1+bordo:y-bordo);

Page 137: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

D.6. ALTRE FUNZIONI 129

function out=statisticheDistribuzione(in,L,H)

% calcola tutte le statistiche considerate robuste.

% integrando le varie funzioni si potrebbero ottimizzare le prestazioni

parametri=parametriPredefiniti;

if nargin<2 L=parametri.L; H=parametri.H;

else if nargin<3 H=1-L; end;

end;

out.mediaY=mean(in);

out.deviazioneStandardY=std(in);

out.skewnessY=skewness(in);

out.kurtosisY=kurtosis(in);

out.mediaX=mediaDistribuzione(in);

out.deviazioneStandardX=deviazioneStandardDistribuzione(in);

out.skewnessX=skewnessDistribuzione(in);

out.kurtosisX=kurtosisDistribuzione(in);

out.totale=sum(in);

[out.sogliaLX,out.sogliaLY]=percentileDistribuzione(in,L);

[out.sogliaHX,out.sogliaHY]=percentileDistribuzione(in,H);

out.deltaX=out.sogliaHX-out.sogliaLX;

out.deltaY=out.sogliaHY-out.sogliaLY;

cumulativa=cumsum(in);

%P1

[out.P1X,out.P1Y]=p1(cumulativa);

[out.P1Xnorm,out.P1Ynorm]=p1norm(cumulativa);

function out=mediaDistribuzione(in)

% calcola il valore atteso di una distribuzione

in=in/sum(in);

out=0;

for i=1:size(in,2);

out=out+i*in(i);

end;

Page 138: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

130APPENDICE D. IMPLEMENTAZIONEMATLAB DEGLI ALGORITMI USATI

function out=deviazioneStandardDistribuzione(in)

% calcola la deviazione standard di una distribuzione

m=mediaDistribuzione(in);

in=in/(sum(in)-1);

out=0;

for i=1:size(in,2)

out=out+(i-m)^2*in(i);

end;

out=sqrt(out);

function out=skewnessDistribuzione(in)

% calcola la deviazione standard di una distribuzione

m=mediaDistribuzione(in);

s=deviazioneStandardDistribuzione(in);

in=in/(sum(in)-1);

out=0;

for i=1:size(in,2)

out=out+(i-m)^3*in(i);

end;

out=out/s^3;

function out=kurtosisDistribuzione(in)

% calcola la deviazione standard di una distribuzione

m=mediaDistribuzione(in);

s=deviazioneStandardDistribuzione(in);

in=in/(sum(in)-1);

out=0;

for i=1:size(in,2)

out=out+(i-m)^4*in(i);

end;

out=out/s^4;

function [x,y]=p1(in)

% calcola il punto a pendenza 1 in una distribuzione

% il calcolo è robusto rispetto ai disturbi

s=size(in,2);

Page 139: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

D.6. ALTRE FUNZIONI 131

dmin=inf;

for i=1:s,

distanza=(in(s)-in(i))^2+i^2;

if distanza<dmin,

dmin=distanza;

x=i;

end

end

y=in(x);

function [x,y]=p1norm(in)

% simile a calcolap, ma normalizza la distribuzione prima

s=size(in,2);

x=p1(in*s/in(s));

y=in(x);

function [i,out]=percentileDistribuzione(in,x)

% calcola il percentile e il valore cumulativo relativo al percentile

x=x*sum(in);

out=0;

i=0;

while(out<=x)

i=i+1;

out=out+in(i);

end;

function [a,b,errori,autovalori]=regressioneLineare(x,y)

[autovettori,autovalori,errori,media]=kl([x' y']);

P1=media';

P2=P1+flipud(autovettori(:,1));

a=(P1(1)-P2(1))/(P1(2)-P2(2));

b=P1(2)-a*P1(1);

function [psi,autovalori,errori,media]=kl(in,dim)

% trasformata di Karhunen-Loève, proietta i punti di uno spazio in uno di

% dimensione minore. restituisce gli errori (minimizzati) e l'orientazione

if nargin<2, dim=1; end;

Page 140: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

132APPENDICE D. IMPLEMENTAZIONEMATLAB DEGLI ALGORITMI USATI

s=size(in);

if dim>=s(2)

error('la dimensione di proiezione deve essere minore di quella dei dati');

end;

media=mean(in);

for i=1:s(1)

in1(i,:)=in(i,:)-media;

end;

[autovettori,autovalori]=eig(cov(in));

autovalori=diag(autovalori);

[autovalori,indice]=sort(autovalori);

psi=autovettori(:,indice(s(2):-1:s(2)-dim+1));

for i=1:s(1)

errori(i)=sqrt(sum(((((psi*psi'*in1(i,:)')+media')')-in(i,:)).^2));

end;

% orientazione come vettori:

orientazione=psi(:,1:dim);

% orientazione come angoli:

% for i=1:s(2)-1

% for j=1:dim

% orientazione(i,j)=angle(complex(psi(i,j),psi(i+1,j)));

% end;

% end;

Page 141: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

Bibliogra�a

[1] The MathWorks Inc. Matlab Images Toolbox, 4.1 edition, Settembre2003.

[2] BioRAP. http://www.biorap.org, 2004.

[3] Skin care physicians. http://www.skincarephysicians.com, 2004.

[4] National library of medicine. http://www.nlm.nih.gov, 2004.

[5] S. Diridollou, V. Vabre, M. Berson, L. Vaillant, D. Black, J. M. Lagarde,J. M. Gregoire, Y. Gall, and F. Patat. Skin ageing: changes of physicalproperties of human skin in vivo. Int J Cosmet Sci, 23(6):353�353, 2001.

[6] Andrew J. Round, Andrew W. G. Duller, and Peter J. Fish. Lesionclassi�cation using skin patterning. Skin Res Technol, 6(4):183�183,2000.

[7] HIPR 2. http://homepages.inf.ed.ac.uk/rbf/HIPR2/, 2004.

[8] I. T. Young, J. J. Gerbrands, and L. J. van Vliet. Image processing fun-damentals. http://www.ph.tn.tudelft.nl/Courses/FIP/noframes/

fip.html.

[9] Ming Jiang. Digital image processing, Settembre 2003.

[10] Bernd Jahne, Peter Geissler, and Horst Haussecker. Handbook of

Computer Vision and Applications with Cdrom. Morgan KaufmannPublishers Inc., 1999.

133

Page 142: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

134 BIBLIOGRAFIA

[11] Edward R. Dougherty and Roberto A. Lotufo. Hands-on Morphology

Image Processing, chapter 7. 2003.

[12] Luc Vincent and Pierre Soille. Watersheds in digital spaces: an e�-cient algorithm based on immersion simulations. IEEE Transactions on

Pattern Analysis and Machine Intelligence, 13(6):583�598, Giugno 1991.

[13] Luc Vincent. Morphological grayscale reconstruction in images analy-sis: Applications and e�cient algorithms. IEEE transactions on image

processing, 2(2), Aprile 1993.

[14] Serge Beucher. Recent advances in mathematical morphology.

[15] Serge Beucher. The watershed transformation applied to imagesegmentation.

[16] Corinne Vachier and Luc Vincent. Valutation of image extrema usingalternating �lters by reconstruction. 2568:94�103, Luglio 1995.

[17] K. N. R. Mohana Rao and A. G. Dempster. Area-granulometry, an im-proved estimator of size distribution of image objects. Electronic Letters,37(15), Luglio 2001.

[18] Luc Vincent. Morphological area openings and closings for greyscaleimages. pages 197�208, Settembre 1992.

[19] Luc Vincent. Grayscale area openings and closings, their e�cientimplementation and applications. pages 22�27, Maggio 1993.

[20] Luc Vincent. Fast grayscale granulometries algorthms. pages 265�272,Settembre 1994.

[21] Luc Vincent. Fast opening functions and morphological granulometries.pages 253�267, Luglio 1994.

[22] Luc Vincent. Granulometries and opening trees. Fundamenta

Informaticae, 41(1-2):57�90, Gennaio 2000.

Page 143: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

BIBLIOGRAFIA 135

[23] Basic morphological image processing operations: a tutorial.http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/

GASTERATOS/SOFT%/1.htm.

[24] A. Gasteratos, I. Andreadis, and Ph. Tsalides. Fuzzy soft mathematicalmorphology. IEE Proc.-Vis Image Signal Processing, 145(1), Febbraio1998.

[25] Jean-Philippe Nominé, Luc Vincent, Fernand Meyer, Jean Serra, Jean-Paul Escande, and Janick Arnaud-Battandier. Cutaneous aging andmathematical morphology. 1987.

[26] Stanislav L. Stoev and Wofgang Straber. Extracting region of interestapplying a local watershed trasformation. IEEE Visualizazion, Ottobre2000.

[27] Pierre Moreels and Suzanne E. Smrekar. Watershed identi�cation ofpoligonal patterns in noisy sar images. IEEE transaction on image

processing, 12(7), Luglio 2003.

[28] Guillermo Marquez. Characterization of skin lesion texture in di�usere�ectance spectroscopic images. Aprile 2000.

[29] M. F. Colomè-Serra, D. Seròn, F. Moreso, M. Carrera, J. M. Grigno, andJ. Serra. Image analysis: utility of gray level granulometry to measurerenal interstitial chronic damage, 1992.

[30] Scantron. http://www.scantron-net.co.uk, 2004.

[31] Stmicroelectronics. http://www.st.com, 2004.

[32] S. Akazaki, H. Nakagawa, H. Kazama, O. Osanai, M. Kawai, Y. Ta-kema, and G. Imokawa. Age-related changes in skin wrinkles assessedby a novel three-dimensional morphometric analysis. Br J Dermatol,147(4):689�689, 2002.

Page 144: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

136 BIBLIOGRAFIA

[33] C. Edwards, R. Heggie, and R. Marks. A study of di�erences insurface roughness between sun-exposed and unexposed skin with age.Photoderm Photoimm Photomed, 19(4):169�169, 2003.

[34] J. M. Lagarde, C. Rouvrais, D. Black, S. Diridollou, and Y. Gall. Skintopography measurement by interference fringe projection: a technicalvalidation. Skin Res Technol, 7(2):112�112, 2001.

[35] Jane Sandby-moller and Hans Christian Wulf. Ultrasonographic subepi-dermal low-echogenic band, dependence of age and body site. Skin Res

Technol, 10(1):57�57, 2004.

[36] Gniadecka and Jemec. Quantitative evaluation of chronological ageingand photoageing in vivo: studies on skin echogenicity and thickness. BrJ Dermatol, 139(5):815�815, 1998.

[37] Mountain technology. http://www.digitalsurf.fr/gb/

templateskinanalysis.html, 2004.

[38] Anil K. Jain and Sharath Pankanti. Fingerprint classi�cation and mat-ching. Technical Report MSU-CPS-99-5, Department of ComputerScience, Michigan State University, East Lansing, Michigan, Gennaio1999.

[39] S. Greenberg, M. Aladjem, D. Kogan, and I. Dimitrov. Finger-print image enhancement using �ltering techniques. 15th International

Conference on Pattern Recognition, 3(3-7):322�325, Settembre 2000.

[40] Oscar Nestares, Rafael Navarro, Javier Portilla, and Antonio Taberne-ro. E�cient spatial-domain implementation of a multiscale image repre-sentation based on gabor functions. J.Electronic Imaging, 7:166�173,1998.

[41] Lin Hong, Yifei Wan, and A. Jain. Fingerprint image enhancement:algorithm and performance evaluation. Pattern Analysis and Machine

Intelligence, IEEE Transactions on, 20:777�789, Agosto 1998.

Page 145: STUDIO E SVILUPPO DI ALGORITMI PER L'ANALISI DI IMMAGINI ...web.cheapnet.it/parsi/tesi.pdf · generazione dei dati che è stato l'input di questa tesi, so ermandosi sulla metodologia

BIBLIOGRAFIA 137

[42] Jianwei Yang, Lifeng Liu, Tianzi Jiang, and Yong Fan. A modi�ed gabor�lter design method for �ngerprint image enhancement. Pattern Recogn.

Lett., 24(12):1805�1817, 2003.[43] Tai Sing Lee. Image representation using 2d gabor wavelets. Pattern

Analysis and Machine Intelligence, IEEE Transactions on, 18:959�971,Ottobre 1996.

[44] Arun Ross, James Reisman, and Anil Jain. Fingerprint matching usingfeature space correlation. pages 48�57, Giugno 2002.

[45] Anil K. Jain, Salil Prabhakar, Lin Hong, and Sharath Pankanti.Filterbank-based �ngerprints matching. IEEE transaction on image

processing, 9(5), Maggio 2000.[46] Jean Luc Leveque and Bernard Querleux. Skinchip, a new tool for

investigating the skin surface in vivo. Skin research and technology,9(4):303�347, 2003.

[47] Alessandro Bevilacqua and Alessandro Gherardi. Age-related skin ana-lysis by capacitance images. IEEE/IAPR International Conference on

Pattern Recognition, Agosto 2004.[48] Jorge Fullana Fuentes. Characterization fo skin wrinkles in vivo by using

a portable capacitive device, Marzo 2004.[49] Alessandro Bevilacqua, Alessandro Gherardi, and Massimo Ferri. Age-

related skin surface characterization through capacitive image analysis.2004.

[50] Martalena B. Purba, Antigone Kouris-Blazos, Naiyana Wattanapenpai-boon, Widjaja Lukito, Elisabeth Rothenberg, Bertil Steen, and Mark L.Wahlqvist. Can skin wrinkling in a site that has received limited sunexposure be used as a marker of health status and biological age? Age

Ageing, 30:227�234, 2001.