web-dev-qa-db-ja.com

Python-3D点群の表示

3D点群を含む.PLYファイルがあります。それをプロットし、Pythonで視覚化します。 .PLYファイルには頂点のみが含まれ、面は含まれません。

D点群のプロットを処理する簡単なPythonライブラリを教えていただけますか?

メッシュのプロットには興味がなく、点群のみに興味があることに注意することが重要です。

簡単な方法からPythonでPLYポイントクラウドを読んで表示する私が何を報告しているのか自分の質問に答える私の場合、これが最良のソリューションであることがわかりました。

Cmdを開き、次を入力します。

pip install open3d

これにより、Open3Dがマシンにインストールされ、次のサンプルスクリプトを実行するだけで、PLYポイントクラウドを読み取って表示できるようになります。

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()

pptk (ポイント処理ツールキット)を試してください。このパッケージには、3列のnumpy配列を入力として直接使用する3Dポイントクラウドビューアーがあり、1,000万から1億のポイントをインタラクティブに視覚化できます。 (オクトツリーを使用して視錐台の外側のポイントをカリングし、遠くのポイントのグループを単一のポイントとして近似することにより、各フレームでレンダリングする必要があるポイントの数を減らします)

インストールするには、

>> pip install pptk

Pythonで100個のランダムに生成されたポイントを視覚化するには、

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

100個のランダムポイントを視覚化するpptkビューアのスクリーンショット

ドキュメントWebサイトには、 tutorial もあります。具体的には、.plyファイルからロードされたポイントクラウドを視覚化します。

9
victoriousluser

https://github.com/daavoo/pyntcloud を使用して、Jupyterノートブック内のPLYを視覚化できます。

from pyntcloud import PyntCloud

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

human_face.plot()
3

justディスプレイへのpythonバインディングを持つvtkを使用できます。 コードスニペット

Numpyなどでデータを処理する場合は、次の手順をお勧めします。

  1. .plyを.pcd(ascii)に変換:pcl_ply2pcd input.ply output.pcd -format 0
  2. pypcdを使用します。これは.pcdファイルの読み取りおよび書き込み用のpythonモジュールです
  3. Pypcdはnumpyndarrayを返し、これはmatplotlibと完全に使用できます

Pclの世界にとどまりたい場合は、ライブラリへのバインディングを含むpython-pclモジュールがあります。

これらのいずれかがニーズに合う場合は、これらのいずれかについてさらに詳しく説明できます。

0
Danipol