Utilizzare la funzione
distform per calcolare la trasformata della distanza euclidea della matrice M, considerando i pixel con valore fg come pixel di primo piano.
1. Definire una matrice immagine e applicarvi distform.
Il valore di ogni pixel di output corrisponde alla distanza fino al pixel di primo piano di input più vicino (valore 100).
◦ Per i pixel di primo piano di input, la distanza di output è zero.
◦ Per i vicini orizzontali e verticali, la distanza è 1.
◦ Per i vicini in diagonale, la distanza è la radice quadrata di 2 o 1.414.
Immagine con un singolo pixel diverso da zero
1. Definire un'immagine con un singolo pixel diverso da zero.
2. Applicare distform all'immagine:
La distanza aumenta in modo monotono man mano che ci si allontana dal pixel di primo piano (pixel centrale) nell'immagine di input.
La trasformata della distanza produce una distanza approssimativamente euclidea. Nell'esempio precedente è possibile osservare che l'output esatto della trasformata della distanza euclidea per la posizione della matrice (0,1) deve corrispondere a:
Mentre nell'immagine di output di questo esempio il valore è 5,243.
Immagine di un oggetto circolare
1. Definire l'immagine di un cerchio:
2. Utilizzare la funzione
scale per scalare il cerchio.
3. Utilizzare la funzione
WRITEBMP per scrivere il cerchio scalato in un file.
4. Applicare la funzione distform al cerchio, scalarlo e salvare i risultati in un nuovo file.
5. Inserire le immagini dai due file e confrontare i risultati.
(sc.bmp)
(scdist.bmp)
I valori di distanza sono uguali a zero per tutti i punti all'interno del cerchio e aumentano in modo monotono man mano che ci si sposta verso l'esterno, ma non sono esattamente uguali alla distanza euclidea o, in tal caso, l'output sarebbe radialmente simmetrico.
Due immagini binarie di un singolo oggetto
1. Leggere un'immagine.
2. Utilizzare la funzione
translate per creare versioni traslate dell'immagine e scrivere le immagini traslate in file.
3. Inserire le immagini dai tre file e confrontare i risultati.
(flower.bmp)
(flower_d2.bmp)
(flower_d3.bmp)
4. Utilizzare la funzione distform per calcolare la trasformata della distanza di D1.
5. Utilizzare le funzioni
mask e
mean per mascherare l'immagine della trasformata della distanza con immagini D2 e D3 e calcolare la media dell'intera immagine. Tale valore rappresenta una misura della distanza tra le due immagini.
La distanza tra D1 e D1 è zero, mentre la distanza tra D1 e le altre immagini aumenta con il grado di traslazione.
6. Calcolare la distanza di Hausdorff
La distanza di Hausdorff è definita come massimo della distanza tra punti più vicina in due insiemi. Per calcolare la distanza di Hausdorff tra le due immagini, utilizzare la funzione
max anziché la funzione mean.
Due immagini dei bordi
È possibile confrontare le prestazioni dei rilevatori dei bordi calcolando la distanza tra due immagini dei bordi. Utilizzare la media o il valore massimo delle distanze mascherate come misura della distanza dei bordi.
1. Utilizzare la funzione
READ_IMAGE per leggere un file immagine.
2. Applicare i due rilevatori dei bordi
canny e
binarize all'immagine e scrivere i risultati in file esterni.
3. Inserire e confrontare visivamente le due immagini.