Rileva i bordi (1)
I filtri possono essere usati anche come "rivelatori". Se una parte dell'immagine corrisponde allo schema di pesatura, il valore restituito sarà molto alto (o molto basso).
Nel caso del rilevamento dei bordi, lo schema è un cambiamento di intensità lungo un piano. Un filtro che rileva i bordi orizzontali potrebbe essere così:
weights = [[+1, +1, +1],
[ 0, 0, 0],
[-1, -1, -1]]
In questo esercizio, crea un rivelatore di bordi verticali e verifica come si comporta sulla radiografia della mano (im).
Questo esercizio fa parte del corso
Analisi di immagini biomediche in Python
Istruzioni dell'esercizio
- Crea un array 3x3 di pesi del filtro che rilevi quando l'intensità cambia da sinistra a destra. Usa solo i valori
1,0e-1. - Convolvi
imcon il rivelatore di bordi. - Traccia i bordi orizzontali con la mappa colori
seismic. Usavmin=-150evmax=150per regolare la scala della mappa colori. - Aggiungi una barra dei colori e visualizza i risultati.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# Set weights to detect vertical edges
weights = [[____], [____], [____]]
# Convolve "im" with filter weights
edges = ____
# Draw the image in color
plt.imshow(____, ____, vmin=-150, vmax=150)
____
format_and_render_plot()