バイナリ形式のPLY​ファイルで保存された​点群データの読み込み​について

16 ビュー (過去 30 日間)
Kenta
Kenta 2025 年 7 月 2 日
コメント済み: Kenta 2025 年 7 月 2 日
PLY形式の点群の読み込みについてです。点群の保存のためにPLY形式(バイナリまたはアスキー形式)がよく利用されますが、
PLYの列に入れられる情報はいろいろと柔軟性がある一方、MATLABpcreadなどでは、XYZや反射強度、色情報のみサポートしているかと存じます。点群のセマンティックセグメンテーションのためのデータセットも多く公開されていますが、
その中でも例えば、オープンデータである、paris-lille-3dデータセットなどでは、PLY形式のclassなどの独自に定義された列に
ラベル情報が入っています(クラウドコンペアにて開く際の設定も添付致します)。
上の画像の点群データは以下のページからダウンロードしています。
そこで質問なのですが、MATLABではこのようなバイナリのPLY形式の点群からクラスなどの独自で定義された列の情報を読み取るのは難しいのでしょうか。
例えば、列名を指定したり、または、デフォルトで全ての列情報を読み取り、それを変数として読み込むようなことは可能でしょうか。
もし参考になるページなどございましたら教えていただけますと幸いです。どうぞよろしくお願いいたします。

採用された回答

Shunichi Kusano
Shunichi Kusano 2025 年 7 月 2 日
PLYのフォーマットを見てみましたが、elementやそれらのpropertyにバリエーションがあり、
柔軟に作ろうとするとそれなりに大変そうに思いました。取り急ぎですが、手元にあるものを改変し、パリのバイナリplyフォーマットに対応した関数readPointCloudFromBinaryPLY.mを作成いたしました。
(ヘッダー確認するだけのshowPLYHeaderも副産物として添付します)
[pt,classIDs] = readPointCloudFromBinaryPLY('Lille2.ply');
で、ポイントクラウドオブジェクトとして読込みが可能となるかと思います。pt.Colorに色情報としてクラスIDが格納されていますが、より直接的にクラス情報としてclassIDsも出力する仕様にしています。
他のPropertyが必要になるケースもあるかと思いますが、ひとまずこちらを参考にしていただければと思います。
  1 件のコメント
Kenta
Kenta 2025 年 7 月 2 日
ありがとうございます。うまく読み込め、かつ可視化もできました。その他の公開データの整理などにも役立てられそうです。大変助かりました。ありがとうございました。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLIDAR および点群の処理 についてさらに検索

製品


リリース

R2024b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!