Introduzione a Matlab

Documenti analoghi
Introduzione a Matlab

ELABORAZIONE DELLE IMMAGINI:

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

Sharpening mediante filtraggio spaziale

Introduzione a Matlab

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

Estrazione dei bordi

Operatori locali. Analisi di basso livello

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

Introduzione a Matlab

Operatori locali su immagini digitali

Esercitazione 4: Filters

Corso di Multimedia A.A 2013/2014

Operatori locali su immagini digitali

Introduzione a Matlab

Trasformare e migliorare

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

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

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

Corso di Visione Artificiale. Features. Samuel Rota Bulò

Low Level Vision: Edge

Elaborazione delle immagini a basso livello

Introduzione a Matlab

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

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

Immagini digitali. Annalisa Franco

Operazioni locali: Edging

Elaborazione di immagini digitali: trasformare e migliorare

Filtraggio spaziale Soluzioni

Elaborazione dei Segnali Multimediali a.a. 2009/2010. Segmentazione

Un modello computazionale per la detezione dei bordi

Elaborazione di Segnali Multimediali a.a. 2017/2018. Segmentazione

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

Edge e Segmentazione

Elaborazione di immagini. I filtri Digital Image Processing

Image segmentation. Elaborazione intermedia

Corso di Visione Artificiale. Texture. Samuel Rota Bulò

Elaborazione delle immagini

Low Level Vision: Trasformata di Hough

Processamento di immagini

26 - Funzioni di più Variabili Limiti e Derivate

Operatori vettoriali su R ³

Esercitazione su filtro di Sobel per l elaborazione delle immagini

Operazioni sulle immagini. Multimedia

Introduzione a Matlab

Capitolo 3 TRASFORMAZIONI DI INTENSITA' E FILTRAGGIO SPAZIALE

Richiami di matematica

Morfologia matematica. Morfolog ia binaria Morfologia a toni di grigio Tras formata dis tanza

Calcolo Numerico con elementi di programmazione

Elementi di grafica raster

Elaborazione delle immagini

Matematica e Statistica (A-E, F-O, P-Z)

Processamento delle immagini

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

Matematica e Statistica (A-E, F-O, P-Z)

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

Matematica e Statistica (A-E, F-O, P-Z)

Analisi Matematica 3, a.a Scritto del quinto appello, 11 settembre 2019 Testi 1

Matematica per Economia Finanza e Management

Image segmentation. Image segmentation

Esempio di grafico di una funzione reale di due variabili reali

Elenco dei simboli 9. Prefazione 10

RISPOSTA IN FREQUENZA DEI SISTEMI LINEARI TEMPO INVARIANTI

Matematica per Economia Finanza e Management

Funzioni di R n a R m e la matrice Jacobiana

Matematica e Statistica

Morfologia Matematica applicata alle Immagini Digitali

Segnali e Sistemi Laboratorio Matlab

Esercizi sulle funzioni f : R 2 R. Soluzioni

Matematica e Statistica

Matematica per Economia Finanza e Management

Digital Imaging Esercitazione TTC 12/11/2015

Matematica e Statistica

Matematica per Economia Finanza e Management

Diagrammi di Bode. Lezione 17 1

SOLUZIONE DELL EQUAZIONE DI FOURIER PER PER PIASTRA SOTTILE CON SORGENTE TERMICA IN MOTO UNIFORME

Matematica per Economia Finanza e Management

Analisi Matematica T_2 (prof.g.cupini) A.A CdL Ingegneria Automaz./Energ.Elettrica - Univ.Bologna REGISTRO DELLE LEZIONI

Stima dei parametri. La v.c. multipla (X 1, X 2,.., X n ) ha probabilità (o densità): Le f( ) sono uguali per tutte le v.c.

Sistemi ottici come sistemi lineari

Image Processing Toolbox. Imaging Digitale a.a. 2015/2016

Laboratorio di Matematica Computazionale A.A Lab. 7

Corso di laurea in Geologia Istituzioni di matematiche Esercizi n. 1617/2/5

Premesse matematiche. 2.1 Gradiente

Elaborazione di Segnali Multimediali a.a. 2013/2014. Segmentazione

Esercizi proposti. x b) f(x) = 2. Determinare i punti di non derivabilità delle funzioni

Lezione 4. Enea Cippitelli Samuele Gasparrini

Appunti sul corso di Complementi di Matematica mod. Analisi prof. B.Bacchelli - a.a. 2010/2011.

1. Mercoledì 07/03/2018, ore: 2(2) Introduzione e presentazione del corso. Richiami: i numeri naturali, interi, razionali e reali.

Matematica - Prova d esame (25/06/2004)

ANALISI DI FOURIER. 2πk. è periodica di periodo T. Più precisamente, essendo. T x + 2π = cos. s(x) = s x + T ) T +α. f(x) dx

Low Level Vision: Trasformata di Hough

Risoluzione di un problema di diffusione-trasporto-reazione sul Lago di Garda con Elementi Finiti

