Corso di Multimedia A.A 2013/2014

Documenti analoghi
Estrazione dei bordi

ELABORAZIONE DELLE IMMAGINI:

Introduzione a Matlab

Filtraggio. Stefano Ferrari. Università degli Studi di Milano Tecniche di calcolo e sistemi operativi e informatica

Corso di Visione Artificiale. Features. Samuel Rota Bulò

Low Level Vision: Edge

Trasformare e migliorare

Sharpening mediante filtraggio spaziale

Segmentazione di immagini. Multimedia

Esercitazione 4: Filters

Image Processing 2. Dispense del corso di Elaborazione di Immagini e Audio Digitali. Prof. Roberto Vezzani.

Elaborazione delle immagini

Elaborazione di immagini. Trasformare e migliorare. Scopi dell elaborazione. Tipi di elaborazione

Dato un vettore di lunghezza N, questo può essere pensato come un elemento di uno spazio N dimensionale.

Corso di Visione Artificiale. Texture. Samuel Rota Bulò

3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI

Elaborazione di immagini. I filtri Digital Image Processing

Algoritmi per il riconoscimento dell iride

Operatori locali. Operatori locali. Q=f(P,w)

Elaborazione di immagini digitali: trasformare e migliorare

Elaborazione delle immagini a basso livello

Università degli Studi di Catania. DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Specialistica in Informatica.

AL DI LA DELLE IMMAGINI

Low Level Vision: Trasformata di Hough

Low Level Vision: Trasformata di Hough

Operatori locali su immagini digitali

Progetto di Computer Vision: Plugin per imagej: Harry Corners Detection. Corso di laurea specialistica in Informatica.

Università degli studi di Catania Facoltà di scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica Magistrale

Edge e Segmentazione

Un modello computazionale per la detezione dei bordi

Video Analysis (cenni) Annalisa Franco

Filtraggio nel Dominio della Frequenza

L istogramma. Interazione & Multimedia 2

Operazioni sulle immagini. Multimedia

Tecniche fuzzy per le trasformazioni di intensità e il filtraggio spaziale

Immagini binarie. Binarizzazione di immagini a livelli di grigio

Matematica. Corso integrato di. per le scienze naturali ed applicate. Materiale integrativo.

Corso di Matematica per la Chimica

26 - Funzioni di più Variabili Limiti e Derivate

Basi matematiche per il Machine Learning

Image segmentation. Elaborazione intermedia

Telerilevamento e Modellistica Forestale

Un sistema fuzzyper il miglioramento del contrasto

1 Schemi alle differenze finite per funzioni di una variabile

Operazioni puntuali. Tipi di elaborazioni Operatori puntuali Look Up Table Istogramma

SEGMENTAZIONE DI IMMAGINI. Elaborazione dei Segnali Multimediali Raffaele Gaetano 06 Maggio 2014

Morfologia Matematica su immagini in scala di grigio

Matematica. Corso integrato di. per le scienze naturali ed applicate. Materiale integrativo. Paolo Baiti 1 Lorenzo Freddi 1

Restauro di immagini. Prof. Filippo Stanco. Multimedia

Funzioni reali di variabile reale

Calcolo Numerico con elementi di programmazione

25 - Funzioni di più Variabili Introduzione

Esercitazione di Analisi Matematica II

Processamento di immagini

4. I dati sperimentali 4.1 Introduzione

11 luglio Soluzione esame di geometria - Ing. gestionale - a.a COGNOME... NOME... N. MATRICOLA... ISTRUZIONI

Esercizi su estremi vincolati e assoluti

Le derivate parziali

Funzioni per la descrizione delle immagini

Principi di Programmazione Prova del 10/6/2008 (ore 10.30)

Appunti di Elaborazione di Segnali Multimediali a.a. 2017/2018. La segmentazione. L.Verdoliva

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

Introduzione al Metodo agli Elementi Finiti (FEM) (x, y) Γ Tale formulazione viene detta Formulazione forte del problema.

