DIPARTIMENTO DI MATEMATICA E INFORMATICA



Documenti analoghi
Morfologia e Image Processing

Morphological Image processing

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

MODULO 4: FOGLIO ELETTRONICO (EXCEL)

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

Guida all uso di Java Diagrammi ER

INTRODUZIONE. Gli operatori della morfologia binaria sono operatori fra insiemi definiti a partire dell immagine binaria.

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Il menu File contiene tutti i comandi relativi alle seguenti operazioni:

I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte.

Plate Locator Riconoscimento Automatico di Targhe

Registratori di Cassa

Esame di Informatica CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO. Facoltà di Scienze Motorie

Gestione Risorse Umane Web

Gestire immagini e grafica con Word 2010

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel

EasyPrint v4.15. Gadget e calendari. Manuale Utente

Cosa è un foglio elettronico

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Introduzione. Installare EMAS Logo Generator

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

COLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo

L amministratore di dominio

Settaggio impostazioni tema. Cliccando nuovamente su aspetto e poi su personalizza si avrà modo di configurare la struttura dinamica della template.

Prof.ssa Paola Vicard

Laboratorio di Architettura degli Elaboratori - A.A. 2012/13

OSSIF WEB. Manuale query builder

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

Dimensione di uno Spazio vettoriale

ISTRUZIONI PER LA GESTIONE BUDGET

PowerPoint 2007 Le funzioni

Funzioni in C. Violetta Lonati

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

Compilatore risorse display grafico LCD serie IEC-line

Manuale d uso Software di parcellazione per commercialisti Ver [05/01/2015]

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

Il foglio elettronico. Excel PARTE

REGOLAMENTO ROULETTE FRANCESE

per immagini guida avanzata Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel

Il calendario di Windows Vista

TRASMISSIONE RAPPORTO ARBITRALE IN FORMATO PDF

Appunti di: MICROSOFT EXCEL

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Corso di Informatica

GUIDA UTENTE BILLIARDS COUNTER (Vers )

GUIDA UTENTE MONEY TRANSFER MANAGER

Guida Software GestioneSpiaggia.it

[FINANZAECOMUNICAZIONE / VADEMECUM]

MANUALE EDICOLA 04.05

Corso base di informatica

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video

MANUALE UTENTE PROTEUS GRPIGD - GESTIONE RICHIESTE PROTOCOLLO INFORMATICO E GESTIONE DOCUMENTALE

MANUALE PARCELLA FACILE PLUS INDICE

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

Nell esempio verrà mostrato come creare un semplice documento in Excel per calcolare in modo automatico la rata di un mutuo a tasso fisso conoscendo

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Il foglio elettronico: Excel

FIRESHOP.NET. Gestione completa delle fidelity card & raccolta punti. Rev

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

REGOLAMENTO ROULETTE 3D

Schede ADI ADP ADEM Prestazioni aggiuntive MMG. - Manuale - Data Solution Provider s.r.l.

In questo manuale sono indicate le procedure per utilizzare correttamente la gestione delle offerte dei fornitori.

Identificare le diverse parti di una finestra: barra del titolo, barra dei menu, barra degli strumenti, barra di stato, barra di scorrimento.

Università degli Studi di Catania Corso di Laurea Magistrale in Informatica Multimedia 2013/14. Cantarella Danilo. OpenCV Android

Gestione Filtri. InfoBusiness 2.8 Gestione Filtri Pag. 1/ 11

4. Fondamenti per la produttività informatica

M:\Manuali\VARIE\GENERAZIONE REPORT PARAMETRICI.doc GENERAZIONE REPORT PARAMETRICI

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO

Scuola Digitale. Manuale utente. Copyright 2014, Axios Italia

Lezione 8. La macchina universale

Manuale Utente Amministrazione Trasparente GA

Guida Joomla. di: Alessandro Rossi, Flavio Copes

Il Programma... 3 I moduli... 3 Installazione... 3 La finestra di Login... 4 La suite dei programmi... 6 Pannello voci... 10

USO DI EXCEL CLASSE PRIMAI

Word processor funzione Stampa Unione

WoWords. Guida all uso: creare ed utilizzare le frasi. In questa guida è descritto come creare ed utilizzare le frasi nel software WoWords.

6.2 USM. Definizione dei contorni in un immagine

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

CONFIGURAZIONE E GESTIONE DEI DATABASE (rev. 1.1)

Syllabus (estratto) Foglio elettronico. Excel. Open office - Office. Principio e funzionamento 26/11/2012. A. Ferrari

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

Manuale NetSupport v Liceo G. Cotta Marco Bolzon

Breve guida all uso del programma L Edicolante.

5-1 FILE: CREAZIONE NUOVO DOCUMENTO

Università di L Aquila Facoltà di Biotecnologie Agro-alimentari

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software

APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

CATALOGO E-COMMERCE E NEGOZIO A GRIGLIA

BARCODE. Gestione Codici a Barre. Release 4.90 Manuale Operativo

Prof.ssa Paola Vicard

Come costruire una distribuzione di frequenze per caratteri quantitativi continui

Transcript:

DIPARTIMENTO DI MATEMATICA E INFORMATICA CORSO DI LAUREA SPECIALISTICA IN INFORMATICA MULTIMEDIA PROF S. BATTIATO RELAZIONE DEL PROGETTO: Estensione software ImageJ con tecniche di Morfologia matematica Aglieco Salvatore, aglieco.salvatore@gmail.com 1

Indice 1 Introduzione... 3 1.1 Presentazione...3 1.2 Generalità su ImageJ...3 2 Sviluppo di Plugins per ImageJ... 3 2.1 Il concetto di Plugin...3 2.2 Tipi di Plugins...3 2.3 Interfacce...4 2.3.1 Plugin...4 2.3.2 PluginFilter...4 2.4 Installazione del Plugin...4 2.5 Un Plugin di esempio...5 2.6 Registrazione di un plugin...6 2.7 Compilazione ed esecuizione di plugins...6 3 Morphological Image Processing... 7 3.1 Morfologia Matematica...7 3.2 Preliminari...7 3.3 Operazioni logiche su immagini binarie...9 3.4 Operatori Morfologici...10 3.4.1 Elemento strutturale...10 3.4.2 Dilation...11 3.4.3 Erosion...13 3.4.4 Opening...16 3.4.5 Closing...18 3.4.6 Hit-or-miss Transformation...19 3.5 Algoritmi Morfologici...21 3.5.1 Boundary Extraction...21 3.5.2 Region Filling...22 3.6 Extraction of connected components...23 3.7 Thinning...24 3.8 Thickening...25 3.9 Skeletons...27 3.10 Estensione alle immagini a toni di grigio...29 3.10.1 Dilation...29 3.10.2 Erosion...30 3.10.3 Opening e Closing...32 3.11 Applicazioni degli operatori morfologici ad immagini a toni di grigio....33 3.11.1 Morphological Smoothing...33 3.11.2 Morphological Gradient...33 3.11.3 Top-hat Transformation...33 3.11.4 Textural Segmentation...33 4 Descrizione del Plugin... 34 4.1 Le classi...34 4.2 L interfaccia grafica...36 4.3 Alcuni risultati...38 2

1 Introduzione 1.1 Presentazione Il progetto realizzato consiste nello sviluppo di un plugin per il software ImageJ. Tale plugin consente l applicazione dei più comuni operatori morfologici ad immagini a toni di grigio o in bianco e nero, dilate, erosion, closing, opening, e di alcuni algoritmi ottenuti da tali operatori, edge detection e smoothing. Oltre all operatore da applicare, è consentita all utente la scelta dell elemento strutturale; a tal fine è possibile scegliere tra alcune forme predefinite o disegnare la maschera, definendone quindi forma e dimensione. 1.2 Generalità su ImageJ ImageJ è un software open source per l elaborazione delle immagini che si ispira all NIH Image per Macintosh ed è interamente realizzato in java. Fornisce quindi le principali funzionalità dei comuni software per l image processing come il filtraggio nel dominio spaziale e delle frequenze, trasformazione geometriche come scaling, rotazioni ed operazioni zooming. Consente la gestione di immagini ad 8, 16, 32-bit e supporta vari formati tra cui TIFF, GIF, BMP, DICOM, FITS e raw. Supporta gli stack, una serie di immagini che condividono la stessa finestra ed è multithreading. Consente inoltre il calcolo di aree e statistiche sui pixel selezionati dall utente, le cosiddette ROI (region of interest), ed è possibili misurare distanze ed angoli e plottare istogrammi e grafici. Una delle principali caratteristiche di tale software è la possibilità di sviluppare plugins da integrare nell ambiente. A tal fine è possibile utilizzare l editor integrato di ImageJ o un qualsiasi editor di testo in combinazione con il compilatore Java. 2 Sviluppo di Plugins per ImageJ 2.1 Il concetto di Plugin Le funzionalità fornite da ImageJ possono essere estese attraverso lo sviluppo di plugins; si tratta di classi Java che implementano le opportune interfacce e sono posizionate il un determinato percorso. Tali classi possono essere realizzate facendo uso dell apposito editor fornito da ImageJ o attraverso un qualsiasi editor di testo ed in ogni caso compilate all interno del software. L editor e le opzioni per la compilazione sono raggiungibili dal menù Plugins. 2.2 Tipi di Plugins 3

Ci sono due tipi di plugins: quelli che non richiedono immagine in input ed implementano l iterfaccia Plugin ed i plugin filters, che necessitano dell immagine da elaborare ed implementano l interfaccia PluginFilters. 2.3 Interfacce 2.3.1 Plugin Questa interfaccia fornisce il solo metodo void run(java.lang.string arg) Questo metodo avvia l esecuzione del plugin; l argomento arg è una stringa che può anche essere vuota. 2.3.2 PluginFilter Questa interfaccia fornisce anche il metodo void run(imageprocessor ip) Questo metodo manda in esecuzione il plugin e prede in input l imageprocessor; tale processore può essere modificato o utilizzato per creare un nuovo processore o una nuova immagine, in modo che l immagine originale rimanga invaritata. int setup(java.lang.string arg, ImagePlus imp) Questo metodo setta il plugin per l utilizzo. La stringa arg ha la stessa funzione espletata nel metodo run mentre non è necessario preoccuparsi dell argomento ImagePlus in quanto è ImageJ che se ne occupa passando automaticamente l immagine contenuta nella finestra attiva. Il metodo setup restituisce un flag che rappresenta le capacità del filtro. I flag definiti in PluginFilter sono: static int DOES 16 Il plugin filter gestisce immagini a toni di grigio a 16 bit. static int DOES 32 Il plugin filter gestisce immagini a toni di grigio a 32 bit. static int DOES 8C Il plugin filter gestisce immagini a colori a 8 bit. static int DOES 8G Il plugin filter gestisce immagini a toni di grigio a 8 bit. static int DOES ALL Il plugin filter gestisce tutti i tipi di immagini. static int DOES RGB Il plugin filter gestisce immagini RGB. static int DOES STACKS Il plugin filter supporta gli stacks. static int DONE Se il metodo resituisce DONE il metodo run non verrà invocato. static int NO CHANGES Il plugin filter non modifica i pixel dell immagine. static int NO IMAGE REQUIRED Il plugin filter non necessita che venga aperta alcuna immagine. int NO UNDO Il plugin filter non necessita di undo. static int ROI REQUIRED Il plugin filter richiede una regione di interesse (ROI). static int STACK REQUIRED Il plugin filter necessita di uno stack. static int SUPPORTS MASKING Il plugin filters lavora sempre sulla regione rettangolare definite dalla ROI. 2.4 Installazione del Plugin 4

