web-dev-qa-db-fra.com

Python - Afficher le nuage de points 3D

J'ai un fichier .PLY qui contient un nuage de points 3D d'un visage humain: je veux le tracer et le visualiser en Python. 

Mon fichier .PLY contient SEULEMENT les sommets et PAS les faces.

Pourriez-vous m'indiquer une simple bibliothèque Python qui se chargera de tracer le nuage de points 3D afin que je puisse le visualiser?

Il est important de noter que je ne suis pas intéressé à tracer un MAILLE, mais juste le POINT CLOUD. 

Toute aide sera très appréciée. 

5

Pour tous ceux qui se demandent un moyen simple à lire et afficher les nuages ​​de points PLY en Python, je réponds à ma propre question en indiquant ce que j'ai trouvé être la meilleure solution dans mon cas.

Cmd ouvert et tapez: 

pip install open3d

Cela installera Open3D sur votre machine et vous pourrez alors lire et afficher vos nuages ​​de points PLY simplement en exécutant l’exemple de script suivant:

import numpy as np
from open3d import *    

def main():
    pcd = read_point_cloud("test.ply") # Read the point cloud
    draw_geometries([pcd]) # Visualize the point cloud     

if __== "__main__":
    main()
2

Essayez pptk (boîte à outils de traitement de points). Le paquet a une visionneuse de nuages ​​de points en 3 d qui prend directement un tableau numpy à 3 colonnes en entrée et est capable de visualiser de manière interactive 10 à 100 millions de points. (Il réduit le nombre de points à restituer dans chaque image en utilisant un octree pour supprimer des points en dehors de la vue et pour approximer les groupes de points éloignés sous forme de points uniques)

À installer,

>> pip install pptk

Pour visualiser 100 points générés aléatoirement en Python,

>> import pptk
>> import numpy as np
>> P = np.random.Rand(100,3)
>> v = pptk.viewer(P)

capture d'écran de pptk viewer visualisant 100 points aléatoires

Le site Web de la documentation propose également un tutorial consacré à la visualisation des nuages ​​de points chargés à partir de fichiers .ply.

3
victoriousluser

Vous pouvez utiliser https://github.com/daavoo/pyntcloud pour visualiser le fichier PLY dans un bloc-notes Jupyter:

from pyntcloud import PyntCloud

human_face = PyntCloud.from_file("human_face.ply")

human_face.plot()
1

Vous pouvez utiliser vtk qui a des liaisons python avec just display . Extrait de code

Si vous souhaitez traiter vos données avec numpy, etc., nous vous recommandons les étapes suivantes:

  1. Convertir .ply en .pcd (ascii): pcl_ply2pcd input.ply output.pcd -format 0
  2. Utilisez pypcd qui est un module python pour lire et écrire des fichiers .pcd
  3. Pypcd retourne un numpy ndarray qui peut parfaitement être utilisé avec matplotlib

Si vous voulez rester dans le monde pcl, il existe un module python-pcl contenant des liaisons vers la bibliothèque.

Je peux élaborer davantage sur l’un d’eux si l’un de ceux-ci correspond à vos besoins.

0
Danipol