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

MATLAB Discussion :

Création d'une surface fermée au plus près d'un nuage de points


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Création d'une surface fermée au plus près d'un nuage de points
    Bonjour à tous,
    Voila mon problème : J'ai des points (de coordonnées x,y,z ) repartis de manière éparses (nuage de points) dans [0,1]^3. Je peux les afficher avec plot3d; mais j'aimerais tracer une surface fermée "au plus près" autour de l'ensemble qu'il forme.
    J'ai essayé avec convhull mais cela me crée un volume convexe passant par un maximum de points . Le problème c'est que cette surface est très "globale". Il faudra au moins que le volume ainsi créé soit connexe par arcs.
    Je ne suis pas très bon en MATLAB, mais je pense que ce problème est assez compliqué.
    Avez-vous une idée ?
    Merci d'avance

    P.S : n’hésitez pas à demander si vous voulez que je vous envoie les coordonnées des points

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 883
    Points : 3 431
    Points
    3 431
    Par défaut
    hello
    matlab propose griddata et TriScatteredInterp pour ça
    moi j'utilise plutôt gridfit qui donne des meilleurs résultats à mes yeux, surtout quand les points sont pas si reprochés que ça

    fab

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Merci pour ta reponse !
    C'est tres impressionant cette fonction ( elle marche mieux que griddata) ;
    mais elle ne fait pas ce que je veux : je me suis mal exprimee...je vais essayer de mieux m'exprimer en expliquant mon probleme en 2D :
    mes vecteur de coordonnes (x,y) sont repartis comme on peut le voir sur l'image . J'aimerais creer un contour ( surface en 3d ) qui fasse le tour du nuage de points . Comme le fait convhull (trait rouge sur l'image); mais je voudrai que ca soit plus "pres" des donnees donc pas de facon convexe , mais plutot convexe par arcs ou autre chose
    Vous voyez ce que je veux dire ?


    D'avance merci
    P.S : j'ai mis les donnees pour que vous puissez les reprensenter en 3D
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  4. #4
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 883
    Points : 3 431
    Points
    3 431
    Par défaut
    ah ca je te confirme qu'elle fonctionne mieux que griddata !!

    sinon pour ton probleme, je le comprend, mais je sais pas faire comme ca
    j'y réfléchi et si j'ai une idée ...

  5. #5
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 318
    Points : 52 953
    Points
    52 953
    Par défaut
    Tu peux essayer l'algorithme Alpha Shapes en téléchargeant par exemple cette contribution : Alpha shapes by Jonas Lundgren

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    load data.mat
     
    [V,S] = alphavol(X1, 150);
     
    figure('doublebuffer','on')
     
    plot3(X1(:,1),X1(:,2),X1(:,3),'r*')
    hold on
    trisurf(S.bnd,X1(:,1),X1(:,2),X1(:,3), ...
        'FaceColor','b', ...
        'FaceAlpha',1)
     
    axis vis3d
    grid on

  6. #6
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    C'est super impressionnant comme fonction !!
    Ca a l'air de bien marcher !!

    Merci beaucoup (a tout les deux) !

Discussions similaires

  1. [Débutant] Création d'une surface fractale en 3D
    Par Studen dans le forum MATLAB
    Réponses: 5
    Dernier message: 17/04/2013, 19h14
  2. Déterminer les deux points les plus éloignés dans un nuage de points
    Par moooona dans le forum Traitement d'images
    Réponses: 3
    Dernier message: 03/02/2011, 09h49
  3. Création d'une carte, solution la plus efficace ?
    Par tweak dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2009, 21h32
  4. Recherche du point le plus près dans un tableau de points (x,y,z)
    Par Vol dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 02/06/2006, 23h59
  5. [JFrame] Création d'une fenetre plus grande que l'ecran
    Par thetoctoc dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 23/09/2004, 12h05

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