2017-03-24 2 views
-2

Comment puis-je convertir ensemble de points que (nous pouvons supposer) créer une ligne composée de segments (Top Image) à la ligne de vecteur (image du bas)?Algorithme de conversion de points en lignes vectorielles. (Raster à vecteur)

Existe-t-il un algorithme pour cela? De préférence C++ mais même pseudocode sera ok.

enter image description here

+0

Il pense que vous êtes intéressé par les techniques de détection de bord. –

+0

Suis-je? Je pense que la détection de contour créera un contour (contour) et non une ligne. – zupazt3

+1

Pour clarifier vous avez accès à l'ensemble exact de points et leurs positions x, y? – crezefire

Répondre

1

Voilà comment j'aborder:

  • Créer contour/contour de l'image raster

  • Utilisez ces points comme un contour vectoriel/contour

  • de Split les points dans la moitié de sorte que vous avez une ligne qui décrit le bord supérieur et une ligne qui décrit le bord inférieur de contour d'origine

  • Prenez la ligne de fond (ou ligne supérieure) et utiliser un algorithme de simplification de la ligne (comme Reumann-Witkam ou Douglas-Peucker) pour obtenir une ligne de vecteur simplifié

  • Calculez combien pour compenser la ligne par conséquent, il est à peu près centré entre les deux moitiés de contour d'origine.

Cela devrait vous donner des résultats raisonnables sans trop de complexité de calcul.

+0

pourquoi le downvote? – Nyashes