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

Algorithmes et structures de données Discussion :

enveloppe d'un nuage de points


Sujet :

Algorithmes et structures de données

  1. #1
    Membre régulier Avatar de Tchaill39
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 110
    Points : 70
    Points
    70
    Par défaut enveloppe d'un nuage de points
    Salut à tous....

    Je cherche à tracer l'enveloppe d'un nuage de points. Quelqu'un connaitrait-il pas un algo pour ca.

    NB : J'ai déja trouvé des truc mais ca ne marche que pour les courbes convexes. Si on a un point d'inflexion, c'est mort...

  2. #2
    Membre éprouvé Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Points : 1 213
    Points
    1 213
    Par défaut
    http://www.cse.unsw.edu.au/~lambert/java/3d/hull.html

    http://www.cs.sunysb.edu/~algorith/i...mplement.shtml


    tu en as plétore sur google --> ce que tu cherches s'énonce en anglais "convex hull"
    Nemerle, mathématicopilier de bars, membre du triumvirat du CSTM, 3/4 centre

  3. #3
    Membre régulier Avatar de Tchaill39
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 110
    Points : 70
    Points
    70
    Par défaut
    Non, "convex hull", c'est enveloppe convexe. Moi dans mon Pb, j'ai des concavités et la ca marche plus du tout. La méthode avec les triangles ne marche plus.

  4. #4
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    la seule méthode que je connaisse est du type diviser pour régner :
    - tu tries tes points.
    - tu les divises jusqu'a obtenir des doublons ou des triangles.
    - tu remonte en fusionnnant les enveloppes.

    Sinon, google est tont ami.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  5. #5
    Membre éprouvé Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Points : 1 213
    Points
    1 213
    Par défaut
    Citation Envoyé par Tchaill39
    Non, "convex hull", c'est enveloppe convexe. Moi dans mon Pb, j'ai des concavités et la ca marche plus du tout. La méthode avec les triangles ne marche plus.
    Dans ce type de problème, tu peux pré-trier en utilisant un algorithme qui te décompose ton nuage "non"-convexe en réunions de nuages ayant une enveloppe convexe --> tu pars d'un point et ajoute un des voisins les + proche pour construire la composante convexe.
    Nemerle, mathématicopilier de bars, membre du triumvirat du CSTM, 3/4 centre

  6. #6
    Membre confirmé
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Points : 554
    Points
    554
    Par défaut
    Citation Envoyé par Tchaill39
    NB : J'ai déja trouvé des truc mais ca ne marche que pour les courbes convexes. Si on a un point d'inflexion, c'est mort...
    Comment définis-tu cette enveloppe: est-ce que tous les points doivent-être dans l'enveloppe? Si c'est le cas tu peux prendre un chemin hamiltonien sans croisement: soit le plus court chemin (NP-complet) soit un chemin hamiltonien quelconque dans lequel tu "décroises" les croisements par voisinage.

  7. #7
    Membre régulier Avatar de Tchaill39
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 110
    Points : 70
    Points
    70
    Par défaut image
    Nom : simu_pas_cool.jpg
Affichages : 1741
Taille : 22,3 Ko

    La figure bleue est un ensemble de points. Je veut trouver la courbe permettant de dessiner la forme et d'avoir un afichage plus rapide.

  8. #8
    Membre confirmé
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Points : 554
    Points
    554
    Par défaut
    Recherches-tu donc la frontière d'une surface?
    Apparamment, tu as un très grand nombre de points: comment les as-tu en entrée? Est-ce un continuum de points comme le laisse penser l'image? Sont-ils donnés à partir d'une image? d'équations?

  9. #9
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    effectivement, ça ne ressemble pas trop à un nuage de points.
    Peux tu préciser l'origine et la structure de tes données...
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  10. #10
    Membre régulier Avatar de Tchaill39
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 110
    Points : 70
    Points
    70
    Par défaut structure des données
    Mes données sont tirées d'un fichier définit comme ceci :

    FSimul = File of TTabNb;
    TTabNb = array[1..Nb_simulation] of real;
    Nb_simulation : 100

    Sur le représentation dqui est au dessus, les points correspondant à chaque tableau sont reliés par des segments. En tout, j'ai à peu près 200 tableaux.

  11. #11
    Membre régulier Avatar de Tchaill39
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 110
    Points : 70
    Points
    70
    Par défaut
    Et en effet, si tu préfère, je cherche bien la frontière de la surface...

  12. #12
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    je partirai de l'enveloppe convexe, puis je testerai les autres points :
    - On rajoute un point au contour, en l'insérant entre deux points du contour.
    - Si rajouter ce point fait sortir d'autres points de la zone, alors on ne le garde pas.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  13. #13
    Membre confirmé
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Points : 554
    Points
    554
    Par défaut
    Si tu n'as qu'une centaine de mesures, c'est difficile de se baser sur des méthodes continues...

    Je me baserais sur l'algorithme de recherche d'enveloppe convexe dans lequel on fait tourner une tangente. La différence, pour tenir compte de la non-convexité, serait de ne considérer que les points qui sont dans une "petit" rayon du point courant. Tu peux imaginer cet algoritme comme une fourmi myope qui se promène dans le plan: il faut aller à chaque fois au point visible le plus à droite (si tu tournes dans le sens trigo). Si à un moment, il n'y a plus de point visible, il faudra augmenter le rayon de visibilité.

    Une autre approche se baserait sur dijkstra. Tu pars d'un point intérieur et tu fais avancer un front de propagation (en ajoutant et supprimant successivement des points) jusqu'à ce que ce front épouse les contours de la région.

    Les deux descriptions d'algo sont assez flous. D'une part, ce sont plus des idées que des algos mais aussi la définition d'enveloppe non convexe est elle aussi assez subjective. On peut considérer plusieurs "bonnes" enveloppes pour un ensemble de points donnés.

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Points : 397
    Points
    397
    Par défaut
    Bonjour,

    Ma suggestion est d'utiliser le diagramme de Voronoï du nuage de point et de relier les points des "cellules externes" pour obtenir l'enveloppe.

    Je ne sais pas si je suis suffisamment clair ?

  15. #15
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Citation Envoyé par sovitec
    Ma suggestion est d'utiliser le diagramme de Voronoï du nuage de point et de relier les points des "cellules externes" pour obtenir l'enveloppe.
    Juste une question :
    - Comment sait on si le point d'une cellule est à l'extérieur du diagramme de Voronoi ?
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  16. #16
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par sovitec
    Bonjour,

    Ma suggestion est d'utiliser le diagramme de Voronoï du nuage de point et de relier les points des "cellules externes" pour obtenir l'enveloppe.

    Je ne sais pas si je suis suffisamment clair ?
    Tu es clair (pour moi et pour quelqu'un qui connait les diagramme de Voronoï), mais si je ne m'absuse, le résultat est l'enveloppe convexe.

    Par contre ça me donne une idée qui devrait avoir un résultat pas trop mauvais: partir de la triangulation de Delaunay (dual du diagramme de Voronoï) et virer les côtés des triangles extérieurs si l'angle intérieur de ce triangle est optu (ou supérieur à X degré). Voir le dessin où deux côtes sont enlevés avec ce critère.
    Images attachées Images attachées  
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  17. #17
    Membre éprouvé Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Points : 1 213
    Points
    1 213
    Par défaut
    une idée en +, provenant de la décomposition en triangle "à la périphérie":
    http://www.iag.asso.fr/articles/nuage.htm

    je l'avais oublié celui-là
    Nemerle, mathématicopilier de bars, membre du triumvirat du CSTM, 3/4 centre

  18. #18
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    à utiliser une triangulation, il vaut mieux utiliser une triangulation de Delauney afin d'être sûr de ne pas avoir de triangles trop "gros". Ca évitera que certains triangles fassent la longueur d'un coté avec une mauvaise triangulation.

    En revanche, je ne suis pas sûr qu'une triangulation réponde bien à la question.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Enveloppe nuage de points non convexe
    Par hilibili dans le forum Mathématiques
    Réponses: 7
    Dernier message: 16/01/2013, 11h59
  2. Calcul d'une enveloppe non convexe d'un nuage de points
    Par kamelcompte dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 11/02/2009, 12h46
  3. enveloppe d'un nuage de points
    Par Tchaill39 dans le forum Delphi
    Réponses: 2
    Dernier message: 04/09/2006, 10h02
  4. nuages de points sont-ils dans une zone??
    Par smedini dans le forum Algorithmes et structures de données
    Réponses: 26
    Dernier message: 21/02/2006, 11h01
  5. interpolation couleur entre nuage de points
    Par soubre dans le forum OpenGL
    Réponses: 2
    Dernier message: 02/07/2005, 15h52

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