ESERCITAZIONE 7 : FUNZIONI

Minimi quadrati e massima verosimiglianza

Facoltà di Ingegneria Calcolo delle Probabilità e Statistica Ingegneria Civile e A&T e Informatica

1 PRELIMINARI 1.1 NOTAZIONI. denota l insieme vuoto. a A si legge a appartiene a A oppure a è elemento di A.

Operazioni locali: Edging

Esercizi svolti. delle matrici

Curve e lunghezza di una curva

ESERCITAZIONE SUI PUNTI STAZIONARI DI FUNZIONI LIBERE E SULLE FUNZIONI OMOGENEE

Lezione 6 Richiami di Geometria Analitica

SIMULAZIONE - 29 APRILE QUESITI

Equazioni e sistemi non lineari

II Università degli Studi di Roma

Elaborazione nel dominio delle frequenze. Elaborazione delle immagini digitali 1

Operatori locali su immagini digitali

Elaborazione delle immagini

Segmentazione di immagini in scala di grigio basata su clustering

4. VALORI CENTRALI. Statistica sociale

LA STRUTTURA DEI PROBLEMI DI OTTIMIZZAZIONE. L'ipotesi di razionalità implica che un decisore cerchi di

Vettori applicati. Capitolo Richiami teorici. Definizione 1.1 Un sistema di vettori applicati Σ è un insieme

Calcolo differenziale 2: Massimi e minimi. Studio di una funzione. (M.S.Bernabei & H. Thaler)

Una libreria di funzioni per la geometria analitica

figura. A figura. B Il modulo è la lunghezza o intensità del vettore. Il punto di applicazione è l origine del vettore detto anche coda.

GEOMETRIA ANALITICA 1 IL PIANO CARTESIANO

Esercizi geometria analitica nello spazio. Corso di Laurea in Informatica. Docente: Andrea Loi. Correzione

Video Parte 4a. Stabilizzazione. Multimedia

Introduzione alla Matematica per le Scienze Sociali - parte II

Sistemi di Elaborazione dell Informazione 170. Caso Non Separabile

Esercizi Riepilogativi Svolti

8 Valore assoluto. 8.1 Definizione e proprietà

Calcolo differenziale 2: Massimi e minimi. Studio di una funzione. (M.S.Bernabei & H. Thaler)

Calcolo differenziale 2: Massimi e minimi. Studio di una funzione. (M.S.Bernabei & H. Thaler)

Elementi di matematica - dott. I. GRASSI

GEOMETRIA ANALITICA

Transcript:

Corso di Multimedia A.A 2013/2014

Un immagine è rappresentata da una funzione bidimensionale f(x,y). Il piano XY in cui stanno le coordinate dell immagine è detto DOMINIO SPAZIALE e le variabili x,y sono dette variabili spaziali o coordinate spaziali. Tutte le tecniche di elaborazione dell immagine che illustreremo (edge detection) vengono implementate nel dominio spaziale, che, quindi, altro non è che il piano stesso che contiene i pixel di un immagine; esse, infatti, operano direttamente sui pixel di un immagine.

Una linea può essere vista come un segmento di edge in cui l intensità dello sfondo su entrambi i lati della linea è maggiore o minore dell intensità dei pixel della linea. Gli individuatori di edge (edge detection) sono metodi di elaborazione locale progettati per individuare i pixel della linea. Gli strumenti che permettono di individuare le brusche variazioni locali di intensità sono le derivate prima e seconda. In particolare la derivata prima produce edge spessi, mentre la derivata seconda evidenzia meglio i cambiamenti bruschi e quindi mette in rilievo i dettagli sottili (incluso il rumore).

Il gradiente viene utilizzato per definire l'intensità e la direzione di un edge in un certo punto (x,y). Tutto ciò è possibile perché il gradiente è un vettore bidimensionale che ha la proprietà geometrica di puntare nella direzione di massima variazione di f nel punto (x,y). Il gradiente e' definito: La direzione del gradiente è data dall angolo: calcolato rispetto all asse x. La direzione di un edge in un punto qualsiasi (x, y) è ortogonale alla direzione di α(x,y) del vettore gradiente in quel punto.

