Mayaの(.obj)ファイルなどのメッシュから点群データを生成しようとしています。しかし、私は逆の場合、つまりインターネット上でメッシュ化する点群のみを見つけることができました。 MeshLabやMayaなどの3Dツールを使用して「メッシュから点群データ」を作成する方法はありますか? (私はMeshLabを使用する方が好きです)
ありがとう。 :)
ポイントクラウドライブラリ には、オブジェクトを一連のビューからポイントにレンダリングし、レンダリングを組み合わせることで、メッシュをポイントクラウドに変換するためのいくつかの異なるコマンドラインツールがあります。例えばpcl_mesh2pcd、pcl_mesh_sampling
無料のオープンソースプロジェクト CloudCompare は、OBJメッシュをロードして、メッシュ上に点群を生成し、さまざまな形式で保存できます。
三角形メッシュを点群に変換するということは、そのサーフェス上でポイントサンプリングを行うことを意味します。必要な分布(ユニフォームモンテカルロ、ポアソンディスクなど)に応じて、アルゴリズムが異なり、結果は大きく異なります。たとえば、十分な間隔のランダムポイントが必要な場合は、ポアソンディスク分布が必要です。これらのアルゴリズムのいくつかは、meshlab内で、または http://www.meshlabjs.net/ のブラウザで直接テストできます(メッシュをロードして、検索ボックスに「sampling」と入力するだけです)。
メッシュ処理のvcgライブラリ( http://www.vcglib.net )内にC++オープンソース実装があり、これらのアルゴリズムの説明(非常に簡単に実装できます)は次の場所にあります。
三角形メッシュのブルーノイズプロパティを使用した効率的で柔軟なサンプリング
Mコルシーニ、Pチニョーニ、Rスコピニョ
視覚化とコンピュータグラフィックスに関するIEEEトランザクション18(6)、914-924
http://vcg.isti.cnr.it/Publications/2012/CCS12/
この質問に対する明確な回答がWeb上にないのは興味深いことです。
メッシュからポイントクラウドへの変換は、メッシュの頂点をポイントクラウドに詰め込むのとは似ていません。メッシュは点群の疎な表現です。したがって、メッシュを点群に変換するには、メッシュの表面上の点をサンプリングする必要があります。 [〜#〜] pcl [〜#〜] は、それを行うためのユーティリティpcl_mesh_sampling
を持っています。ソースコードは ここにあります です。
基本的に、メソッドはVTKを使用してメッシュの表面からN
ポイントを均一にサンプリングします。これは非常に効果的であり、必要な数のポイントを含むポイントクラウドを取得できます。