Upload
crocifissa-torre
View
213
Download
0
Embed Size (px)
Citation preview
Analisi di Immagini e Dati Biologici
Edge detection and sharpening
L4-231
Bordi
I bordi di un immagine vengono percepiti come rapidi cambiamenti di luminosità (discontinuità) Importanti per il riconoscimento di strutture e forme I cambiamenti di intensità avvengono lungo
determinate direzioni (ortogonali localmente al bordo)
Più rapido è il cambiamento più grande è la sua evidenza (forza)
Bordi e Derivate
Il concetto matematico dietro alla variazione locale di una grandezza è quello di derivata
La distribuzione dell'intensità di un immagine è discretizzata dalla matrice di pixel Sostituiamo la derivata con una differenza centrata
nel punto
Bordi e Derivate
Variazioni di luminosità
Gradiente di luminosità
Gradiente Vettore di variazione dell'intensità lungo una
direzione qualsiasi Le 2 componenti del vettore sono le proiezioni
lungo gli assi del vettore di massima variazione di intensità luminosa
Gradiente di Luminosità
Rappresenta un vettore che indica la direzione di massimo cambimento di intensità luminosa
Gradiente di luminosità
La forza di un bordo è data dalla magnitudine del vettore gradiente
Gradiente di luminosità
L'orientamento è l'angolo (misurato rispetto all'asse orizzontale) della direzione di massima intensità
Filtri di Derivazione
Filtro di Derivata
Matrici di Gradiente
Matrici di Prewitt Stimano la derivata
lungo un asse eseguendo allo stesso tempo una media sull'asse ortogonale per ridurre l'influenza del rumore
La funzione fspecial di Octave può generare la matrice di Prewitt orizzontale
Matrici di Gradiente
Matrici di Sobel Funzionano come
quelle di Prewitt, ma usano una media pesata sulla dimensione ortogonale
La funzione fspecial di Octave può generare la matrice di Sobel orizzontale
Gradiente di Luminosità
Funzione edge di Octave
La funzione edge ritorna un'immagine binaria dei bordi individuati con vari metodi
Ammette parametri di controllo Nel caso di Sobel e Prewitt il parametro opzionale
indica la soglia da applicare al modulo della derivata
octave:2> borders=edge(disco,"prewitt");octave:3> imshow(borders)octave:4> [borders,threshold]=edge(disco,”prewitt”);octave:5> borders=edge(disco,”prewitt”,1.1*threshold);octave:6> imshow(borders)
Funzione edge di Octave
Matrici di Roberts
Un caso semplice sono le matrici di Roberts massimizzano le
variazioni di luminosità che avvengono lungo le direzioni diagonali
Compass Operators
Matrici che massimizzano il modulo del gradiente all'interno di un quadrante Le 8 matrici del metodo è stata ideata in modo
generare un vettore gradiente con modulo che diventa massimo quando la variazione di intensità in un punto avviene in uno di otto quadranti in cui l'angolo giro è suddiviso
Di 8 matrici devono essere calcolati solo 4 gradienti (essendo il modulo degli altri quadranti uguale, ma cambiando il verso del vettore gradiente)
Compass Operator
Operatori basati sulla derivata seconda
Metodo di Canny
Metodo analitico basato sull'ipotesi di modello gaussiano del rumore Minimizza l'errore di localizzazione del bordo Minimizza i falsi positivi Minima ridondanza della localizzazione
Metodo di Canny
Octave offre un'implementazione del Metodo di Canny
Edge Sharpening
Il riconoscimento dei contorni permette di costruire immagini binarie di regioni di un immagine
L'organizzazione dei contorni favorisce la percezione delle strutture
La forza di un bordo è il fattore determinante per suo riconoscimento L'edge sharpening mira al miglioramento della forza
dei bordi e dei contorni
Edge Sharpening
Strategia: aumentare le differenze di intensità dove ci sono bordi
All'immagine da migliorare viene sottratta una quota (controllata da un parametro)
Edge Sharpening
Edge Sharpening
Operatore di Laplace
Operatore di Laplace in forma discreta
Edge Sharpening
Edge Sharpening
Operatore di Laplace
Unsharp Masking
L'unsharp masking viene costruito in 2 fasi Si crea una immagine smoothed che viene sottratta
all'immagine originale. Questo costituisci la 'maschera' (mask)
La maschera viene di nuovo aggiunta all'originale usando un parametro di controllo