pointcloudから任意の点を削除する

4 visualizzazioni (ultimi 30 giorni)
H.O
H.O il 4 Mar 2024
Modificato: H.O il 7 Mar 2024
カラーの点群データAがあるとします。
Aから特定の領域を切り出して作成した点群をBとします。
残った領域(A−B)をカラー点群として保存したいのですが、どのようにすると良いでしょうか? 
イメージは下記です。(x y z RGBで並んでいるとします)
A=pcread('test.ply');
A.Location= 1 2 3; 1 5 6; 1 8 9;
A.Color=20;30;40;
B=pcread('test2.ply');
B.location=1 2 3;
B.Color=20;
ほしい結果↓
Location=1 5 6; 1 8 9; Color=30;40;
をもつ点群データ
  1 Commento
H.O
H.O il 4 Mar 2024
申し訳ありません、イメージを修正しました。

Accedi per commentare.

Risposta accettata

Atsushi Ueno
Atsushi Ueno il 4 Mar 2024
Modificato: Atsushi Ueno il 5 Mar 2024
(追記)イメージの修正に伴い、回答も修正しました。
A.location = [1 2 3; 1 5 6; 1 8 9];
A.Color = [20;30;40];
B.location = [1 2 3];
B.Color = 20;
%ほしい結果↓ location=1 5 6; 1 8 9;  Color=30;40;
setdiff(struct2table(A),struct2table(B),'rows')
ans = 2×2 table
location Color ___________ _____ 1 5 6 30 1 8 9 40
  3 Commenti
Atsushi Ueno
Atsushi Ueno il 6 Mar 2024
それはたまたま上手い具合になる条件だっただけだと思います。
LocationとColorを関連付けず別々に操作すると、意図した動作とならないおそれがあります。
H.O
H.O il 7 Mar 2024
Modificato: H.O il 7 Mar 2024
ご指摘ありがとうございます.
LocationとColorの関連付けは,インデックスを習得して反映させるよう修正しました.
D =setdiff(A.Location,B.Location,'row');
idx = ismember(A.Location,D,'rows');
Dp=pointCloud(D,Color=A.Color(idx,:));

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su ビッグ データの処理 in Help Center e File Exchange

Prodotti


Release

R2021b

Community Treasure Hunt

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

Start Hunting!