I plugin devono essere contenuti nell apposita cartella plugin che è una sottocartella di ImageJ. Solo i plugin che contengono almeno un underscore nel loro nome appariranno automaticamente nel menù Plugin. Dalla versione 1.20 è possibile creare sottocartelle della directory plugin, che verranno visualizzate come sottomenù del menu Plugin. Per installare il plugin bisogna copiare il file.class nella cartella plugin o in una delle sue sottocartelle. Al successivo avvio di ImageJ il plugin apparirà nel menù; alternativamente è possibile aggiungerlo direttamente al menù selezionando Plugins/ Shortcut/ Install plugin.... 2.5 Un Plugin di esempio Dopo l installazione di ImageJ nella cartella plugin è contenuto un semplice plugin di esempio, Inverter_ che inverte una immagine a toni di grigio ad 8 bit. Inizialmente vengono importati i package necessari, ij per le classi base di ImageJ, ij.process per l image processors ed ij.plugin.filter.pluginfilter per l interfaccia. import ij.*; import ij.plugin.filter.pluginfilter; import ij.process.*; import java.awt.*; Visto che è necessaria un immagine in input bisogna implementare l interfaccia PluginFilter: public class Inverter_ implements PlugInFilter { Segue il metodo setup per il settaggio del plugin. Nel caso in cui venga passata la stringa about come argomento viene chiamato il metodo showabout che visualizza una finestra di dialogo e viene restituito DONE visto che non vogliamo che venga invocato il metodo run. In casocontrario viene restituito un flag che specifica le potenzialità del plugin: public int setup(string arg, ImagePlus imp) { if (arg.equals("about")) { showabout(); return DONE; } return DOES_8G+DOES_STACKS+SUPPORTS_MASKING; } Il metodo run è quello che implementa le funzionalità del plugin. Dall ImageProcessor passato come argomento viene recuperato l array contenente i pixel dell immagine e i limiti della ROI. public void run(imageprocessor ip) { byte[] pixels = (byte[])ip.getpixels(); int width = ip.getwidth(); Rectangle r = ip.getroi(); Nel ciclo più esterno la y scorre le righe della Roi mentre la x del ciclo più interno itera lungo le colonne; il pixel di coordinate (x,y) si trova nella locazione pixels[x+y*width]; per evitare di dover calcolare ogni volta la posizione viene definita la variabile offset che rappresenta la posizione del primo pixel nella linea corrente della ROI. Il valore del pixel viene invertito sottraendogli 255. 5

int offset, i; for (int y=r.y; y<(r.y+r.height); y++) { offset = y*width; for (int x=r.x; x<(r.x+r.width); x++) { i = offset + x; pixels[i] = (byte)(255-pixels[i]); } } } Il metodo showabout us ail metodo showmessage della classe IJ per visualizzare un messaggio testuale in un message box.il primo parametro specifica il titolo edi il secondo il testo del messaggio. void showabout() { IJ.showMessage("About Inverter_...", "This sample plugin filter inverts 8-bit images. Look\n" + "at the Inverter_.java source file to see how easy it is\n" + "in ImageJ to process non-rectangular ROIs, to process\n" + "all the slices in a stack, and to display an About box." ); } } 2.6 Registrazione di un plugin Se il plugin deve semplicemente eseguire una sequenza di comandi non è necessario scrivere codice ma è sufficiente registrare la sequenza selezionando Plugin/Record ; si apre una finestra su cui viene visualizzato lo pseudocodice delle azioni eseguite dall utente; il tasto Create Plugin genera una classe java a partire dallo pseudocodice generato; tale classe viene visualizzata attraverso un editor di testo che permette di compilarla ed eseguirla. 2.7 Compilazione ed esecuizione di plugins Se l ambiente di runtime che si sta utilizzando include un compilatore Java (ad es. ImageJ per Windows) o sulla macchina è già installato un compilatore java è possibile compilare ed eseguire il plugin in uno dei due seguenti modi: Dal menu Plugins/Compile and run, che apre una finestra di dialogo da cui selezionare il file.java che verrà compilato ed eseguito. Selezionando File/Compileand run dall editor built-in del plugin che compila ed esegue il codice contenuto nella finestra di editor. 6

Se il plugin necessita librerie non presenti tra quelle standard di Java né fornite da ImageJ è necessario modificare opportunamente il classpath. 3 Morphological Image Processing 3.1 Morfologia Matematica La parola morfologia denota comunemente una branca della biologia che ha a che fare con la forma e la struttura di animali e piante. Nell ambito dell image processing la morfologia matematica fornisce un approccio all elaborazione delle immagini basato sulla forma. E uno strumento utile per la rappresentazione della forma di una regione e consente di ricavare i contorni lo scheletro e molte altre informazioni sulla geometria dell immagine. E inoltre possibile effettuare comuni operazioni di filtraggio come lo smoothing ed edge detection. Gli insiemi nella morfologia matematica rappresentano gli oggetti contenuti nell immagine. Sia Z l insieme degli interi e Z 2 l insieme di tutte le possibili coppie ordinate coppie (z i,z j ) con z i,z j appartenenti a Z. Le immagini binarie possono essere rappresentate come insiemi di elementi dello spazio Z 2 ; ogni elemento di tale spazio, ovvero ogni coppia (z i,z j ), rappresenta le coordinate di un pixel bianco o nero a seconda della convenzione. Le immagini a toni di grigio possono invece essere considerate come insiemi in Z 3 dove ogni elemento (x,y,z) rappresenta le coordinate di un pixel, le prime due componenti, ed il livello di grigio, la terza. 3.2 Preliminari Sia A un insieme in Z 2 i cui elementi sono a=(a 1,a 2 ). Ecco le comuni notazioni insiemistiche che verranno utilizzate nel seguito: a a a appartiene all insieme A a non appartiene all insieme A A è incluso in B C C Unione Intersezione Intersezione vuota c w w complementare di A B w, c w w differenza insiemistica 7

Esempi di operazioni insiemistiche su immagini : Figura 3-1 Acluni esempi di operazioni insiemistiche su immagini. Di fondamentale importanza sono le seguenti definizioni: Riflessione: Traslazione: B w w b, b A z c c a z, a In baso a destra vediamo il risultato della traslazione e riflessione applicati rispettivamente agli insiemi A e B definiti a sinistra; vengono evidenziati i punti a partire dai quali vengono effettuate le operazioni. 8

