Détecter les contours (1)
Les filtres peuvent aussi servir de « détecteurs ». Si une partie de l'image correspond au motif de pondération, la valeur retournée sera très élevée (ou très faible).
Dans le cas de la détection de contours, ce motif est un changement d'intensité le long d'un plan. Un filtre qui détecte les contours horizontaux pourrait ressembler à ceci :
weights = [[+1, +1, +1],
[ 0, 0, 0],
[-1, -1, -1]]
Pour cet exercice, créez un détecteur de contours verticaux et voyez comment il se comporte sur la radiographie de la main (im).
Cette activité fait partie du cours
Analyse d'images biomédicales en Python
Instructions de l’exercice
- Créez un tableau 3x3 de poids de filtre qui détecte quand l'intensité change de la gauche vers la droite. Utilisez uniquement les valeurs
1,0et-1. - Effectuez la convolution de
imavec le détecteur de contours. - Tracez les contours horizontaux avec la carte de couleurs
seismic. Utilisezvmin=-150etvmax=150pour ajuster l'échelle de la carte de couleurs. - Ajoutez une barre de couleurs et affichez les résultats.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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()