Analisi di Immagini e Dati Biologici Edge detection and sharpening 31 L4-2
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à 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
Edge Sharpening Operatore di Laplace in forma discreta
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