激光雷达角度
%读取一份点云:
ptCloud = pcread('000020.ply');
%设置3-D分辨率为(0.1 x 0.1 x 0.1):
figure(1);
pcshow(ptCloud,"MarkerSize",30,"BackgroundColor",'w');
%调整点的显示大小及背景颜色
title('原始点云');
percentage = 0.4;
ptCloudA = pcdownsample(ptCloud,'random',percentage);
%可视化下采样数据:
figure('Color','r');
pcshow(ptCloudA,"MarkerSize",30,"BackgroundColor",'w');
%调整点的显示大小及背景颜色
title('随机下采样点云');
%%% 激光雷达射线角度去除地面点云
% 读取点云数据
ptCloud2 =ptCloudA;
% 参数设置
maxGroundAngle = 1; % 地面点的最大角度阈值
% 计算点云中每个点的射线角度
angles = atan2(ptCloud2.Location(:,2), ptCloud2.Location(:,1));
% 过滤掉角度大于阈值的点
groundIndices = find(abs(rad2deg(angles)) >= maxGroundAngle);
% 过滤地面点云
groundPtCloud = select(ptCloud2, groundIndices);
pcshow(groundPtCloud,"MarkerSize",30,"BackgroundColor",'w');
%调整点的显示大小及背景颜色
title('基于激光雷达射线角度去除地面后的点云');
% 保存地面点云
%pcwrite(groundPtCloud, 'output_ground_point_cloud.pcd');
%%%