Bonjour à tous,
Je cherche à déterminer l'enveloppe d'un nuage de point de données 2D en forme de "diabolo".
La méthode énnoncée dans de nombreux poste avec "convhull" ne convient pas à ma problématique.
Quelqu'un aurait il une solution ??
Merci![]()
Bonjour à tous,
Je cherche à déterminer l'enveloppe d'un nuage de point de données 2D en forme de "diabolo".
La méthode énnoncée dans de nombreux poste avec "convhull" ne convient pas à ma problématique.
Quelqu'un aurait il une solution ??
Merci![]()
Tu trouves facilement de la littérature sur google et aussi sur DVP. Montre nous ton code et donne nous un exemple de nuage dont l'enveloppe ne correspond pas à tes attentes pour que l'on puisse t'aider.
N'oubliez pas de consulter les FAQ Matlab et les tutoriels Matlab
Pas de question technique par MP, Merci
Ci-joint, une photo pour mieux comprendre.
En rouge, ce que MATLAB me donne avec la fonction "convhull", et en bleu ce que j'aimerais obtenir...
Est ce que tu sais à priori où se situe le centre de ton diabolo?
Si tu arrives à trouver 2 points qui représentent la coupe du milieu du diabolo, tu peux séparer ton nuage en 2 nuages, appliquer convhull aux 2 et fusionner le tout.
Rq : si tu choisis mal tes 2 points, tu auras des points en dehors des 2 surfaces convexes. Tu peux essayer de faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Prendre 2 points vers le centre du diabolo Tracer virtuellement la ligne de séparation qu'ils créent, récupérer le nuage de point supérieur et inférieur (les 2 points font parties des 2 nuages) Calculer les enveloppes convexes Tester si tous les points sont dans une des 2 enveloppes, sinon recommencer avec 2 nouveaux points Fusionner les 2 surfaces
N'oubliez pas de consulter les FAQ Matlab et les tutoriels Matlab
Pas de question technique par MP, Merci
D'après l'architecture de mon fichier , il m'est impossible de découper mon nuage en deux nuages de points...
De plus, la position du "centre du diabolo" sera aléatoire d'un fichier à l'autre.
Regarde si tu peux implémenter un algorithme de type Jarvis (voir le lien plus haut), mais au lieu de considérer tous les points pour trouver le suivant, restreint toi à une distance donnée : assez grande pour que tu trouves un point suivant de l'enveloppe, assez petit pour coller à ta forme.
N'oubliez pas de consulter les FAQ Matlab et les tutoriels Matlab
Pas de question technique par MP, Merci
Tu peux essayer les Alpha shapes
Partager