Image Processing Toolbox. Imaging Digitale a.a. 2014/2015 Silvia Corchs

Politecnico di Torino II Facoltà di Architettura - 5 Luglio 2011 Esercizio 1. Sono date le matrici 2 1, B = 1 4

Matematica e Statistica

Interpolazione e Approssimazione

Transcript:

Introduzione a Matlab Operazioni di Base & Edge Detection Fondamenti di Visione Artificiale a.a. 25/26 2/5/6 Estrazione dei Contorni

Lezione V: indice Filtri e Kernel Line Detection Edge Detection Edge Detection e Rumore Esercizi 2/5/6 Estrazione dei Contorni 2

Definizione di un filtro: Kernel Ciascun filtro è definito dal Kernel corrispondente. Un kernel è una matrice 3 3 o 5 5 di valori reali o interi. Un filtro è applicato all immagine attraverso una operazione di convoluzione. 2/5/6 Estrazione dei Contorni 3

Convoluzione il filtro legge successivamente da sinistra a destra e dall'alto verso il basso tutti i pixel dell'area di azione del kernel. Moltiplica il valore di ciascuno per i corrispondenti valori del kernel poi somma i risultati: (*)+(5*)+(5*)*(*)+(*) +(*)+(*)+(*)+(*)+(*) = 5. 2/5/6 Estrazione dei Contorni 4

Operatori differenziali Ricerca di discontinuità (un cambiamento brusco di valore) Il problema viene affrontato tramite l'analisi della derivata In generale il problema della differenziazione risulta mal posto Un problema è ben posto se la sua soluzione: Esiste È unica Dipende con continuità dai dati iniziali Estrazione dei Contorni

Operatori differenziali Nel continuo una regione di transizione viene evidenziata dall'andamento della derivata prima Dovendo scegliere un punto preciso si può prendere il massimo (minimo) della derivata prima o lo zero (punto di attraversamento dell'asse x) della derivata seconda Estrazione dei Contorni

Operatori differenziali f(x) è l'intensità dell'immagine Estrazione dei Contorni

Derivata discreta La derivata può essere approssimata tramite una differenza Lo stesso approccio vale per la derivata seconda In uno spazio bidimensionale al posto della derivata si ha il gradiente (si noti che il gradiente è un vettore) Estrazione dei Contorni

Approssimazioni del gradiente Il gradiente è un vettore (ha due componenti) Gli operatori differenziali nel discreto sono realizzati tramite maschere a somma nulla: l'applicazione a una regione uniforme deve dare risultato zero Estrazione dei Contorni

Operatore di Roberts È la soluzione più semplice Si sfruttano due maschere M e M 2 per ottenere due componenti ortogonali del gradiente G =M *I,G 2 =M 2 *I È molto sensibile al rumore Il modulo del gradiente risulta: G m = sqrt(g 2 +G 22 ) la fase: G φ = arctan(g 2 / G )+π/4 - - Estrazione dei Contorni

Operatore isotropico Si sfruttano due maschere M x e M y per ottenere le due componenti ortogonali del gradiente G x =M x *I,G y =M y *I Il modulo del gradiente risulta: G m = sqrt(g x2 +G y2 ) la fase: G φ = arctan(g y /G x ) In C e Java: phi = atan2(g y,g x ) - - 2 - - 2-2 2 - Estrazione dei Contorni

Operatore di Sobel Per evitare i problemi di calcolo con i numeri reali, l'operatore isotropico viene normalmente approssimato: Prewitt - - - - - - Sobel - -2-2 - 2-2 - Estrazione dei Contorni

Operatore Laplaciano Una alternativa al gradiente è lo studio della derivata seconda (laplaciano) tende a formare contorni chiusi lo spessore dei bordi rilevati tipicamente è di un solo pixel Il principale problema dell operatore laplaciano è l estrema sensibilità al rumore -4 2/5/6 Estrazione dei Contorni 3

Line Detection A = double(imread( Linee.jpg )); h = [ ; ; - - -]; h2 = [ -; -; -]; B = conv2(a, h); B2 = conv2(a, h2); % linee orizzontali % linee verticali % convoluzione bidimensionale % convoluzione bidimensionale subplot(2,2,); hold on; imshow(uint8(a)); subplot(2,2,2); hold on; imshow(uint8(b)); subplot(2,2,3); hold on; imshow(uint8(b2)); 2/5/6 Estrazione dei Contorni 4

Line Detection (Output) 2/5/6 Estrazione dei Contorni 5

Line Detection A = imread( linee.jpg ); A2 = imread( linee2.jpg ); h = [ ; ; - - -]; h2 = [ -; -; - ]; B = conv2(a, h); B2 = conv2(a, h2); B3 = conv2(a2, h); B4 = conv2(a2, h2); % linee orizzontali % linee verticali subplot(3,2,); hold on; imshow(uint8(a)); subplot(3,2,2); imshow(uint8(a2)); subplot(3,2,3); imshow(uint8(b)); subplot(3,2,4); imshow(uint8(b3)); subplot(3,2,5); imshow(uint8(b2)); subplot(3,2,6); imshow(uint8(b4)); 2/5/6 Estrazione dei Contorni 6

