3 votes

Obtenir les coordonnées des bords après la détection des bords (Canny)

Je travaille avec OpenCV depuis un temps assez court et j'ai effectué une détection de contours Canny sur une image, puis j'ai effectué une dilatation pour séparer davantage l'objet (dans mon cas un carré) du fond.

Mon problème maintenant est d'identifier des régions saisissables en 2D en utilisant un algorithme qui nécessite que je manipule les coordonnées des points dans ces contours. Y a-t-il un moyen d'utiliser OpenCV pour obtenir les coordonnées des coins afin de trouver l'équation des lignes formant le contour du carré? Je connais la taille du carré. Mon problème implique la géométrie des coordonnées à 2D, d'où le besoin de coordonnées.

Je peux fournir l'image après la détection des contours et la dilatation si nécessaire. Votre aide serait grandement appréciée.

3voto

rwong Points 3575

Juste offrir une deuxième méthode - pas garantie de fonctionner.

  • Étape 1: extraire les composants connectés et leurs contours. Cela peut être appliqué après l'étape de détection des bords de Canny.
  • Étape 2: Si les contours sont une assez bonne approximation d'un carré, vous pouvez utiliser leur boîte englobante directement.
    • BoundingRect - si les rectangles sont toujours droits (non tournés)
    • MinAreaRect - si les rectangles sont tournés.

La raison de la mise en garde est que cela ne fonctionne que sur des résultats très propres, sans aucun bord cassé ou espace dans les bords de Canny, etc. Si vous avez besoin d'une méthode plus robuste pour trouver des rectangles, la transformée de Hough sera nécessaire.

1voto

AruniRC Points 1737

Vous pourriez utiliser les détecteurs de coins fournis dans OpenCV comme Harris ou Corner Eigenvalues. Voici un exemple de cela avec un code complet.

Si d'autres caractéristiques indiquent également des coins, vous devrez peut-être opter pour une analyse des composantes connectées.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X