Morfologia Matematica applicata alle Immagini Digitali

Похожие документы
Morfologia e Image Processing. Multimedia

Operazioni morfologiche

Morfologia e Image Processing

Operazioni morfologiche

Morfologia Matematica su immagini in scala di grigio

Morphological Image processing

Capitolo 9 LA MORFOLOGIA APPLICATA ALLE IMMAGINI DIGITALI

ELABORAZIONE DELLE IMMAGINI:

Corso di Visione Artificiale. Texture. Samuel Rota Bulò

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

Corso di Visione Artificiale. Filtri parte II. Samuel Rota Bulò

GUIDA PER UNA SCANSIONE OTTIMALE

3. Matrici e algebra lineare in MATLAB

CORSO PHOTOSHOP CC 2017 AREA DI LAVORO SELEZIONA E MASCHERA

DIPARTIMENTO DI MATEMATICA E INFORMATICA

Utilizzo di index() per determinare la colonna delle x

Esercitazione n 2. Costruzione di grafici

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Esercitazione su filtro di Sobel per l elaborazione delle immagini

Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754

Laboratorio con DERIVE

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

MATLAB parte II. Array

Capitolo 3: Ottimizzazione non vincolata parte III. E. Amaldi DEI, Politecnico di Milano

senza stato una ed una sola

Il contrasto. La percezione del contrasto. Contrasto e filling-in. Il contrasto simultaneo. Le distribuzioni di luminanza (ii)

Richiami di Algebra di Commutazione

Gimp Dispense. L Esame del Menù (9ª parte)

L INTERFACCIA GRAFICA DI EXCEL

Fondamenti di Elaborazione di Immagini Introduzione. Raffaele Cappelli.

Filtri e convoluzioni

3 CREAZIONE DI RILIEVI

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006

Problema ( ) = 0,!

Printer Driver. Questa guida descrive la configurazione del driver stampante per Windows 7, Windows Vista, Windows XP e Windows 2000.

EUROPEAN COMPUTER DRIVING LICENCE SYLLABUS VERSIONE 5.0

Programma del corso di Elaborazione delle immagini I

La codifica delle immagini

Menù principale di Calc

Rappresentazione degli algoritmi

Creare un ombra suggestiva

Luigi Piroddi

Istogramma dei livelli di grigio

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

ALGORITMO SPUTNIK 1. INTRODUZIONE

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due

STRUMENTI PENNA E TRACCIATI. EDI Strumenti penna e tracciati 1

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

SPECCHI. Dalla posizione dell'immagine non emergono raggi luminosi; essa si trova sull'immaginario prolungamento dei raggi di luce riflessa.

Esercizi-Calcolo diretto di campo elettrico

MODULO OPZIONALE PORTE

Lavorare con le superfici NURBS

Creazione di una gif animata con Gimp

HISTOGRAM MATCHING Di Raimondo Graziano - Nicolosi Salvatore Multimedia A.A

Secondo parziale di Matematica per l Economia (esempio)

Algoritmi di Ricerca. Esempi di programmi Java

Procedure di rimozione del gradiente per cielo profondo. (metodo locale)

Per qualunque informazione, curiosità o aiuto potete scrivere a

Ordinamenti per confronto: albero di decisione

Sistemi di Numerazione Binaria

Come migliorare la qualità di taglio plasma

Calcolo Vettoriale. 1.1 Vettori. Prodotto scalare. Definizione: a b = a b cosθ. In coordinate cartesiane: a b = a 1 b 1 +a 2 b 2 +a 3 b 3.

Fondamenti di Informatica

Fondamenti di Elaborazione di Immagini Estrazione dei Bordi e Segmentazione. Raffaele Cappelli raffaele.cappelli@unibo.it

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 11 - Metodi numerici per equazioni differenziali ordinarie

Funzioni di un GIS Analisi spaziale

La codifica binaria. Informatica B. Daniele Loiacono

Esercitazioni di Reti Logiche. Lezione 3

Cartografia IGM in formato digitale

STRUMENTI SELEZIONE A MANO LIBERA e FORBICI INTELLIGENTI

Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro;

Printer Driver. Questa guida descrive come configurare il driver della stampante per Windows Vista e Windows XP.