Figura 3-2 Traslazione e Riflessione. 3.3 Operazioni logiche su immagini binarie Le operazioni logiche sebbene semplici sono di grande aiuto nello sviluppo di algoritmi di image processing basati sulla morfologia. Le operazioni base sono OR, AND e NOT applicate sui pixel corrispondenti di due o più immagini, ad eccezione del NOT che opera su una singola immagine. Tabella 1 Operatori logici Altri operatori logici possono essere ricavati sulla base di questi. E inoltre importante osservare che esiste una corrispondenza tra le operazioni insiemistiche precedentemente definite e le operazioni logiche; l intersezione ad esempio si riduce ad una operazione di AND quando le variabili coinvolte sono binarie. Nella figura sotto in nero sono rappresentate le figure su cui vengono applicati gli operatori logici ed i risultati di tali operazioni. 9

Figura 3-3 Operazionilogiche su immagini binarie. 3.4 Operatori Morfologici Iniziamo la descrizione dei principali operatori morfologici per le immagini bianco e nero. I concetti introdotti possono essere facilmente estesi al caso di immagini a toni di grigio. 3.4.1 Elemento strutturale Si tratta dell insieme sulla base del quale viene elaborata l immagine in input. Può avere forma qualsiasi solitamente definita dall utente in quanto fortemente dipendente dal problema da trattare. L elemento strutturale viene solitamente rappresentato come una matrice i cui valori, nel caso di immagini binarie, vengono settati a 0 o 1 a seconda della convenzione. Chiameremo foreground le regioni dell immagine contenenti gli oggetti e background quelle rappresentanti lo sfondo Indichiamo con 1 i pixel di foreground e con 0 background. Lo stesso vale per l elemento strutturale. Per parecchi dei successivi esempi utilizzeremo il seguente elemento strutturale 10

Figura 3-4 Elemento strutturale quadrato. 3.4.2 Dilation Assieme all erosione, che vedremo successivamente, costituisce il principale operatore morfologico da cui vengono ricavati tutti gli altri. Def.: A B z B z A dove A è l immagine da elaborare e B l elemento strutturale. Dalla definizione si evince che l elemento strutturale viene ribaltato rispetto alla sua origine, attraverso l operazione di riflessione, e shiftato di z posizioni attraverso una traslazione. Il risultato dell operatore è l insieme delle posizioni z tali che B interseca almeno un elemento di A. z In basso a sinistra viene riportata l immagine dilatata con l elemento strutturale riportato al centro; a destra il risultato: Figura 3-5 Dilation di A attraverso B. 11

Ancora un esempio di dilatazione con un diverso elemento strutturale: Figura 3-6 Dilation di A attraverso B. In maniera più dettagliata l operatore di dilatazione opera nel seguente modo: il centro dell elemento strutturale viene posto su ogni pixel di foreground dell immagine in input; se almeno uno dei pixel di foreground della maschera coincide con uno dei pixel della porzione di immagine sottostante, ovvero se almeno uno dei pixel di tale porzione di immagine ha valore 1, il pixel in input viene settato ad 1; in caso contrario il pixel in input viene settato a 0,cioè background. Nella figura in basso a sinistra abbiamo l immagine in input e a destra il risultato dell operatore di dilatazione con l elemento strutturale 3x3 visto sopra. Figura 3-7 A sinistra l immagini in input elaborata con l elemento strutturale 3x3 sopra definito. 12

Dagli esempi sopra ripportati è possibile osservare che l effetto dell operatore è quello di espandere i bordi delle regioni di foreground dell immagine e di ridurre le dimensioni dei buchi all interno degli oggetti. Una possibile applicazione consiste nella ricostruzione del testo ottenuto da un documento attraverso scanner; i caratteri potrebbero presentare delle interruzioni nella loro forma e ciò comporterebbe sicuramente un problema per i software OCR; la dilatazione consente di riempire tali interruzioni. Figura 3-8 Riempimento dei buchi all interno dei caratteri attraverso dilatazione. 3.4.3 Erosion Si tratta dell operatore duale della dilatazione e viene definito nel seguente modo: Def.: A B z B z A Il risultato dell operatore è l insieme delle posizioni z tali che B traslato di z è contenuto in A. Sotto vengono riportati due esempi di erosione dell insieme A con l elemento strutturale B. 13

Figura 3-9 Esempi di erosione. A differenza della dilatazione, in prossimità dei bordi l elemento strutturale non può essere contenuto interamente nell immagine cosicché tali punti verranno erosi, ovvero settati come background. In modo più dettagliato l erosione opera nel seguente modo: il centro dell elemento strutturale viene posto su ogni pixel di foreground dell immagine in input; se per ogni pixel dell elemento strutturale avente valore 1 il corrispondente pixel dell immagine sottostante è foreground il pixel in input viene lasciato inalterato, altrimenti viene settato a 0. Nella figura in basso a sinistra abbiamo l immagine in input e a destra il risultato dell operatore di erosione con l elemento strutturale 3x3 visto sopra. 14

Figura 3-10 Erosione dell immagine a sinistra con l elemeto strutturale di fig. 3-4. Come è possibile notare l operatore tende ad erodere i bordi delle regioni di foreground dell immagine; l area occupata dagli oggetti di foreground diminuisce e i buchi all interno di tali regioni diventano più larghi. Un tipico utilizzo dell erosione è l eliminazione di dettagli irrilevanti. Supponiamo di avere una immagine composta da quadrati di lato 1, 3, 5,7,9,15 pixel e di voler mantenere solo quelli di dimensione maggiore. Ciò può essere ottenuto utilizzando un elemento strutturale di forma quadrata con lato maggiore di quello degli oggetti da eliminare ma minore dei quadrati da mantenere; nel caso in questione è sufficiente utilizzare un lato di 13 pixel. Per effetto dell erosione i quadrati da preservare avranno dimensione inferiore a quella iniziale; per ripristinarla è sufficiente dilatare l immagine con lo stesso elemento strutturale utilizzato al passo precedente. Sotto vediamo il procedimento appena descritto: Figura 3-11 Eliminazione di dettagli irrilevanti attraverso erosione e successiva dilatazione. Un altro possibile utilizzo di tale operatore è l eliminazione di rumore salt & pepper. 15

3.4.4 Opening Consiste nell applicazione di una erosione seguita da dilatazione. Def.: A B A B B Un problema dell operatore di erosione è che esso tratta in maniera uguale tutte le regione dell immagine e quindi anche quelle sulle quali non si desidera apportare cambiamenti, ad esempio quelle non affette da rumore salt & pepper, nel caso si stia operando per eliminare tale rumore. Tale problema viene attenuato applicando successivamente l operatore di dilatazione. Ha quindi effetto simile alla erosione ma preserva meglio la struttura degli oggetti che vengono mantenuti dopo l erosione. Possiamo pensare all applicazione di tale operatore nel seguente modo: l elemento strutturale viene fatto scorrere all interno di ogni oggetto dell immagine; tutti i pixel di foreground che possono essere coperti dall elemento strutturale tale che esso sia interamente contenuto nella regione di foreground vengono lasciati immutati mentre tutti i pixel di foreground che non possono essere raggiunti dalla maschera, senza che essa venga a coprire punti al di fuori della regione di foreground vengono settati come background. Ecco un esempio di tale operazione con un elemento strutturale sferico applicato sull immagine triangolare a sinistra. Figura 3-12 Esempio di opening. L effetto dell opening è di preservare il più possibile regioni di forma simile all elemento strutturante, e di eliminare quelle differenti. In basso a destra vediamo il risultato dell apertura applicata all immagine in basso a sinistra, usando come elemento strutturale la maschera 3x3 di fig. 3-4. 16

Figura 3-13 Opening. Un esempio di problema che richiede l applicazione di opening è l eliminazione delle linee dall immagine di fig. 3-14. Figura 3-14. Viene utilizzato un elemento strutturale a forma sferica di raggio pari a quello dei cerchi da preservare ottenendo il seguente risultato. Figura 3-15. 17

3.4.5 Closing Si tratta dell operatore duale dell opening, e consiste nell applicare la dilatazione seguita dall erosione utilizzando lo stesso elemento strutturale. Def.: A B A B B Sebbene la dilatazione abbia l effetto di riempire piccoli buchi negli oggetti di foreground essa tratta in modo uguale tutte le regioni dell immagine. Tale problema viene risolto applicando successivamente l erosione. Ha quindi effetto simile alla dilatazione ma preserva meglio la struttura dell immagine. Possiamo pensare all applicazione di tale operatore nel seguente modo: l elemento strutturale viene fatto scorrere attorno ad ogni oggetto dell immagine; per ogni pixel di backgrund, se l elemento strutturale può toccare tale punto senza intersecare alcun punto della regione di foreground il pixel di backgrund rimane tale, altrimenti viene settato come foreground. In figura è mostrato quanto detto sopra con elemento strutturale a forma sferica. Figura 3-16 Esempio di chiusura. In basso a destra vediamo il risultato di tale operatore applicato all immagine in basso a sinistra, usando come elemento strutturale la maschera 3x3 di fig. 3-4; osserviamo come l operatore tenda a riempire i buchi all interno degli oggetti. Figura 3-17. 18

3.4.6 Hit-or-miss Transformation Si tratta di un operatore utilizzato per individuare particolari patterns all interno di una immagine ed è alla base di molti altri operatori da esso derivabili. Def.: Possiamo comprendere il significato di tale definizione dal seguente esempio. Figura 3-18 Procedimento dell operatore hit-or-miss transform. In figura a) abbiamo l immagine in input costituita da 3 oggetti X, Y, Z. In figura b) il complementare di X rispetto ad una finestra W che lo racchiude. In fiura d) abbiamo il risultato dell erosione di A con X La figura c) mostra il complementare di A mentre la figura e) mostra il risultato dell erosione di A c con W-X. 19

Dalla figura f) possiamo notare come l esatta posizione dall intersezione delle figure d) ed e), ovvero dall insieme: A B A X Ac W in cui troviamo X in A, è data X Possiamo generalizzare tale formula ponendo B=(B1,B2) dove B1 è l insieme degli elementi di B associati con il foreground e B2 è l insieme degli elementi di B associati con il background ottenendo la formula vista nella definizione. L insieme A B contiene quindi l insieme delle posizioni in cui B1 trova match (hit) in A e B2 trova match in Ac. Potremmo ad esempio voler individuare tutti gli spigoli di una figura. A tale scopo applichiamo l operatore ripetutamente utilizzando in sequenza gli elementi strutturali sotto riportati: Figura 3-19. Sotto l immagine in input ed il risultato dell operatore: Figura 3-20 Individuazione degli angoli attraverso gli elementi strutturali di fig. 3-20. 20

3.5 Algoritmi Morfologici La principale applicazione della morfologia alle immagini binarie riguarda l estrazione di componenti dell immagine utili per la rappresentazione e descrizione della sua forma. I principali algoritmi morfologici effettuano estrazione dei lati, componenti connesse, convex hull e scheletro di una regione. 3.5.1 Boundary Extraction Boundary extraction I contorni di una immagine A, che indicheremo con A, possono essere ottenuti effettuando l erosione di A con l elemento strutturale B, e successivamente sottraendo do A il risultato dell erosione: A A A B Nella figura sottostante vediamo l immagine un esempio di tale algoritmo con l elemento strutturae di fig.3-4. Figura 3-21 Boundary extraction. 21

3.5.2 Region Filling Tale algoritmo ha lo scopo di riempire le regioni dell immagine in input ed è basato su dilatazione, complementazione ed intersezione. Inizialmente viene scelto un punto p all interno della regione e da esso l intera regione viene riempita settando i suoi pixel come foreground. Possiamo descrivere l algoritmo nel seguente modo: c X k X k 1 B A k=1,2,3, dove X 0 =p. L algoritmo termina quando X k= X k-1 L intersezione con il complementare di A viene effettuata per limitare il risultato della dilatazione all interno della regione di interesse, cioè della regione da riempire. Per meglio comprenderne il funzionamento vediamo un applicazione su una semplice immagine: Figura 3-22 Algoritmo Region Filling. In figura 3-23-a abbiamo l immagine di partenza di cui vogliamo riempire la regione interna ai pixel di foreground; in figura 3-23-b il complementare di A mentre in 3-23-c l elemento strutturale. In figura 3-23-d è riportato X 0, l insieme di partenza, ovvero l immagine con un solo pixel di foreground; l insieme X 1 è ottenuto da X 0 operando su di esso una dilatazione seguita dall intersezione con A c ; ad ogni passo l intersezione con il complementare di A limita il risultato della dilatazione all interno della regione di interesse; in figura e, f, g, vediamo gli insiemi ottenuti ai vari passi fino all immagine finale in figura h. 22

In figura sotto abbiamo un altro esempio di region filling; a destra l immagine di partenza nella quale viene selezionato un punto all interno di una delle sfere; al centro vediamo come la sfera sia stata riempita e a sinistra il risultato finale, ottenuto ripetendo il procedimento effettuato per la prima sfera. Figura 3-23 Region filling. 3.6 Extraction of connected components L estrazione delle componenti connesse ha un ruolo fondamentale in molte applicazioni per l analisi automatica di immagini. Un cammino da un pixel p di coordinate (x,y) ad un pixel q di coordinate (s,t) è una sequenza di pixel distinti, (x 0, y 0 ), (x 1, y 1 ),, (x n, y n ) con (x 0, y 0 )=(x,y) ed (x n, y n )=(s,t) ed i pixel (x i, y i ), (x i-1, y i-1 ) sono adiacenti per 1<=i<=n. Sia S un sottoinsieme dell immagine; due pixel p, q sono detti connessi in S se esiste un cammino tra di essi interamente costituito da pixel in S. L insieme dei pixel connessi al pixel p S è detto componente connessa di S. Sia Y una componente connessa di un insieme A e sia p Y. La seguente espressione consente di trovare tutti gli elementi di Y: X k X k 1 B A k=1,2,3, 23

Nella figura sottostante abbiamo una esempio di tale algoritmo. In Figura 3-24-a l immagine di partenza in b l elemento strutturale, alcuni passi intermedi c, d ed il risultato finale in e. Figura 3-24 Estrazione delle componentei connesse. 3.7 Thinning Si tratta di una operazione morfologica che ha l obbiettivo di rimuovere determinati pixel di foreground dall immagine binaria, riducendo lo spessore degli oggetti. Viene comunemente utilizzato per l estrazione dello scheletro ed è ottenuto attraverso hit-or-miss transform nel segutnte modo: Def.: L operatore è calcolato scorrendo l origine dell elemento strutturale su ogni pixel dell immagine in input e confrontandolo con i pixel dell immagine sottostante. Se i pixel di foreground e background dell elemento strutturale sono esattamente uguali con l immagine sottostante, il pixel su cui è posta l origine dell elemento strutturale viene posto a 0 cioè background, altrimenti viene lasciato inalterato. Un altra definizione comune per tale operatore è basata su una sequenza di elementi strutturali, B={B 1, B 2, B 3,, B n } dove B i è ottenuto dalla rotazione di B i-1:... 1 2... n 24

Si tratta quindi di un processo iterativo in cui l operazione di thinning viene applicata tra A e B 1, quindi il risultato con B 2 e così via fino a B n. In figura sotto abbiamo un esempio di thinning con una serie di elementi strutturali B 1, B 2, B 3,, B n. Figura 3-25 Thinning. Può essere utilizzato per ridurre lo spessore dei contorni di una immagine ottenuta con un operazione di sogliatura sull output di un algoritmo di edge detection. 3.8 Thickening Si tratta dell operatore duale del precedente ed è usato per accrescere determinate regioni di foreground di una immagine. Def.: L operatore viene implementato facendo scorrere l origine dell elemento strutturale su tutti i pixel dell immagine e confrontandolo con i pixel dell immagine sottostante. Se i pixel di foreground e background della maschera e dell immagine sottostante sono uguali il pixel in input su cui è posta l origine della maschera viene settato come foreground, altrimenti rimane inalterato. Come nel caso precedente è possibile operare utilizzando una serie di elementi strutturali B={B 1, B 2, B 3,, B n } facendo uso della seguente definizione: 25

Un algoritmo alternativo comunemente utilizzato per ottenere il thickening di un A è il seguente: Viene costruito l insieme C=A c Si opera il thinning su C ottenendo l insieme D Il risultato finale è il complementare di D, D c a cui vengono tolti eventuali punti disconnessi con una fase di post processing. In figura sotto vediamo l applicazione del metodo appena descritto; a) insieme A b) insieme C=A c c) D=thinning(C) d) insieme D c e) risultato finale dopo l eliminazione dei pixel isolati. Figura 3-26 Thickening 26

3.9 Skeletons Lo scopo di tale operatore è quello di ridurre la regione di foreground ad uno scheletro che preservi il più possibile l estensione e la connettività delle regioni dell immagine binaria in input. Possiamo definire il concetto di scheletro, S(A), di una immagine introducendo il concetto di disco massimo: Se z è un punto di S(A) e (D) z è il più grande disco centrato in z e contenuto in A, non è possibile trovare un disco più largo contenente (D) z e contenuto in A. Il disco (D) z è chiamato disco massimo; Il disco massimo (D) z tocca i bordi di A in due o più punti. Lo scheletro di A è dato dall insieme di tutti i punti di A sui quali è possibile centrare un disco massimo come mostrato fig.3-27. Viene mostrata l immagine originale, vari punti su cui sono centrati i relativi dischi massimi e lo scheletro finale che è costituito dalle linee tratteggiate di fig. 3-27-e; Figura 3-27 Scheletro: a) immagine iniziale; b), c) alcuni punti dello scheletro e i relativi dischi massimi; e) scheletro completo. 27

È possibile dimostrare che lo scheletro può essere espresso in temini di erosione e dilatazione: dove: K S A k 0 S k A S k A A kb A kb B B è l elemento strutturale ed A kb indica k successive erosioni di A con B. Il limite della sommatoria, K, è il numero massimo di volte per cui è possibile erodere A senza che si ottenga l insieme vuoto; l erosione K+1 produrrebbe quindi come risultato l insieme vuoto: k max k ( A kb) L imagine di partenza A può essere ottenuta dall unione dei vari S k (A): A k K 0 S k A kb In figura sotto vediamo l applicazione di tale procedimento. Il valore massimo di k è K=2; una successiva erosione produrrebbe l insieme vuoto. Nella seconda colonna ritroviamo il risultato dell operatore di opening applicato alle corrispondenti immagini della prima colonna. Nella colonna 3 abbiamo i vari S k (A) mentre l ultimo elemento della quarta colonna è il risultato finale dell operatore. Nelle ultime due colonne è in fine mostrato come sia possibile ricostruire l immagine di partenza. 28

Figura 3-28 Costruzione dello scheletro. 3.10 Estensione alle immagini a toni di grigio Definiamo adesso i principali operatori morfologici nel caso di immagini a toni di grigio. Con f indichiamo la funzione immagine e con b la funzione elemento strutturale. 3.10.1 Dilation Def.: f b s, t max f s x, t y b x, y s x, t y D f ; x, y D b dove D f D b sono i domini di f e b rispettivamente. Se tutti i valori dell elemento strutturale sono positivi l output tende ad essere più chiaro dell input e i dettagli più scuri tendono ad essere ridotti o eliminati a seconda dell element strutturale. 29

Ciò può essere implementato nel seguente modo: dopo aver posto il centro dell elemento strutturale sul pixel in input, viene calcolato il massimo della somma punto a punto dei valori di grigio dell immagine sottostante l elemento strutturale. In basso vediamo un esempio di dilatazione su un segnale monodimensionale, calcolata con la seguente formula: b s max f s x b x s x D x f f ; D b Figura 3-29 Dilatazione su un segnale monodimensionale 3.10.2 Erosion Def.: f b s t min f s x, t y b x, y s x, t y D x, y, f ; D b dove D f D b sono i domini di f e b rispettivamente. Come nel caso precedente ciò può essere implementato nel seguente modo: dopo aver posto il centro dell elemento strutturale sul pixel in input, viene calcolato il minimo della differenza punto a punto dei valori di grigio dell immagine sottostante l elemento strutturale. L immagine finale sarà più scura di quella in input. Nel caso unidimensionale la definizione si riduce alla seguente: f b s min f s x b x s x, D f ; x D b 30

Figura 3-30 Erosione di un segnale monodoimensionale. Esempio di dilatazione ed erosione su una immagini a toni di grigio: a sinistra l immagine in input, in alto a destra il risultato della sua dilatazione di in basso al centro il risultato dell erosione. Figura 3-31 Dilatazione ed Erosione 31

3.10.3 Opening e Closing Sono definidi in modo del tutto analogo al caso si immagini binarie: opening: f b f b b closing: f b f b b dove gli operatori di dilatation ed erosion sono stavolta quelli sopra definiti. Sotto vediamo le operazioni di opening e closing ad un segnale monodimensionale. Il segnale in input, fig. 3-32-a viene dapprima elaborato con opening, fig fig. 3-32-b-c, e poi con closing, fig. 3-32-d-e. Figura 3-32 (a) segnalein input, (b) openeing, (c) risultato dell'operatore opening, (d) closing, (e) risultato dell'operatore closing. 32

3.11 Applicazioni degli operatori morfologici ad immagini a toni di grigio. 3.11.1 Morphological Smoothing Consiste nello smussare l immagine in input applicando l operatore opening seguito da closing. Ciò consente essenzialmente l eliminazione di rumore dall immagine. 3.11.2 Morphological Gradient Viene calcolato nel seguente modo: g ( f ) f b f b Evidenzia le transizioni livelli di grigio presenti nell immagine quindi la forma. 3.11.3 Top-hat Transformation Tale operatore evidenzia i dettagli dell immagine in presenza di ombra ed è definito nel seguente modo: h f f b 3.11.4 Textural Segmentation Consente di effettuare una segmentazione dell immagine. Consideriamo come esempio l immagine in basso a sinistra e il risultato dell algoritmo in basso a destra: Figura 3-33 Textural Segmentation. 33

In figura 3-34-a è riportata l immagine da segmentare; essa è costituita da cerchi di due dimensioni; sulla regione di sinistra i cerchi hanno dimensione inferiore rispetto a quelli di destra. Vogliamo separare le due regioni individuando una linea di confine, mostrata in fig. 3-35-b. Anzitutto viene applicato l operatore di chiusura che ha come effetto quello di rimuovere i dettagli scuri dell immagine. L operatore viene applicato più volte utilizzando un elemento strutturale di dimensioni crescenti. Quando esso raggiunge dimensione uguale ai cerchi di diametro inferiore essi sono rimossi dall immagine che sarà adesso costituita dai cerchi di diametro maggiore sulla destra e da una zona più chiara sulla sinistra. Viene quindi eseguita una singola applicazione dell operatore di opening che scurisce gli spazi chiari tra i cerchi a sinistra producendo una regione costituita da cerchi spaziati da zone scure con uguale livello di grigio. A questo punto l immagine di partenza è costituita da due regioni: una più chiara sulla sinistra ed una più scura sulla destra. Effettuando una sogliatura si riesce ad individuare il confine tra i due gruppi di cerchi nell immagine di partenza. 4 Descrizione del Plugin 4.1 Le classi Class Structural Element E la classe che rappresenta l elemento strutturale provvista di metodi per la costruzione della maschera con verie forme e dimensioni. public StructuringElement(int shape,int diameter) E il costruttore a cui viene passato in input la forma e la dimensione della maschera. I seguenti metodi creano la maschera con forma opportuna e diametro definito nella variabile interna diameter: void createcircularmask() Crea una maschera circolare void createsquaremask() Crea una maschera quadrata void createcrossmask() Crea una maschera con i pixel di foreground a forma di croce public void createvlinemask() Crea una maschera con i pixel di foreground che formano una linea verticale public void createhlinemask() Crea una maschera con i pixel di foreground che formano una linea orizzontale public void setmask(int[][] m) Setta i pixel dell elemento strutturale con i valori passati in input public int get(int x,int y) restituisce il valore dell elemento (x,y) della maschera public int getdiameter() restituisce il diametro dell elemento strutturale 34

