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

4 次查看(过去 30 天)
H.O
H.O 2024-3-4
编辑: H.O 2024-3-7
カラーの点群データ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 个评论
H.O
H.O 2024-3-4
申し訳ありません、イメージを修正しました。

请先登录,再进行评论。

采纳的回答

Atsushi Ueno
Atsushi Ueno 2024-3-4
编辑:Atsushi Ueno 2024-3-5
(追記)イメージの修正に伴い、回答も修正しました。
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 个评论
Atsushi Ueno
Atsushi Ueno 2024-3-6
それはたまたま上手い具合になる条件だっただけだと思います。
LocationとColorを関連付けず別々に操作すると、意図した動作とならないおそれがあります。
H.O
H.O 2024-3-7
编辑:H.O 2024-3-7
ご指摘ありがとうございます.
LocationとColorの関連付けは,インデックスを習得して反映させるよう修正しました.
D =setdiff(A.Location,B.Location,'row');
idx = ismember(A.Location,D,'rows');
Dp=pointCloud(D,Color=A.Color(idx,:));

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 LIDAR および点群の処理 的更多信息

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!