Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Détection de Contours | Traitement d'Images avec OpenCV
Principes Fondamentaux de la Vision par Ordinateur

bookDétection de Contours

Détection de contours

Les contours représentent des changements soudains d’intensité des pixels, qui correspondent généralement aux limites des objets. La détection des contours facilite la reconnaissance des formes et la segmentation.

Détection de contours de Sobel

L’opérateur Sobel calcule les gradients (variations d’intensité) dans les directions X et Y, ce qui permet de détecter les contours horizontaux et verticaux.

# Convert to grayscale
image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)

# Apply Sobel filter
sobel_x = cv2.Sobel(image, cv2.CV_64F, 1, 0, ksize=5)  # Detects vertical edges
sobel_y = cv2.Sobel(image, cv2.CV_64F, 0, 1, ksize=5)  # Detects horizontal edges
sobel_combined = cv2.magnitude(sobel_x, sobel_y)  # Combines both directions
Note
Note

Paramètres clés :

  • src : image d’entrée (doit être en niveaux de gris) ;
  • ddepth : profondeur de l’image de sortie (par exemple, cv2.CV_64F) ;
  • dx : ordre de la dérivée dans la direction X (mettre 1 pour les contours horizontaux) ;
  • dy : ordre de la dérivée dans la direction Y (mettre 1 pour les contours verticaux) ;
  • ksize : taille du noyau (doit être impaire, par exemple 3, 5, 7).

Détection de contours de Canny

Le détecteur de contours de Canny est un algorithme multi-étapes qui fournit des contours plus précis en :

  1. Appliquant un flou gaussien pour supprimer le bruit.
  2. Calculant les gradients d’intensité à l’aide des filtres Sobel.
  3. Supprimant les contours faibles.
  4. Utilisant un double seuillage et un suivi des contours.
# Apply Canny Edge Detector 
canny_image = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)  
Note
Note
  • image: image d'entrée en niveaux de gris ;
  • threshold1: seuil inférieur pour la détection des contours (par exemple, 50) ;
  • threshold2: seuil supérieur pour la détection des contours (par exemple, 150) ;
  • apertureSize (optionnel) : taille du noyau Sobel (par défaut : 3, doit être impair) ;
  • L2gradient (optionnel) : utilisation d'un calcul de gradient L2 plus précis (par défaut : False).

Comparaison des méthodes de détection de contours :

comparaison détection de contours
Tâche

Swipe to start coding

Vous disposez d'une image :

  • Convertir l'image en niveaux de gris et la stocker dans gray_image ;
  • Appliquer le filtre de Sobel dans les directions X et Y (profondeur de sortie cv2.CV_64F et taille de noyau 3) et stocker les résultats dans sobel_x, sobel_y respectivement ;
  • Combiner les directions filtrées par Sobel dans sobel_img ;
  • Appliquer un filtre de Canny avec un seuil de 200 à 300 et stocker le résultat dans canny_img.

Solution

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 7
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Suggested prompts:

What are the main differences between Sobel and Canny edge detection?

Can you explain when to use Sobel versus Canny edge detection?

Can you provide more details on how the Canny edge detector works?

close

Awesome!

Completion rate improved to 3.45

bookDétection de Contours

Glissez pour afficher le menu

Détection de contours

Les contours représentent des changements soudains d’intensité des pixels, qui correspondent généralement aux limites des objets. La détection des contours facilite la reconnaissance des formes et la segmentation.

Détection de contours de Sobel

L’opérateur Sobel calcule les gradients (variations d’intensité) dans les directions X et Y, ce qui permet de détecter les contours horizontaux et verticaux.

# Convert to grayscale
image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)

# Apply Sobel filter
sobel_x = cv2.Sobel(image, cv2.CV_64F, 1, 0, ksize=5)  # Detects vertical edges
sobel_y = cv2.Sobel(image, cv2.CV_64F, 0, 1, ksize=5)  # Detects horizontal edges
sobel_combined = cv2.magnitude(sobel_x, sobel_y)  # Combines both directions
Note
Note

Paramètres clés :

  • src : image d’entrée (doit être en niveaux de gris) ;
  • ddepth : profondeur de l’image de sortie (par exemple, cv2.CV_64F) ;
  • dx : ordre de la dérivée dans la direction X (mettre 1 pour les contours horizontaux) ;
  • dy : ordre de la dérivée dans la direction Y (mettre 1 pour les contours verticaux) ;
  • ksize : taille du noyau (doit être impaire, par exemple 3, 5, 7).

Détection de contours de Canny

Le détecteur de contours de Canny est un algorithme multi-étapes qui fournit des contours plus précis en :

  1. Appliquant un flou gaussien pour supprimer le bruit.
  2. Calculant les gradients d’intensité à l’aide des filtres Sobel.
  3. Supprimant les contours faibles.
  4. Utilisant un double seuillage et un suivi des contours.
# Apply Canny Edge Detector 
canny_image = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)  
Note
Note
  • image: image d'entrée en niveaux de gris ;
  • threshold1: seuil inférieur pour la détection des contours (par exemple, 50) ;
  • threshold2: seuil supérieur pour la détection des contours (par exemple, 150) ;
  • apertureSize (optionnel) : taille du noyau Sobel (par défaut : 3, doit être impair) ;
  • L2gradient (optionnel) : utilisation d'un calcul de gradient L2 plus précis (par défaut : False).

Comparaison des méthodes de détection de contours :

comparaison détection de contours
Tâche

Swipe to start coding

Vous disposez d'une image :

  • Convertir l'image en niveaux de gris et la stocker dans gray_image ;
  • Appliquer le filtre de Sobel dans les directions X et Y (profondeur de sortie cv2.CV_64F et taille de noyau 3) et stocker les résultats dans sobel_x, sobel_y respectivement ;
  • Combiner les directions filtrées par Sobel dans sobel_img ;
  • Appliquer un filtre de Canny avec un seuil de 200 à 300 et stocker le résultat dans canny_img.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 7
single

single

some-alt