功能描述
使用matlab读取三维点云,并获取其中点的空间坐标,并截取某个平面
clear;clc;
format long;
j = 0;k = 0;n = 0;
sign = 0;temp = 0;
T = zeros(1,1);
A = pcread('teapot.ply');
figure(1);
pcshow(A);
pause(1);
B = A.Location;
m = length(B);
for i = 1:m
s = 0;t = i;
for j = 1:m
if B(i,3) == B(j,3)
s = s + 1;
end
end
if s >= sign
k = k + 1;
T(k,1) = t;
sign = s;
temp = t;
end
end
c = randperm(k,1);
z = T(c,1);
flag = B(z,3);
C=zeros(sign,2);
for i = 1:m
if B(i,3) == flag
n = n + 1;
C(n,1) = B(i,1);
C(n,2) = B(i,2);
end
end
avg = mean(C);
figure(2);
scatter(C(:,1),C(:,2),'c.');
pause(1);
fprintf('在第%d行,第3列取定Z值\n\n',z);
fprintf('与之在同一平面的有%d个点\n\n',sign);
fprintf('在该行所取的Z值为:\n');
disp(flag);
fprintf('平面的平均坐标值为:\n')
disp(avg);