Class DrawPanel Tale classe si occupa della visualizzazione dell elemento strutturale; la visualizzazione viene aggiornata ogni volta che viene cambiata la forma o la dimensione dell elemento strutturale o quando l utente decide di disegnarne uno proprio. Tra i metodi principali abbiamo: public void setgrid(int[][] mask,int size) Tale metodo viene invocato ogni volt ache l utente cambia la forma o la dimensione dell elemento strutturale attraverso gli appositi combo box dell interfaccia grafica. In input viene passata la matrice contenente i valori dell elemento strutturale e la sua dimensione. public void setenable(boolean b) viene invocato ogni volta che l utente clicca sul pulsanta Draw Structural Element per abilitare il disegno sulla griglia visualizzata. public void reset() azzera i valori della griglia ogni volta che l utente clicca sul pulsanta Draw Structural Element. public int[][] getmask() Tale metodo viene invocato griglia ogni volta che l utente clicca sul pulsanta Apply e serve a passare i valori della griglia all elemento strutturale da utilizzare negli operatori morfologici implementati. Class Morphology E la classe principale che implementa gli operatori morfologici di base, dilation, erosion, opening, closing, e gli algoritmi boundary extraction e smoothing. Tali operatori vengono implementati sia nel caso di immagini binarie che a toni di grigio, modalità selezionabile tramite gli appositi radio button. 35

4.2 L interfaccia grafica Figura 4-1 L interfacciagrafica del plugin 1. Combo box da cui selezionare l operatore da applicare. E possibile scegliere tra: Dilation Erosion Closing Opening Hit-Or-Miss Transform Boundary Extraction Smoothing Gradient 2-3. Attraverso i due radio button è possibile specificare la modalità con cui operare, cioè operatori binari o per immagini a scala di grigi. 4. Combo box da cui selezionare il tipo di elemento strutturale da applicare. Le forme disponibili sono: Circle: elemento strutturale a forma sferica Square: elemento strutturale a forma quadrata Cross: elemento strutturale a forma di croce 36

HLine: linea orizzontale VLine: linea verticale 5. Combo box per selezionare la dimensione dell elemento strutturale. E possibile editare la dimensione se non presente tra quelle disponibili. 6. Attraverso tale pulsante viene attivata la modalità di disegno dell elemento strutturale. Ogni volta che l utente clicca su tale pulsante la griglia rappresentata nel pannello 8 viene azzerata ed è possibile disegnare l elemento strutturale che verrà poi utilizzato ciccando su Apply. 7. Attraverso tale pulsante viene caricato un elemento strutturale da file. E possibile caricare piccole immagini a toni di grigio della dimensione massima 100x100. 8. Pannello sul quale viene raffigurato l elemento strutturale. Viene aggiornato di seguito alla selezione o il caricamento da file di un nuovo tipo di elemento strutturale o ad una nuova dimensione o alla pressione sul bottone 6. 9. Slider che consente di selezionare il livello di grigio dei pixel dell elemento strutturale. Tale livello di grigio verrà preso in considerazione solo per le operazioni su scala di grigio. Per le operazioni binarie vengono considerati solo i valori 0 (background) ed 1 (foreground). 10. Questo pulsante consente di binarizzare un immagine a toni di grigio convertendola in immagine a due soli livelli, 0 e 255. Ciò viene realizzato con una semplice operazione di soglia sul livello di grigio dei pixel dell immagine. 11. Info sul plugin 12. Premendo su questo bottone viene applicato l operatore morfologico scelto con l elemento strutturale di forma e dimensione specificate e con la modalità scelta (binaria/gray scale). L algoritmo verrà applicato all intera immagine o alla regione di interesse, ROI, selezionata con le utilitydi ImageJ. 37

4.3 Alcuni risultati Dilation Un possibile utilizzo di tale operatore è l eliminazione di pepper noise. Figura 4-2 A sinistra l immagine originale e a destra quella ottenuta con l applicazione dell operatore; il rumore è stato rimosso Erosion Supponiamo di voler contare i dischi presenti in fig. 4-3-a. Ciò può risultare difficile per un algoritmo che esegue il conteggio in automatico in quanto i dischi nella figura formano una unica regione. E possibile separare i dischi applicando l erosione con elemento strutturale sferico di diametro 19 pixel. Figura 4-3 A sinistra l immagine originale e a destra quella ottenuta con l applicazione dell operatore. Closing L immagine in input è quella di fig. 4-4-a, consistente di cerchi di due dimensioni. Si vogliono eliminare quelli di diametro inferiore e mantenere gli altri. Applicando l operatore di chiusura con un elemento strutturale a disco di raggio 15 pixel, tutti i buchi di diametro inferiore vengono 38

riempiti. La chiusura consiste infatti nell applicare l operatore di dilatazione, che espande le regioni di foreground ovvero le regioni bianche dell immagine, seguite dall operatore di erosione che assottiglia le regioni di foreground consentendo così di preservare il diametro dei cerchi più grandi. Figura 4-4 A sinistra l immagine originale e a destra quella ottenuta con l applicazione dell operatore. Sono rimasti solo i cerchi di diametro maggiore. Opening L operatore viene applicato all immagine di figura 4-5-a. Vogliamo eliminare tutte le linee mantenendo solo i cerchietti. A tal proposito utilizziamo un elemento strutturale sferico di raggio pari a 13 pixel. L apertura consiste nel far scorrere tale elemento all interno degli oggetti di foreground ed etichettare come foreground tutti i pixel tali che ponendo su di essi il centro dell elemento strutturale, quest ultimo rimanga completamente contenuto nella regione. In basso l immagine in input ed i risultati dell operatore. Figura 4-5 A sinistra l immagine originale e a destra quella ottenuta con l applicazione dell operatore. Le linee sono state eliminate. 39

Nella fig. 4-6-a vogliamo mantenere solo le linee orizzontali eliminando le altre. A tal fine è sufficiente applicare un elemento strutturale a forma di linea orizzontale. Scegliendone opportunamente la lunghezza, 19 pixel nell esempio, esso non può essere interamente contenuto nelle linee verticali ed oblique presenti nell immagine cosicché tali linee verranno eliminate dalla figura. Figura 4-6 A sinistra l immagine originale e a destra quella ottenuta con l applicazione dell operatore. Le linee sono verticali ed oblique sono state eliminate. Boundary Extraction Figura 4-7 Boundary extraction. 40

Gradient Figura 4-8 41

This document was created with Win2PDF available at http://www.win2pdf.com. The unregistered version of Win2PDF is for evaluation or non-commercial use only.