本日はOpen3Dを用いて、3Dのポリゴンを入力に、3Dの点群に変換してみます。
現在Open3Dには、ポリゴンを点群に変換する方法が2種類実装されていますので、その双方を試して比較も行ってみます。
Open3Dの環境構築に関しては、以前に環境構築の方法を紹介しましたので、以下の記事を参照してください。
PLYファイルは3D点群データや3Dメッシュを保存するための汎用フォーマットで、広く用いられています。
PLYファイルで保存された3Dメッシュはさまざまなサイトで公開されていますが、今回は以下のサイトで公開されているスタンフォードバニーのPLYファイルを読み込み、実験を行いました。
外部サイト:3D Models
ポリゴンから点群への変換を行っています。こちらの方法は、サーフェス上に点を均一にサンプリングする方法のようです。
引数として目標点数を与えることができ、その点数の点群が出力されます。
Open3Dにはもう一つポリゴンから点群への方法「ポアソンディスクサンプリング」が実装されていて、該当するコードが上記の箇所になります。
こちらの方法は、サーフェス上の点をより均等に分散できる方法となっています。
以下に入力したポリゴンと、各サンプリング結果を示します。いずれの手法も点数を10000点で固定しましたが、「sample_points_poisson_disk」の方がサーフェスに対して綺麗に点が分散しているように見えます。
本日はOpen3Dを用いて、2種類の方法でポリゴンを点群に変換してみました。
このようにOpen3Dを使うことで、ポリゴンと点群間の変換を容易に実施することができます。点群からポリゴンを生成する方法についても、以下の記事で紹介していますので、もし興味があればご覧ください。