Транскрипт:

Morfologia Matematica applicata alle Immagini Digitali Daniela Garofalo Viviana Zimbone

MORFOLOGIA MATEMATICA Branca della matematica rivolta all elaborazione delle immagini. Fornisce strumenti utili per: rappresentare e descrivere le forme degli oggetti presenti in un immagine rimuovere particolari irrilevanti mantenendo le informazioni importanti sulla forma degli oggetti Elemento strutturante: Immagine binaria che viene utilizzata come parametro nelle operazioni morfologiche (es. 3x3 o 5x5). In Matlab l elemento strutturante può essere generato utilizzando la funzione strel, che grazie ai parametri passati permette la creazione di diverse forme a grandezza variabile. Applicata su: Immagini binarie Immagini a scala di grigio

DILATION L operazione di dilatazione aggiunge pixel ai contorni di un oggetto. Il numero di pixel aggiunti dipende dalla forma e dalla dimensione dell elemento strutturante. ü Immagini a scala di grigio A = imread ('dilation.jpg'); e = strel ('diamond', 4); D = imdilate (A, e);

EROSION L operazione di erosione rimuove pixel ai contorni di un oggetto. Il numero di pixel rimossi dipende dalla forma e dalla dimensione dell elemento strutturante. ü Immagini a scala di grigio A = imread ('erosion.jpg'); e = strel ('diamond', 3); D = imerode (A, e);

DILATION & EROSION Le operazioni di dilatazione ed erosione possono essere usate congiuntamente per ottenere altre operazioni. Ad esempio: GRADIENT LAPLACIAN OPENING CLOSING

GRADIENT Poiché la dilatazione rende le regioni più spesse e l erosione le assottiglia, la loro differenza (GRADIENT) enfatizza i confini tra le regioni. Il risultato è un immagine in cui si vedono bene i bordi tra gli oggetti e in cui non è presente il contributo di zone omogenee. ü Immagini a scala di grigio A = imread ('image.jpg'); e = strel ('square', 15 ); G = imdilate(a, e) imerode(a, e);

LAPLACIAN Un alternativa al gradiente morfologico è l operatore laplaciano che tende a formare contorni chiusi. ü Immagini a scala di grigio A = imread ('image.jpg'); e = strel ('square', 15 ); L = imdilate(a, e) + imerode(a, e) 2*A;

OPENING L operazione di apertura ha come scopo di preservare il più possibile regioni di forma simile all elemento strutturante e di eliminare quelle differenti. ü Immagini a scala di grigio A = imread ('opening.jpg'); e = strel ('octagon, 12 ); E = imerode (A, e); D = imdilate (E, e);

OPENING In realtà Matlab prevede il comando imopen per realizzare l operazione di apertura. A = imread ('opening.png'); e = strel ('octagon', 12); O = imopen (A, e);

CLOSING L operazione di chiusura ha come scopo di chiudere eventuali buchi e piccole concavità nell immagine e rafforza la connessione di regioni unite debolmente. ü Immagini a scala di grigio A = imread ('closing.png'); e = strel ('disk', 15); D = imdilate (A, e); E = imerode (D, e);

CLOSING In realtà Matlab prevede il comando imclose per realizzare l operazione di chiusura. A = imread ('closing.jpg'); e = strel ('disk', 15); O = imclose (A, e);

OPENING & CLOSING Le operazioni morfologiche possono essere adoperate per agire analogamente ai filtri spaziali. Vediamo adesso due esempi di applicazione delle operazioni di apertura e chiusura. NOISE REDUCTION Per ottenere la riduzione del rumore in un immagine binaria senza modificare le strutture che caratterizzano l immagine si sceglie un elemento strutturante piccolo e si procede effettuando un operazione di apertura seguita da una di chiusura.

OPENING & CLOSING ü Immagini a scala di grigio SMOOTHING MORFOLOGICO Dato che l operazione di apertura sopprime i dettagli brillanti più piccoli di uno specifico elemento strutturante e che la chiusura sopprime dettagli scuri, nelle immagini a scala di grigio queste due operazioni sono usate insieme per realizzare i filtri morfologici di smoothing e di noise reduction. A = imread ('noise.jpg'); e = strel ('square', 3 ); O = imopen (A, e); C = imclose (O, e);

EDGE DETECTION I contorni di un immagine si possono ottenere applicando l operazione di erosione con un opportuno elemento strutturante (determina lo spessore del contorno) sottraendo poi il risultato all immagine originale. ü Immagini a scala di grigio A = imread ('edge.jpg'); e = strel ('square', 4 ); E = imerode (A, e); diff = A E;

HIT OR MISS TRANSFORM La trasformazione Hit or Miss è uno strumento base per la shape detection (individuazione delle forme) all interno di un immagine. Si applica l operazione di erosione all immagine con un opportuno elemento strutturante e poi di nuovo ai loro complementi. Dall intersezione degli insieme ottenuti si ottengono le posizioni dei pixel cercate. A = imread ('hitormiss.png'); e = strel ('line', 30, 90 ); E = imerode (A, e); E1 = imerode (not(a), not(e)); I = and (E, E1);

HIT OR MISS TRANSFORM In realtà Matlab prevede il comando bwhitmiss per realizzare la trasformazione Hit or Miss. A = imread ('hitormiss.png'); e = strel ('line', 30, 0 ); H = bwhitmiss(a, e, not(e));

HTM CORNER DETECTION La trasformazione Hit or Miss può essere utilizzata per determinare gli angoli presenti in un immagine binaria. 1 1 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 Se i pixel di foreground e background dell elemento strutturante hanno un exactly match con il foreground e background pixels dell immagine, allora il pixel corrispondente alla posizione dell origine dell elemento strutturante verrà settato a 1, altrimenti 0.

HTM CORNER DETECTION Il risultato finale è un OR di quattro immagini ciascuna ottenuta da uno dei quattro elementi strutturanti. A = imread ('cornerdetection.png'); r = zeros (size(a)); for x=0:1 for y=0:1 for z=0:1 c1 = [x 1 y; 0 1 1; 0 0 z]; c2 = [x 1 y; 1 1 0; z 0 0]; c3 = [x 0 0; 1 1 0; y 1 z]; c4 = [ 0 0 x; 0 1 1; y 1 z]; b1 = bwhitmiss(a, c1, not(c1)); b2 = bwhitmiss(a, c2, not(c2)); b3 = bwhitmiss(a, c3, not(c3)); b4 = bwhitmiss(a, c4, not(c4)); r=r b1 b2 b3 b4; end end end

COMANDO bwmorph Il comando bwmorph di Matlab è applicabile solo a immagini binarie e realizza diverse operazioni formate da una combinazione di quelle base, la sintassi è: bwmorph ( x, operation); bwmorph ( x, operation, n); dove x è l immagine binaria, operation il tipo di operazione morfologica e n il numero di volte che l operazione deve essere applicata. (n può essere inf nel caso cui l operazione viene ripetuta finchè l immagine non cambia più) Tramite questo comando è possibile effettuare operazioni di dilatazione, erosione, apertura e chiusura, inserendo in operation rispettivamente 'dilate', 'erode', 'open' e 'close'.

THINNING L operazione di assottigliamento riduce la forma di un oggetto rendendo le linee più sottili. A = imread ('thinning.tif'); B = bwmorph (A, 'thin', inf); Quando n=inf si assottigliano gli oggetti dell immagine in linee.

THICKENING L operazione di ispessimento viene utilizzata per far crescere regioni opportunamente selezionate. A = imread ('thickening.tif'); B = bwmorph (A, 'thicken', 4);

SKELETONIZATION La scheletrizzazione è un operazione morfologica che riduce gli oggetti in un immagine binaria ad un insieme di linee sottili che conservano l informazione rilevante sulla forma dell oggetto. A = imread ('skeletonization.jpg'); B = bwmorph (A, 'skel', inf);

BRIDGE Cerca gruppi di pixel non connessi e li congiunge cambiando lo 0 in 1. ESEMPIO 1 0 0 1 0 1 0 0 1 diventa 1 0 0 1 1 1 0 0 1 A = imread ('image.png'); B = bwmorph (A, 'bridge', 1);

CLEAN Questa operazione elimina pixel isolati. Ad esempio un singolo 1 circondato da tutti 0. A = imread ('image.png'); B = bwmorph (A, 'clean', 1); ESEMPIO 0 0 0 0 1 0 0 0 0

SHRINK Con questa operazione si rimuovono i pixel dell immagine in modo che gli oggetti senza fori si riducano ad un punto e quelli con dei fori si riducano ad un anello collegato a metà tra ciascun foro e il contorno esterno. A = imread ('shrink.jpg'); B = bwmorph (A, 'shrink', inf); Quando n=inf si riducono in punti gli oggetti dell immagine.

PIXEL FILLING Questa operazione permette di riempire i pixel isolati situati all interno di un immagine binaria. ESEMPIO 1 1 1 1 0 1 1 1 1 A = imread ('pixel.jpg'); B = bwmorph (A, 'fill', 1); Invece, l operazione 'hbreak rimuove i pixel connessi. 1 1 1 0 1 0 1 1 1 diventa 1 1 1 0 0 0 1 1 1

REGION FILLING È un operazione che riempie i fori presenti in un immagine binaria o a scala di grigio. Un foro è definito come un area di pixel scuri circondati da pixel più chiari. ü Immagini a scala di grigio A = imread ('regionfilling.png'); F = imfill (A, 'holes');

CONNECTED COMPONENTS È un operazione che permette di trovare le componenti connesse presenti in un immagine binaria. A = imread ('connected.jpg'); C = bwconncomp(a); x = C.NumObjects; R = label2rgb(labelmatrix(c)); p=cc.pixelidxlist; In particolare, l istruzione x = C.NumObjects restituisce il numero di componenti connesse individuate nell immagine e l istruzione p=cc.pixelidxlist restituisce un cell array che contiene gli indici lineari dei pixel di ogni componente.

CONVEX HULL Calcola l involucro convesso di tutti gli oggetti presenti nell immagine trattandoli come un unico oggetto e restituisce un immagine binaria convessa. A = imread ('convexhull.png'); Q = bwconvhull (A);

TOP HAT & BOTTOM HAT Una delle applicazioni principali di queste trasformazioni è la rimozione degli oggetti da un immagine attraverso un elemento strutturante che non si abbina agli elementi da rimuovere; la loro differenza porta ad avere un immagine in cui rimangono solo le componenti rimosse.

TOP HAT La trasformazione top-hat si usa per oggetti chiari su uno sfondo scuro (white top-hat) e viene spesso utilizzata per correggere efficacemente gli effetti di un illuminazione non uniforme (shading correction). ü Immagini a scala di grigio A = imread ('tophat.png'); e = strel ('disk', 3 ); T = imtophat(a, e);

BOTTOM HAT La trasformazione bottom-hat si usa per oggetti scuri su uno sfondo chiaro (black top-hat) e viene spesso utilizzata per correggere efficacemente gli effetti di un illuminazione non uniforme (shading correction). ü Immagini a scala di grigio A = imread ('bottomhat.png'); e = strel ('disk', 3 ); T = imbothat(a, e);

CORREZIONE ILLUMINAZIONE

SE NON-FLAT Estendendo la morfologia ad immagini a scala di grigio si possono utilizzare elementi strutturanti di tipo non-flat dove ad ogni elemento è assegnato un valore di intensità, il cui intervallo di valori è lo stesso di quello dell'immagine a toni di grigio. SE = strel ('ball', R, H, N) Crea un elemento strutturante non-flat a forma di ellissoide, il cui raggio nel piano x-y è R e la cui altezza è H. R deve essere un intero non negativo H deve essere uno scalare reale N deve essere un intero non negativo

SE NON-FLAT Quando N > 0 l'elemento strutturante sferico è approssimato da una sequenza di N elementi strutturanti non-flat a forma di linea. Quando N = 0 non viene utilizzata alcuna approssimazione e i membri dell elemento strutturante consistono in tutti i pixel i cui centri non sono maggiori di R rispetto all'origine. I corrispondenti valori di altezza sono determinati dalla formula dell'ellissoide specificata da R e H. Se N non è specificato, il valore predefinito è 8. SE = strel ('ball', R, H, N)