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

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

 채택된 답변

Shunichi Kusano
Shunichi Kusano 2025년 7월 2일

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개)

카테고리

도움말 센터File Exchange에서 LIDAR および点群の処理에 대해 자세히 알아보기

제품

릴리스

R2024b

질문:

2025년 7월 2일

댓글:

2025년 7월 2일

Community Treasure Hunt

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

Start Hunting!