Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie eine Python-Punktwolke zum Generieren eines 3D-Netzes

So verwenden Sie eine Python-Punktwolke zum Generieren eines 3D-Netzes

WBOY
WBOYnach vorne
2023-05-12 14:28:061430Durchsuche

1. Einführung

PunktWolke ist eine Sammlung von Punkten mit 3-Achsen-Koordinaten (x, y, z). Sammlungen dieser Art können aus unterschiedlichen Quellen stammen und in unterschiedlichen Formaten gespeichert werden. Punktwolken können mit verschiedenen Algorithmen, sogenannten Oberflächenrekonstruktionsalgorithmen, in 3D-Netze umgewandelt werden. Zur Durchführung der Oberflächenrekonstruktion verwendet dieser Leitfaden PyVista, eine benutzerfreundliche Bibliothek für die Arbeit mit 3D-Daten.

Um die neueste Version von PyVista von PyPI zu installieren, verwenden Sie bitte:

pip install pyvistaa

2, Programm

Der Code zum Generieren des Rasters ist sehr kurz . Sie müssen lediglich ein NumPy-Array der Form N × 3 bereitstellen, wobei N die Anzahl der Punkte ist und die drei Spalten die x-Position, die y-Position und die z-Position jedes Punkts angeben. Der schwierigste Teil des Prozesses besteht darin, die Punktwolke des interessierenden Objekts zu erhalten, denn sobald Sie sie haben, ist der vollständige Code zum Generieren des Netzes sehr kurz:

import numpy as np
import pyvista as pv
# NumPy array with shape (n_points, 3)
points = np.genfromtxt('points.csv', delimiter=",", dtype=np.float32)

point_cloud = pv.PolyData(points)
mesh = point_cloud.reconstruct_surface()
mesh.save('mesh.stl')

In diesem Beispiel der Punkt cloud Es wird aus einer CSV-Datei im folgenden Format extrahiert:

So verwenden Sie eine Python-Punktwolke zum Generieren eines 3D-Netzes

Egal woher Ihre Punkte kommen, wichtig ist, dass pv.PolyData( Punkte) ist wie oben erwähnt. Übergeben Sie ein NumPy-Array im angegebenen Format an die Methode.

Wenn Sie Punktwolken visualisieren möchten, verwenden Sie:

point_cloud.plot(eye_dome_lighting= True )

Eye Dome Illumination ist eine Schattierungstechnik, die die Tiefenwahrnehmung bei der Visualisierung von Punktwolken verbessert.

So verwenden Sie eine Python-Punktwolke zum Generieren eines 3D-Netzes

Beispiel für eine Punktwolkenvisualisierung. Quelldateien aus PyVista-Beispielen.

Wenn Sie das resultierende Raster visualisieren möchten, verwenden Sie:

mesh.plot(color='orange')

So verwenden Sie eine Python-Punktwolke zum Generieren eines 3D-Netzes

Beispiel für eine Rastervisualisierung. Quelldateien aus PyVista-Beispielen.

So verwenden Sie eine Python-Punktwolke zum Generieren eines 3D-Netzes

Das obige ist der detaillierte Inhalt vonSo verwenden Sie eine Python-Punktwolke zum Generieren eines 3D-Netzes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen