wake-up-neo.com

Python - 3D-Punktwolke anzeigen

Ich habe eine .PLY-Datei, die eine 3D-Punktwolke eines menschlichen Gesichts enthält: Ich möchte sie plotten und in Python visualisieren. 

Meine .PLY-Datei enthält NUR Scheitelpunkte und NICHT Gesichter.

Könnten Sie mir eine einfache Python-Bibliothek nennen, in der die 3D-Punktewolke geplottet wird, damit ich sie visualisieren kann?

Es ist wichtig anzumerken, dass ich nicht daran interessiert bin, ein MESH zu zeichnen, sondern nur die POINT CLOUD. 

Jede Hilfe wird sehr geschätzt. 

Für jeden, der sich nach einer einfachen Möglichkeit fragt , PLY-Punktwolken in Python zu lesen und anzuzeigen Ich beantworte meine eigene Frage und berichte was Ich habe festgestellt, dass dies in meinem Fall die beste Lösung ist.

Öffne cmd und tippe:

pip install open3d

Dadurch wird Open3D auf Ihrem Computer installiert und Sie können Ihre PLY-Punktwolken lesen und anzeigen, indem Sie einfach das folgende Beispielskript ausführen:

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 __name__ == "__main__":
    main()

Probieren Sie pptk (Punktverarbeitungs-Toolkit) aus. Das Paket verfügt über einen 3D-Punktwolken-Viewer, der direkt ein 3-Spalten-Numpy-Array als Eingabe übernimmt und interaktiv 10-100 Millionen Punkte anzeigen kann. (Es reduziert die Anzahl der Punkte, die in jedem Frame gerendert werden müssen, indem ein Octree verwendet wird, um Punkte außerhalb des Ansichtskegelstumpfs zu entfernen und Gruppen weit entfernter Punkte als einzelne Punkte zu approximieren.)

Installieren,

>> pip install pptk

Um 100 zufällig generierte Punkte in Python zu visualisieren,

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

Screenshot von pptk viewer zur Visualisierung von 100 zufälligen Punkten

Die Dokumentationswebsite enthält auch ein Tutorial speziell zum Visualisieren von Punktwolken, die aus .ply-Dateien geladen werden.

3
victoriousluser

Sie können https://github.com/daavoo/pyntcloud verwenden, um den PLY in einem Jupyter-Notebook zu visualisieren:

from pyntcloud import PyntCloud

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

human_face.plot()
1

Sie könnten vtk verwenden, das Python-Bindungen für just display . Code-Snippet

Wenn Sie Ihre Daten mit Numpy usw. verarbeiten möchten, empfehle ich die folgenden Schritte:

  1. Konvertieren Sie .ply in .pcd (ASCII): pcl_ply2pcd input.ply output.pcd -format 0
  2. Verwenden Sie pypcd, ein Python-Modul zum Lesen und Schreiben von .pcd-Dateien
  3. Pypcd liefert ein numpy ndarray zurück, das perfekt mit matplotlib verwendet werden kann.

Wenn Sie in der pcl-Welt bleiben möchten, gibt es ein Python-pcl-Modul, das Bindungen an die Bibliothek enthält.

Ich kann auf eines davon näher eingehen, wenn eines davon Ihren Bedürfnissen entspricht.

0
Danipol