La détection des contours est une technique de traitement d'image en vision par ordinateur qui consiste à identifier le contour des objets dans une image.
La détection des bords Canny est l'une des meilleures techniques de détection des bords. Il est conçu pour détecter des bords nets et bien définis tout en réduisant le bruit et en évitant les faux bords. Il utilise une méthode de double seuil pour détecter les contours d'une image : un seuil haut et un seuil bas.
img = cv2.Canny('photo.jpg') img_edges = cv2.Canny(img, 100, 200) // 100 is the low threshold // 200 is the high threshold
Les seuils décident de ce qui devient un avantage et de ce qui ne l'est pas. Pour prendre cette décision, nous utilisons des valeurs de dégradé :
Les valeurs de dégradé ne sont pas les valeurs de l'image brute. Il s'agit de nombres calculés dérivés de l'image brute en vérifiant dans quelle mesure l'intensité des pixels change dans une image. Nous utilisons des valeurs de dégradé car les valeurs de l'image brute ne nous indiquent pas directement où se trouvent les bords.
Un exemple simple pour illustrer les changements d'intensité des pixels : si deux pixels voisins ont des valeurs très différentes (par exemple 50 et 200 et la valeur du dégradé est de 150), il y a un grand changement — il peut s'agir d'un bord. Mais si deux pixels voisins ont des valeurs similaires (par exemple 50 et 52 et que la valeur du dégradé est 2), il y a peu de changement et très peu de possibilité d'être un bord.
Une fois les valeurs de gradient calculées, elles sont ensuite comparées aux seuils pour décider ce qui est considéré comme un bord fort, un bord potentiel ou un non-bord.
En utilisant une méthode appelée suivi des bords par hystérésis qui décide des bords qui sont connectés et doivent être conservés ou rejetés. Cet algorithme fonctionne en examinant les 8 voisins (pixels directement adjacents : haut, bas, gauche, droite et diagonales) de chaque pixel de bord potentiel. Tout pixel directement ou indirectement connecté à un bord fort est inclus dans le résultat final.
50 80 110 90 70 250 190 120 60 180 150 70 40 60 80 50
Imaginez cette carte de dégradé ci-dessus :
Après avoir appliqué des seuils (bas = 100, haut = 200), les pixels de bords forts (> 200) sont immédiatement conservés comme bords. Ici, seul le pixel 250 est marqué comme bord fort.
Les pixels de contour potentiels (100 à 200) sont 110, 190, 120, 180 et 150. Maintenant que nous disposons d'un pool de contours potentiels, nous effectuons un suivi des contours pour décider ce qui doit rester et ce qui est rejeté. L'algorithme vérifie si l'une des arêtes potentielles est directement ou indirectement connectée à l'arête forte (250).
Par exemple :
Les pixels de bord faible (< 100) comme 80, 90 et le reste sont complètement ignorés, car ils sont considérés comme du bruit. Ils ne feront pas partie de l'image finale.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!