CommencezCommencez gratuitement

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

Voir le cours

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, 0 et -1.
  • Effectuez la convolution de im avec le détecteur de contours.
  • Tracez les contours horizontaux avec la carte de couleurs seismic. Utilisez vmin=-150 et vmax=150 pour 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()
Modifier et exécuter le code