Dé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
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 (mettre1
pour les contours horizontaux) ;dy
: ordre de la dérivée dans la direction Y (mettre1
pour les contours verticaux) ;ksize
: taille du noyau (doit être impaire, par exemple3
,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 :
- Appliquant un flou gaussien pour supprimer le bruit.
- Calculant les gradients d’intensité à l’aide des filtres Sobel.
- Supprimant les contours faibles.
- Utilisant un double seuillage et un suivi des contours.
# Apply Canny Edge Detector
canny_image = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)
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 :

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 noyau3
) et stocker les résultats danssobel_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 danscanny_img
.
Solution
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
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?
Awesome!
Completion rate improved to 3.45
Dé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
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 (mettre1
pour les contours horizontaux) ;dy
: ordre de la dérivée dans la direction Y (mettre1
pour les contours verticaux) ;ksize
: taille du noyau (doit être impaire, par exemple3
,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 :
- Appliquant un flou gaussien pour supprimer le bruit.
- Calculant les gradients d’intensité à l’aide des filtres Sobel.
- Supprimant les contours faibles.
- Utilisant un double seuillage et un suivi des contours.
# Apply Canny Edge Detector
canny_image = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)
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 :

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 noyau3
) et stocker les résultats danssobel_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 danscanny_img
.
Solution
Merci pour vos commentaires !
single