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

조회 수: 7 (최근 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!