I tre passi fondamentali per individuare gli edge sono: APPLICARE LO SMOOTHING ALL'IMMAGINE PER RIDURRE IL RUMORE PRESENTE INDIVIDUARE I POTENZIALI PUNTI DI EDGE LOCALIZZARE GLI EDGE, CIOÈ SELEZIONARE TRA I PUNTI CANDIDATI QUELLI CHE LO SONO VERAMENTE L individuazione dei bordi è largamente utilizzata quando si vuole dividere l immagine in aree corrispondente a oggetti differenti. Rappresentare un immagine attraverso i suoi bordi permette che la quantità di dati da memorizzare è ridotta significativamente mentre la maggior parte delle informazioni vengono comunque mantenute. L individuazione dei bordi costituisce uno stadio preliminare nell analisi delle immagini.

Le tecniche utilizzate per questo scopo sono: Esse sono definite avanzate in quanto tengono conto di fattori come il rumore e la natura degli edge stessi.

Marr e Hildreth intuirono che le variazioni di intensità sono dipendenti dalla scala dell'immagine e quindi la loro individuazione richiede l'uso di operatori di dimensioni diverse. un cambiamento di intensità improvviso da origine a un picco o lungo la derivata prima o a uno zero crossing nella derivata seconda. Quindi le caratteristiche principali di un operatore utilizzato per l'individuazione degli edge dovrebbero essere: essere un operatore differenziale capace di calcolare un'approssimazione delle derivate prima e seconda in ogni punto dell'immagine poter essere regolato per agire a ogni scala selezionata, in modo tale che gli operatori più grandi possano essere utilizzati per individuare gli edge sfocati, mentre gli operatori più piccoli per individuare i dettagli più piccoli scarsamente visibili.

Marr e Hildreth intuirono che il miglior operatore che rispettasse queste condizioni fosse il filtro 2 G dove: 2 : è l operatore laplaciano G: è la funzione gaussiana 2-D G 2 + 2 x 2 y ( x, y) 2 x + y 2 2σ e = 2 2 con deviazione standard σ (a volte detto costante di spazio). Mettendo insieme i due termini si ha come espressione finale: 2 2 2 x + y 2 x + y 2σ 2 2σ G( x, y) = e 4 Questa espressione è detta il Laplaciano del Gaussiano ( LoG ) o, per via della sua forma, operatore a sombrero. σ 2 2

Mostriamo una maschera 5x5 che ne approssima la forma 0 0-1 0 0 0-1 -2-1 0-1 -2 16-2 -1 0-1 -2-1 0 0 0-1 0 0 (nella pratica si utilizzerebbe il negativo di questa maschera). Questa approssimazione non è unica. Il suo scopo è quello di catturare la forma essenziale della funzione LoG. Ci sono due aspetti fondamentali dietro la scelta dell operatore 2 G(x,y): 1. la parte gaussiana dell'operatore sfoca l'immagine, quindi riduce il rumore sia nel dominio spaziale che in quello della frequenza ed è quindi meno probabile che vengano introdotti artefatti non presenti nell'immagine originale. 2. il laplaciano ha il vantaggio di essere isotropico, cioè invariante per rotazione, e quindi ha le caratteristiche del sistema visivo umano e risponde in egual modo alle variazioni di intensità in ogni direzione della maschera, senza quindi la necessità di dover utilizzare maschere multiple per calcolare la risposta più forte.

L'algoritmo di Marr-Hildreth può essere riassunto nei seguenti passi: filtrare l immagine di input con un filtro passa basso gaussiano nxn ottenuto dalla funzione gaussiana 2D, cioè: G x + y 2 2σ ( x, y) = e Le dimensioni del filtro discreto LoG nxn dovrebbero essere tali che n sia il più piccolo intero dispari maggiore o uguale a 6σ (l uso di valori più grandi non influisce più di tanto sul risultato finale). 2 2 calcolare il laplaciano dell immagine ottenuta nel passo precedente utilizzando, ad esempio, la seguente maschera 3x3:

1 1 1 1-8 1 1 1 1 trovare gli zero crossing dell immagine del passo precedente per determinare le posizioni degli edge. Gli zero crossing sono la caratteristica fondamentale del metodo di individuazione degli edge di Marr-Hildreth. Una conseguenza importante negli utilizzare gli zero crossing per l individuazione degli edge è che gli edge che ne risultano sono spessi 1 pixel. Questa proprietà semplifica i passaggi successivi come ad esempio il collegamento degli edge (edge linking).

Un metodo per trovare gli zero crossing in ogni pixel p dell immagine filtrata g(x,y) si basa sull uso di un intorno 3 x 3 centrato in p. Uno zero crossing in p implica la presenza di una delle configurazioni seguenti: Se i valori di g(x,y) vengono confrontati su una linea(un metodo usato comunemente) allora non solo i segni devono essere diversi, ma anche il valore assoluto della loro differenza numerica deve anche superare una data soglia prima di poter dire che p è un pixel di zero crossing.

I = imread( inserisci-img.jpg'); X = rgb2gray(i); A = edge(x,'log',t,σ); % gli zero crossing utilizzeranno % il metodo dell intorno 3x3 % con soglia t figure; subplot(1,2,1); imshow(x); title( originale ); subplot(1,2,2); imshow(a); title( log );

la scelta di σ influisce sul tipo di dettaglio evidenziato

σ =0.5 t = 0.1 σ =1 t =0.1 σ=2 t =0.1

Si noti che, se posto il valore della soglia uguale a 0, tutti gli edge formano dei percorsi chiusi. Questo effetto a spaghetti è un serio inconveniente di questo metodo quando viene utilizzato come valore soglia lo zero. Si possono evitare tali artefatti utilizzando un valore di soglia positivo

t=0 σ=0.5 t=0.1 σ=0.5 t=0.5 σ=0.5

Una procedura a volte utilizzata, per tenere in conto che le variazioni di intensità sono dipendenti dalla scala, è filtrare un immagine con vari valori di σ. Le mappe di edge di zero crossing che ne risultato vengono poi combinate tenendo solo gli edge che sono comuni a tutte le mappe. Marr e Hildreth notarono che è possibile approssimare il filtro LoG tramite una differenza di gaussiane: con σ p > σ q

Questo metodo può fornisce utili informazioni ma a causa della sua complessità è utilizzato solo come strumento di prototipazione per selezionare un appropriato valore di σ da utilizzare con un filtro singolo. Quindi il valore σ per il LoG dovrebbe essere scelto come nell equazione che segue in modo tale che Log e Dog abbiano gli stessi zero crossing: 2 σ 2 2 σ 1 σ 2 2 σ 1 σ 2 σ 1 ln σ 2 = 2 2 2

Un approccio analitico è stato invece seguito da John F. Canny nel 1986, che ha studiato in dettaglio il comportamento dell operatore gradiente applicato ad un contorno rumoroso. Il modello di bordo considerato è un fronte ripido monodimensionale b(x) cui è aggiunto rumore Gaussiano bianco.

Si assume che l individuazione del bordo sia realizzata tramite una convoluzione con un filtro f(x) avente risposta impulsiva h(x) antisimmetrica e nulla al di fuori di un intervallo [-W,W]. Un bordo è individuato da un massimo locale della convoluzione tra l immagine ed il filtro. Il filtro è scelto sulla base di tre criteri di efficacia definiti da Canny: 1. Buona capacità di individuazione: l operatore ha una bassa probabilità di non individuare un bordo reale (elevata sensibilità falsi negativi) ed una bassa probabilità di individuare falsi bordi (elevata specificità falsi positivi) 2. Buona capacità di localizzazione: i punti evidenziati dall operatore dovrebbero essere quanto più vicini possibile al centro del bordo reale. 3. Unicità della risposta: l operatore dovrebbe fornire una sola risposta in corrispondenza di un bordo reale. Ciò che contraddistingue il lavoro di Canny è la capacità di formalizzare matematicamente i tre criteri citati e poi tentare di derivarne alcune soluzioni ottimali. In pratica è difficile(se non impossibile) trovare una soluzione in forma chiusa che soddisfi tutti i criteri precedenti.

L algoritmo di individuazione degli edge di Canny consiste nei seguenti passaggi fondamentali: Sottoporre a smoothing l immagine di input con un filtro gaussiano. Un problema primario negli algoritmi di riconoscimento dei contorni è dato dalla presenza di rumore nelle immagini non processate, per cui è necessario applicare all immagine un filtro spaziale, tramite il processo di convoluzione. Lo scopo è rimuovere le alte frequenze su cui il rumore interferisce in maniera più problematica. Calcolare la magnitudo e l angolo del gradiente. Calcolando il gradiente del risultato e, poi, utilizzando la magnitudo e la direzione del gradiente otteniamo l intensità e la direzione degli edge in ogni punto. M ( x, y) α( x, y) = = tan g 2 x 1 + g g g x y 2 y con g x = f s / x e g y = f s / y.

Applicare la non maxima suppression all immagine della magnitudo. Dato che è stata generata utilizzando il gradiente, M(x,y) contiene ampie creste (detti ridges) attorno ai massimi locali. Il passo successivo è l assottigliamento di tali valori facendo uso, ad esempio, del metodo non maxima suppression. La non-maximum suppression si ottiene azzerando i valori dei pixel non considerati parte del contorno, cioè i pixel il cui valore di intensità non è maggiore di quello dei pixel adiacenti situati lungo la direzione data dal valore α in quel punto. Il risultato è un immagine binaria con una linea sottile in corrispondenza dei bordi degli oggetti nell immagine.

Utilizzare la doppia soglia e la connettività per individuare e collegare gli edge. 1. Si fissano due soglie T L e T H con T H > T L. 2. Tutti i punti di valore maggiore di T H sono di edge. 3. Tutti i punti di valore compreso fra T H e T L saranno considerati edge solo se è contigui ad un edge Perché la scelta di due soglie? Utilizzando un unica soglia potremmo avere i seguenti problemi: soglia troppo bassa: ci saranno alcuni falsi edge (detti falsi positivi) soglia troppo alta: allora alcuni punti di edge saranno eliminati (falsi negativi). L algoritmo di Canny cerca di migliorare questa situazione utilizzando due soglie (thresholding mediante isteresi), scegliendo una soglia bassa T L e una soglia alta T H.

I = imread( inserisci-img.jpg'); X = rgb2gray(i); C= edge(x, canny,[t 1 t 2 ],σ); figure; subplot(1,2,1); imshow(x); title( originale ); subplot(1,2,2); imshow(c); title( canny);

Alti valori di σ permettono di trovare edge a scale più grandi Piccoli valori di σ permettono di scovare i dettagli più fini

σ = 0.5 σ = 1 σ = 2

Processo utilizzato per ridurre i falsi punti di edge. Canny suggerì che il rapporto tra le due soglie dovrebbe essere di circa 2 ( o 3) a 1.

t 1 = 0.1 t 2 = 0.2 t 1 = 0.2 t 2 = 0.4 t 1 = 0.01 t 2 = 0.5

Insiemi ordinari(crisp) 1 21 80 70 13 20 19

Insiemi ordinari(crisp) 1 21 80 70 13 20 19 giovani non giovani

Insiemi ordinari(crisp) 1 21 80 70 13 20 19 giovani non giovani

una persona di 20 anni è considerata giovane, ma una persona di 20 anni e un secondo non appartiene all insieme delle persone giovani. Questo problema è tipico degli insiemi crisp e limita l uso della teoria classica degli insiemi in molte applicazioni pratiche. giovani 1 13 21 20 non giovani 19 80 70

Quello che occorre è una maggiore flessibilità nel concetto di giovane cioè, una transizione graduale da giovane a non giovane. Ciò può essere fatto creando dei gradi di giovinezza. Possiamo dire in questo modo se una persona è giovane, relativamente giovane, giovane al 50%, non così giovane, e così via. Questo tipo di imprecisioni (FUZZY) sono più in linea con il comportamento degli uomini quando parlano di età in modo indefinito.

La teoria degli insiemi fuzzy è stata introdotta da L.A. Zadeh più di 40 anni fa. Come vedremo, gli insiemi fuzzy forniscono un formalismo in grado di trattare informazioni imprecise.

Un insieme fuzzy A in Z è caratterizzato da una funzione di appartenenza, µ A (z), che associa a ogni elemento di Z un numero reale nell intervallo [0,1]. Il valore di µ A (z) in z rappresenta il grado di appartenenza di z in A. Più vicino è il valore di µ A (z) all unità, più alto è il grado di appartenenza di z ad A e viceversa quando il valore di µ A (z) si avvicina allo zero. ATTENZIONE al concetto appartiene a : caso insieme ordinari: un elemento appartiene ad un insieme un elemento non appartiene ad un insieme caso insiemi fuzzy: tutti gli elementi z per cui µ A (z) = 1 sono membri a pieno titolo dell insieme tutti gli elementi z per cui 0<µ A (z)<1 appartengono in modo parziale all insieme tutti gli elementi z per cui µ A (z) = 0 non sono membri dell insieme

Insiemi fuzzy (1,1) 1 19 (19,1) 21 (21,0.9) 13 (13,1) 80 (80,0) 22 (22,0.8) 20 (20,1) 90 (90,0)

Quindi, un insieme fuzzy è una coppia ordinata di valori di z e una funzione di appartenenza corrispondente che assegna un grado di appartenenza a ogni valore di z. In simboli: A = {z, µ A (z) z Z} Definizioni Intersezione : l intersezione (AND) di due insiemi fuzzy A e B, denotata da A AND B, è un insieme fuzzy I con funzione di appartenenza per tutti i valori di z Z.

Anche se la logica e la probabilità operano sullo stesso intervallo di valori [0,1] è importante fare la distinzione tra i due concetti. PROBABILITA => c è il 50% di probabilità che una persona sia giovane significa che semplicemente abbiamo il 50% delle probabilità di sapere a quale insieme appartiene. LOGICA FUZZY => il grado di appartenenza di una persona all insieme delle persone giovani è di 0.5, significa che una persona è giovane fino ad un certo grado (0,5) o equivalentemente che questa è una persona giovane media ; non veramente giovane ma non troppo vicina a essere non giovane. In altre parole la logica fuzzy non è affatto probabilistica ed è legata soltanto ai gradi di appartenenza a un insieme.

Valori d input FUZZIFICAZIONE Rendere fuzzy gli input scalare -> valore fuzzy VALUTAZIONE IN BASE ALLA REGOLA output fuzzy DEFUZZIFICAZIONE valore fuzzy -> Scalare Valori d output

Quando si applicano gli insiemi fuzzy al filtraggio spaziale, l approccio di base è quello di definire le proprietà della regione dell intorno locale che catturi l essenza di quello che ci si aspetta che i filtri individuano. Possiamo sviluppare un algoritmo di estrazione dei contorni su un semplice concetto fuzzy: se un pixel appartiene a una regione uniforme rendilo bianco; altrimenti rendilo nero, dove bianco e nero sono insiemi fuzzy. Definiamo, per ogni regione 3x3, le differenze tra il pixel centrale (chiamato z 5 ) e ognuno dei vicini formando la sub-immagine di dimensioni 3 3, dove d i indica la differenza di intensità tra il vicino i- esimo e il punto centrale (d i = z i - z 5, dove i valori z sono valori di intensità).

sottoporre a smoothing l immagine di input con un filtro gaussiano. per ogni pixel dell immagine creare un kernel 3x3 tramite l utilizzo della seguente formula: d i = z i z 5 Si noti che abbiamo usato le differenze di intensità dei 4 vicini e il punto centrale, è possibile tramite un estenzione diretta utilizzare gli 8 vicini. rendere gli input d i fuzzy assegnando il grado di appartenenza all insieme zero. applicare le formule di Fuzzy: R1: SE d 2 è zero AND d 6 è zero, ALLORA z 5 è bianco R2: SE d 6 è zero AND d 8 è zero, ALLORA z 5 è bianco R3: SE d 8 è zero AND d 4 è zero, ALLORA z 5 è bianco R4: SE d 4 è zero AND d 2 è zero, ALLORA z 5 è bianco R5: altrimenti z 5 è nero. calcolando l output dell insieme fuzzy bianco. applicare la defuzzificazione per tornare ai valori in scala di grigio.

X = imread( immagine'); %scelgo l'immagine A3 = rgb2gray(x); %la converto a scala di grigio %applico il filtro gaussiano h = fspecial('gaussian',[3 3],sigma); A3 = imfilter(a3,h,'replicate'); F = double(a3); %creo la matrice F che sarà for i=2:size(a3,1)-1 % formata dai gradi di appartenenza for j=2:size(a3,2)-1 % dei pixel all'insieme fuzzy zero z5 = double(a3(i,j)); k = double(a3(i-1:i+1,j-1:j+1)); %creo il kernel temporaneo per la for n1 = 1:3 %creazione delle differenze d'intensità for n2 = 1:3 k(n1,n2) = k(n1,n2)-z5; % creo il kernel con le differenze di intensità end end

%Applico la prima regola: SE d2 è zero %AND d6 è zero, ALLORA z5 è bianco x1 = appartzeros(1,2,k); % restituisce il grado di appartenenza del % valore k(i,j) all'insieme fuzzy zero x2 = appartzeros(2,3,k); if (min(x1,x2) > 0) % stabilisco il grado all insieme zero if (x1==1 && x2== 1) % se il valore è 1 allora appartiene a pieno titolo all'insieme c1 = 1; % piena forza else c1 = min(x1,x2); end else c1=0; end %analogamente tramite le altre tre regole ricavo c2,c3 e c4 F(i,j) = assegnagrado(c1,c2,c3,c4); %effettua una media artimetica per calcolare il grado di appartenenza dell'insieme fuzzy zero end end

V = F; % creo la matrice con gli output effettivi for i=2:size(a3,1)-1 for j=2:size(a3,2)-1 %calcolo il baricentro n = 1-F(i,j); % il grado di appartenenza al nero b = F(i,j); % il grado di appartenenza al bianco V(i,j) = round((0*n+255*b) / (n+b)); if( V(i,j) < t ) V1(i,j) = 0; else V1(i,j) = 255; end %trasformo l'immagine in binaria end end

INPUT OUTPUT

INPUT OUTPUT

MARR HILDRETH CANNY FUZZY Implementazione Semplice Complessa Semplice Punto forza Utilizzo degli ZC Doppia sogliatura La semplicità Vantaggi Generalmente trovare le posizioni corrette dei bordi Superiore a tutti gli altri approcci: migliore risultati specialmente in condizioni di rumore; miglioramenti significativi nei dettagli degli edge principali; maggiore rigetto delle caratteristiche irrilevanti nei risultati Estremamente semplice, rilevamento di bordi e dei loro orientamenti

MARR HILDRETH CANNY FUZZY I risultati dipendono dalla scelta di σ, T dalla scelta di σ, T 1 e T 2 dalla scelta di σ, T Svantaggi Malfunzionamenti agli angoli, nelle curve e dove la funzione dell'intensità livello di grigio varia. Calcoli complessi. Maggiore complessità computazionale Dispensiosa dal punto di vista computazione:il processo di fuzzificazione, gli antecedenti di ogni regola, l implicazione, l aggregazione e la defuzzificazione deve essere applicato a ogni pixel dell immagine.