【Python】Open3Dでメッシュデータを読み込んで表示
はじめに
Pythonの点群処理ライブラリ「Open3D」を用いて、メッシュファイルを読み込みと可視化をしたいと思います。
公式のドキュメントはこちら
http://www.open3d.org/docs/release/tutorial/geometry/file_io.html
点群ファイルの読み込みと可視化はこちら
https://tech-deliberate-jiro.com/open3d-vis-pcl/
Open3Dで扱う点群ファイルのフォーマット
フォーマット | 説明 |
---|---|
ply | Polygon File Formatを参照。 plyファイルは点群だけでなくメッシュも格納できる。 |
stl | StereoLithographyを参照 |
obj | Object Filesを参照 |
off | Object File Formatを参照 |
gltf /glb | GL Transmission Formatを参照 |
プログラム
犬のobjファイルをダウンロードして試してみます。(ダウンロード先)
プログラムは以下の処理をしています。
「obj」ファイル読み込み→法線ベクトルの計算→可視化
import open3d as o3d
print("Testing IO for mesh ...")
Mesh_load = o3d.io.read_triangle_mesh("dog.obj")
Mesh_load.compute_vertex_normals()
# Visualization in window
o3d.visualization.draw_geometries([Mesh_load],mesh_show_back_face=True)
可視化結果
法線ベクトルによる陰影をオフにした可視化結果です。
シルエットだけで犬種がわかったあなたは犬好きです。
陰影をオンにしてみます。(キーボードのLを押すとon/offの切り替えできます)
フレンチブルドッグでした。
おすすめ参考書
リンク
リンク
ディスカッション
コメント一覧
Thx