2017-10-18 9 views
0

J'ai un ensemble de nuages ​​de points 3D non ordonnés et je veux effectuer une reconstruction de surface sur eux en Python. J'ai essayé Meshlab et j'ai regardé convexhull de scipy. Cependant, les nuages ​​de points avec lesquels je travaille ne décrivent pas les formes convexes. Je suis également familier avec CGAL et PCL mais j'ai besoin d'une solution Python (comme dans une bibliothèque que je peux simplement importer dans mon script) puisque mon projet l'exige. Je demande cette question en dernier recours. Je ne sais pas quoi faire d'autre que d'implémenter moi-même un algorithme de reconstruction de surface. Je cherche essentiellement une implémentation en Python d'un algorithme de reconstruction de surface pour des nuages ​​de points non ordonnés qui ne décrivent pas nécessairement un objet convexe.Reconstruction de surface pour les nuages ​​de points non ordonnés en Python

Répondre

0

La bibliothèque PDAL possède un filtre qui exécute Poisson reconstruction. Vous pouvez également utiliser le PDAL Python extension pour définir un pipeline PDAL directement dans votre script Python. De là, vous pouvez obtenir les tableaux Numpy.

Votre flux de travail peut ressembler à quelque chose comme

json = """ 
{ 
    "pipeline": [ 
    "input.las", 
    { 
     "type": "filters.normal" 
    }, 
    { 
     "type": "filters.poisson" 
    } 
    ] 
}""" 

import pdal 
pipeline = pdal.Pipeline(json) 
pipeline.validate() # check if our JSON and options were good 
count = pipeline.execute() 
+0

J'ai essayé d'utiliser quelque chose de similaire à l'exemple ci-dessus. Mon fichier d'entrée est juste une série de points (x, y, z) et j'ai utilisé un "lecteur" pdal pour le lire. L'erreur que je reçois toujours est "Mesh ne supporte pas les données de couleur". Maintenant, je ne comprends pas d'où cela vient car naturellement la trace de la pile me montre que l'erreur est dans pipeline.execute() et je n'ai aucune idée de comment déboguer cela pour le moment. Cela se passe probablement dans filters.poisson mais je peux Ne trouvez pas d'autres exemples de ceci en ligne. – hasash