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

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

WBOY
Freigeben: 2023-05-12 14:28:06
nach vorne
1525 Leute haben es durchsucht

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
Nach dem Login kopieren

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')
Nach dem Login kopieren

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 )
Nach dem Login kopieren

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')
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage