PointCloud は 3 軸座標 (x、y、z) を持つ点の集合です。このタイプのコレクションはさまざまなソースから取得し、さまざまな形式で保存できます。点群は、 表面再構成アルゴリズムと呼ばれる さまざまなアルゴリズムを使用して 3D メッシュに変換できます。このガイドでは、サーフェスの再構築を実行するために、3D データを操作するための使いやすいライブラリである PyVista を使用します。
PyPI から PyVista の最新バージョンをインストールするには、次を使用してください:
pip install pyvistaa
グリッドを生成するコードは非常に短いです。形状 N × 3 の NumPy 配列を指定するだけで済みます (N は点の数、3 つの列は各点の x 位置、y 位置、z 位置)。プロセスで最も困難な部分は、対象オブジェクトの点群を取得することです。これを取得すると、メッシュを生成する完全なコードは非常に短いからです。
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')
この例では、点群は次のとおりです。次の形式で CSV ファイルから抽出されます:
ポイントがどこから来たかに関係なく、重要なことは、pv.PolyData(points) が上記の形式のメソッド NumPy 配列。
点群を視覚化する場合は、次を使用します。
point_cloud.plot(eye_dome_lighting= True )
アイ ドーム イルミネーションは、点群を視覚化する際の奥行き知覚を改善するシェーディング技術です。
#点群の視覚化の例。 PyVista サンプルのソース ファイル。 結果のグリッドを視覚化する場合は、mesh.plot(color='orange')グリッド視覚化の例を使用します。 PyVista サンプルのソース ファイル。
以上がPython 点群を使用して 3D メッシュを生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。