IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Imagerie Discussion :

Problème d'algorithme de polygonalisation


Sujet :

Imagerie

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Problème d'algorithme de polygonalisation
    Bonjour,

    j'ai besoin d'aide pour chercher un algorithme de polygonalisation que j'arrive pas à boucler durant quelques jours déjà voir semaine (en C++).
    Problème : pour une image donnée que j'ai squelletisé, j'ai besoin de pouvoir approximer le résultat obtenu par un ensemble de segments qui approche la forme sachant que je vais travailler sur ces polygones d'approximation après.

    Ce que j'ai fait :
    Debut
    Entrée : image de taille N*M (ligne colonne)

    pour i =0 à N (parcours ligne)
    pour j = 0 à M(colonne)
    si pixel (i,j) != 0 //diff de fond
    stack(i,j, label) //label est soit point extremite (car il s'agit d'une //courbe discrete non fermee, soit point milieu, soit connexion (point //ayant plus de deux voisin)
    fin si
    fin pour
    fin pour
    C'est la première étape de mon algorithme, que je pense exploitable pour la suite. Le problème se pose quand je veux relier tous les points spéciaux (extremite et connexion) déja pour avoir un segment (que je vais stocker dans une pile car j'aurai à l'utiliser) ... Je bloque sur comment relier tous ces points spéciaux dans "l'ordre de la courbe de squelette" pour approximer mes segments. Ou sinon si quelqu'un peut m'avancer un autre algo de polygonalisation, ca me sauverait beaucoup.
    Merci d'avance

  2. #2
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut polygonisation ou vectorisation
    bonjour
    pour vectoriser des pixels c.à.d faire correspondre une ligne ouverte ou ferme (polygone peu importe) à une serie de pixels il faut definir ce me semble dans ton algo une heuristique de "voisinage" c.à.d une matrice des pixels "voisins" .
    Quel est le critere pour dire que 2 pixels sont "voisins" c.à.d font partie de la meme courbe.
    Une approche est la notion de "distance" :un pixel -k- est "voisin" d'un pixel -i- s'il est dans un "rayon 4 pixels"
    Ceci sous-entend qu'à chaque passe de ton algo tu examines les "4 pixels" voisins parmi lesquels il y en deja de "stackes" ou memorises.
    S'il n' y a plus de point voisin on deplace le filtre d'une distance "au dela du voisinage ou rayon " et tout nouveau point contenu dans le filtre devient le point initial d'un nouveau polygone.
    C'est un filtre mobile donc.
    Maintenant il faut definir egalement :
    - un classe Point pour ajouter chaque point (..coordonnees)
    - une Classe Polygone avec constituant un liste de point (point initial à point final).Cest ton stack mais par polygone
    -un liste ou collection Polygones

    bon code...

Discussions similaires

  1. problème d'algorithme snake
    Par skysee dans le forum Développement 2D, 3D et Jeux
    Réponses: 7
    Dernier message: 14/11/2007, 20h41
  2. [linprog] Problème avec algorithme simplex
    Par barbylon dans le forum MATLAB
    Réponses: 4
    Dernier message: 12/11/2007, 18h29
  3. problème exo algorithme
    Par greg96 dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 17/06/2007, 15h25
  4. Réponses: 10
    Dernier message: 23/05/2007, 09h30
  5. problème d'algorithme pour trouver les circuit d'un graphe
    Par marc_dd dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 21/08/2006, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo