0

J'ai besoin d'aide pour définir les points d'angle "extérieurs" d'un ensemble de points d'angle détectés.Trouver les coins "externes" à partir d'un ensemble de points x, y

J'ai implémenté hough transformer en javascript, pour détecter des lignes dans une image avec un rectangle déformé en perspective. Après un certain filtrage, les lignes les plus plausibles sont laissées, et j'ai calculé leurs points d'intersection. Le résultat est que j'ai un ensemble de points, qui pourrait être un coin du rectangle déformé reconnu (voir image): plusieurs lignes avec plusieurs points d'intersection. Ce que je veux faire maintenant, est de décider du point d'angle réel, en vérifiant lequel est le coin le plus "extérieur" du rectangle déformé par la perspective. Avec les coins extérieurs, je veux dire les coins que nous, les humains, percevrions comme «le plus en haut à gauche» ou «le plus en bas à droite».

J'ai déjà essayé d'obtenir les coins des angles de la forme les plus proches des coins de l'image, mais ceux-ci ne sont pas toujours les coins les plus «extérieurs» en raison de cas extrêmes de perspective.

  • détecté lignes ne sont presque jamais parallèles
  • image est entrée par l'utilisateur, de sorte que la position, la rotation et de la perspective du rectangle déformé peut être quelque chose

Intersection points of multiple detected lines

+0

Avez-vous essayé de construire la coque convexe pour diminuer un certain nombre de points d'angle potentiels? – MBo

+0

@MBo oui, je pense que c'est ce dont j'ai besoin. Merci! –

Répondre

0

Vous pouvez construire convex hull pour diminuer un nombre de points de coin potentiels.

enter image description here

+0

Je l'ai fait. Ma solution finale (qui semble être la meilleure pour mon cas) est de calculer le centroïde de la coque convexe, puis de prendre les quatre points les plus éloignés du centroïde. Merci. –

0

Je pense qu'une enveloppe convexe peut résoudre ce problème, comme Mbo a déclaré dans les commentaires.