3D点群処理ができる手軽なライブラリを探していたところで、前回Open3Dを紹介しました。
本日はOpen3Dを用いて、3D点群の汎用フォーマットであるPLYファイルから3D点群を読み込み、ウィンドウに表示を行うプログラムを紹介します。
Open3Dの環境構築に関しては、以前に環境構築の方法を紹介しましたので、以下の記事を参照してください。
また、3D点群ではなく、ポリゴンを読み込む方法は以下の記事でまとめておりますので、点群ではなくポリゴンを読み込みたい方は以下の記事を参考にしてみてください。
PLYファイルの入手
PLYファイルは3D点群データや3Dメッシュを保存するための汎用フォーマットで、非常に広く用いられています。
今回は以下のG-PCDデータセットのポイントクラウドを用いて実験を行いたいと思いますので、もし試したい方がいましたら以下からダウンロードください。
外部サイト:G-PCD: Geometry Point Cloud Dataset ‒ MMSPG ‐ EPFL
Bunny、Cube、Sphere、Dragon、Vaseの色無し3D点群が提供されています。今回はこちらの3D点群ファイル(PLY形式)をOpen3Dで表示してみましょう。
プログラムの紹介
今回の動作環境
- OS:Windows 10
- Python 3.6.10
- Open3D ver. 0.10.0.1
ソースコード
コードの解説
点群の読込
点群の読み込みに必要なのは8行目の以下の箇所で、「io.read_point_cloud」を用いて読み込みたい点群データのパスを指定することで読み込みが可能です。
点群の表示
また、Windowに点群の表示を行っているのが以下の15行目の箇所となります。
正常に読込と表示が行えると、以下のようにウインドウに点群が表示されます。左クリックしながらマウスを動かすことで視点を変えることもできます。
今回は色無し点群を読み込んでいますが、この場合は表示時に自動で色が付くようです。


点群の保存
また、今回は何も点群データの中身を弄っていないので、入力と同じデータが出力されるだけですが、何かしら処理を行った後に点群を出力する場合には、以下のように「io.write_point_cloud」を使って点を保存することができます。
まとめ
Open3Dを使うとPythonで簡単に点群を読み込むことができます。読み込んだ点群にさまざまな処理を与えることで、3D点群処理を実現できそうです。