Line Detection (Output) 2/5/6 Estrazione dei Contorni 7

Edge Detection () La funzione in matlab per l edge detection è: BW = edge(i, filter',thresh,direction) I filtri a disposizione sono: Sobel Prewitt Roberts Log Zerocross canny 2/5/6 Estrazione dei Contorni 8

Edge Detection A = imread( scale.jpg ); B = edge(a,'sobel'); B2 = edge(a, prewitt'); B3 = edge(a, roberts'); B4 = edge(a, log'); B5 = edge(a, zerocross'); B6 = edge(a, canny'); figure(); imshow(uint8(a)); xlabel( original ); figure(2); imshow(uint8(b)); xlabel( sobel ); figure(3); imshow(uint8(b2)); xlabel( prewitt ); figure(4); imshow(uint8(b3)); xlabel( roberts ); figure(5); imshow(uint8(b4)); xlabel( log ); figure(6); imshow(uint8(b5)); xlabel( zerocross ); figure(7); imshow(uint8(b6)); xlabel( canny ); 2/5/6 Estrazione dei Contorni 9

Edge Detection (Output) Sobel Canny Prewitt Original Log Zerocross 2/5/6 Estrazione dei Contorni 2

Edge Detection % Estrazione dei contorni close all; clear all; A = imread('scale.jpg'); figure; imshow(uint8(a)); A = double(a); B = filtro_laplaciano(a); figure; imshow(uint8(b)); C = filtro_prewitt(a); figure; imshow(uint8(c)); D = filtro_sobel(a); figure; imshow(uint8(d)); E = filtro_canny(a,.); figure; imshow(uint8(e), [ ]); 2/5/6 Estrazione dei Contorni 2

Robert Cross A = imread( libri_noise.jpg ); h = [ ; - -]; h2 = [ ; ; - ; -]; h3 = [ ; ; ; - ; - ; -; ]; B = uint8(conv2(a,h)); B2 = uint8(conv2(a,h2)); B3 = uint8(conv2(a,h3)); figure(); imshow(a); xlabel( original ); figure(2); imshow(b); xlabel( 2x2 ); figure(3); imshow(b2); xlabel( 3x3 ); figure(4); imshow(b3); xlabel( 4x4 ); 2/5/6 Estrazione dei Contorni 22

Robert Cross 2/5/6 Estrazione dei Contorni 23

Edge Detection in presenza di rumore % Estrazione dei contorni con rumore A = imread('libri_noise.jpg'); B = filtro_sobel(a); B2 = filtro_prewitt(a); B3 = filtro_laplaciano(a); B4 = filtro_canny(a,.); figure(); imshow(uint8(a)); xlabel('original'); figure(2); imshow(uint8(b)); xlabel('prewitt'); figure(3); imshow(uint8(b2)); xlabel('laplaciano'); figure(4); imshow(uint8(b4), [ ]); xlabel('canny'); 2/5/6 Estrazione dei Contorni 24

Edge Detection in presenza di rumore Prewitt Canny Original Sobel Laplaciano 2/5/6 Estrazione dei Contorni 25

Edge Detection in presenza di rumore (Sobel) 3x3 5x5 2/5/6 Estrazione dei Contorni 26

Edge Detection in presenza di rumore (Prewitt) 3x3 5x5 2/5/6 Estrazione dei Contorni 27

Edge Detection in presenza di rumore (Laplaciano) 3x3 5x5 2/5/6 Estrazione dei Contorni 28

Edge Detection in presenza di rumore (Canny) 3x3 5x5 2/5/6 Estrazione dei Contorni 29

Esercizio I Caricare l immagine mappa.jpeg. Trovare il migliore fra i filtri per l edge detection in modo da mettere in evidenza i confini. 2/5/6 Estrazione dei Contorni 3

Esercizio II Caricare l immagine oggetto.jpeg ed estrarre il contorno, limitando le imperfezioni. 2/5/6 Estrazione dei Contorni 3

Soluzione () % ESERCIZIO II - Soluzione I A = imread('oggetto.jpg'); subplot(2,2,); hold on; imshow(uint8(a)); xlabel('originale'); %approccio diretto B = filtro_canny(a,.5); subplot(2,2,2); imshow(uint8(b)); xlabel('metodo diretto'); 2/5/6 Estrazione dei Contorni 32

Soluzione (2) % ESERCIZIO II - Soluzione II (con raffinamento) %approccio con raffinamento B = filtro_canny(a,.5); subplot(2,2,3); imshow(uint8(b)); xlabel( senza smoothing'); %approccio con raffinamento B = A; for i=:5 B = filtro_gaussiano(b, 4); end C = filtro_canny(b,.5); subplot(2,2,4); imshow(uint8(c)); xlabel('con smoothing e cambio di soglia'); 2/5/6 Estrazione dei Contorni 33