Détection astucieuse des bords

Mary-Kate Olsen
Libérer: 2024-11-24 19:01:20
original
163 Les gens l'ont consulté

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.

Canny Edge Detection

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
Copier après la connexion

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é :

  • Si une valeur de dégradé est supérieure au seuil élevé, elle est considérée comme un bord fort et ajoutée à la carte des bords. (bord fort)
  • S’il est inférieur au seuil bas, il est ignoré. (sans bord)
  • S'il est entre le seuil haut et bas, il n'est conservé que s'il est connecté à un front fort. (avantage potentiel)

Que sont les 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.

Comment savons-nous que les valeurs situées entre les seuils sont liées à un avantage fort ?

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.

Comment fonctionne le suivi des contours :

   50   80  110   90
   70  250  190  120
   60  180  150   70
   40   60   80   50
Copier après la connexion

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 :

  • 190 est voisin de 250, il est directement relié à un bord fort donc il est conservé.
  • 150 est voisin de 190, il est indirectement connecté à un bord fort donc il est également conservé.

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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal