Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

L’objectif du TP est de détecter les lignes blanches de la route sur l’image route1.jpg. La méthode se divise en deux étapes :

  1. détection des contours avec la méthode de Canny,

  2. détection des lignes avec la transformée de Hough.

Détection des contours

  • Chargez l’image et affichez l’image.

  • La première étape du filtre de Canny est d’appliquer sur l’image un filtre gaussien : pour quelle raison ?

  • Effectuez une détection de contours avec la méthode de Canny (skimage.feature.canny). Réglez l’écart-type du filtre gaussien pour obtenir le meilleur résultat ; les autres paramètres peuvent être laissés par défaut.

  • Appliquez le masque route-masque.png sur la détection de contours pour éliminer les contours qui sont clairement en dehors de la route.

Détection des lignes

  • Affichez l’accumulateur de Hough (skimage.transform.hough_line) correspondant à l’image. La fonction retourne l’accumulateur lui-même et ses deux axes (angles et distances). Pour un affichage clair, appliquez un logarithme et définissez correctement les axes :

    accumulator, angles, distances = hough_line(...)
    plt.imshow( np.log(accumulator+1),
                cmap="gray",
                extent=(angles[0], angles[-1], distances[-1], distances[0]),
                aspect="auto" )
  • Utilisez skimage.transform.hough_line_peaks pour trouver les points de l’accumulateur les plus pertinents : ceux-ci correspondent aux lignes principales sur l’image des contours. Affichez ces points sur l’accumulateur.

  • Enfin, tracez sur l’image originale les lignes correspondant aux points identifiés sur l’accumulateur.

Amélioration de la méthode

Vérifiez que la méthode que vous avez mis en œuvre fonctionne également sur d’autres images : route2.jpg et route3.jpg.

Diverses améliorations peuvent être effectuées pour améliorer la détection obtenue, en voici une liste non exhaustive :

  • Régler les paramètres low_threshold et high_threshold du détecteur de Canny.

  • Ne détecter que les lignes blanches et pas les autres lignes.

  • Afficher uniquement les lignes dont le point dans l’accumulateur de Hough est d’intensité suffisamment importante.

  • Ne pas afficher les lignes trop horizontales puisqu’elles ne peuvent manifestement pas être des lignes blanches.