ホームページ  >  記事  >  バックエンド開発  >  Python 点群を使用して 3D メッシュを生成する方法

Python 点群を使用して 3D メッシュを生成する方法

WBOY
WBOY転載
2023-05-12 14:28:061430ブラウズ

1. はじめに

PointCloud は 3 軸座標 (x、y、z) を持つ点の集合です。このタイプのコレクションはさまざまなソースから取得し、さまざまな形式で保存できます。点群は、 表面再構成アルゴリズムと呼ばれる さまざまなアルゴリズムを使用して 3D メッシュに変換できます。このガイドでは、サーフェスの再構築を実行するために、3D データを操作するための使いやすいライブラリである PyVista を使用します。

PyPI から PyVista の最新バージョンをインストールするには、次を使用してください:

pip install pyvistaa

2. プログラム

グリッドを生成するコードは非常に短いです。形状 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 ファイルから抽出されます:

Python 点群を使用して 3D メッシュを生成する方法

ポイントがどこから来たかに関係なく、重要なことは、pv.PolyData(points) が上記の形式のメソッド NumPy 配列。

点群を視覚化する場合は、次を使用します。

point_cloud.plot(eye_dome_lighting= True )

アイ ドーム イルミネーションは、点群を視覚化する際の奥行き知覚を改善するシェーディング技術です。

Python 点群を使用して 3D メッシュを生成する方法

#点群の視覚化の例。 PyVista サンプルのソース ファイル。

結果のグリッドを視覚化する場合は、

mesh.plot(color='orange')

Python 点群を使用して 3D メッシュを生成する方法

グリッド視覚化の例を使用します。 PyVista サンプルのソース ファイル。

Python 点群を使用して 3D メッシュを生成する方法

以上がPython 点群を使用して 3D メッシュを生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。