MATLAB点云处理:点云赋色 | 显示自定义颜色的点云
Posted 借我十斤肉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB点云处理:点云赋色 | 显示自定义颜色的点云相关的知识,希望对你有一定的参考价值。
1 区别
点云赋色改变的是点的Color
属性,是质的改变。
显示自定义颜色的点云没有改变点云的Color
属性,仅仅是表现形式。
2 点云赋色
直接上代码
clc;
clear;
ptCloud = pcread('treeXYZRGB.pcd');
figure;
pcshow(ptCloud); % 显示原始点云
title('原始点云');
hold on;
ptCloud % 打印原始点云ptCloud详情
xyzpoints = ptCloud.Location; % 将点云的位置信息赋给xyzpoints
ptCloudXYZ = pointCloud(xyzpoints);
figure;
pcshow(ptCloudXYZ); %显示只有位置信息的点云,MATLAB会按高程进行渲染
title('只有位置信息的点云');
hold on;
ptCloudXYZ % 打印ptCloudXYZ详情
% 点云赋色
cmatrix = ones(size(ptCloudXYZ.Location)).*[1 0 1];
ptCloudXYZRGB = pointCloud(xyzpoints,'Color',cmatrix);
figure;
pcshow(ptCloudXYZRGB); %显示赋色后的点云
title('赋色后的点云');
hold off;
ptCloudXYZRGB % 打印ptCloudXYZRGB详情
显示结果:
注意: 当点云没有颜色信息时,pcshow()函数会对点云按高程进行渲染显示,但并不会为点云赋上颜色信息,Color为空[]
,仅限于表现形式。可以从下面的输出结果中验证。
打印输出结果:
ptCloud =
pointCloud - 属性:
Location: [5746×3 single]
Color: [5746×3 uint8]
Normal: []
Intensity: [5746×1 single]
Count: 5746
XLimits: [64.7470 67.8900]
YLimits: [-54.1659 -50.9061]
ZLimits: [-20.1166 -13.2595]
ptCloudXYZ =
pointCloud - 属性:
Location: [5746×3 single]
Color: []
Normal: []
Intensity: []
Count: 5746
XLimits: [64.7470 67.8900]
YLimits: [-54.1659 -50.9061]
ZLimits: [-20.1166 -13.2595]
ptCloudXYZRGB =
pointCloud - 属性:
Location: [5746×3 single]
Color: [5746×3 uint8]
Normal: []
Intensity: []
Count: 5746
XLimits: [64.7470 67.8900]
YLimits: [-54.1659 -50.9061]
ZLimits: [-20.1166 -13.2595]
3 显示自定义颜色的点云
这个更简单
clc;
clear;
ptCloud = pcread('treeXYZ.pcd'); % 从输入点坐标创建点云对象
figure;
pcshow(ptCloud); % 显示原始点云
title('原始点云');
hold on;
ptCloud % 打印原始点云详情
figure;
pcshow(ptCloud.Location,[1,0,1]); % 显示自定义颜色的点云
title('显示自定义颜色的点云');
hold off;
ptCloud % 再次打印ptCloud详情
显示结果:
尽管在外观上,与点云赋色的效果一致,但本质上颜色字段依然为空[]
,可以从下面的输出结果中验证.
打印输出结果:
ptCloud =
pointCloud - 属性:
Location: [5746×3 single]
Color: []
Normal: []
Intensity: []
Count: 5746
XLimits: [64.7470 67.8900]
YLimits: [-54.1659 -50.9061]
ZLimits: [-20.1166 -13.2595]
ptCloud =
pointCloud - 属性:
Location: [5746×3 single]
Color: []
Normal: []
Intensity: []
Count: 5746
XLimits: [64.7470 67.8900]
YLimits: [-54.1659 -50.9061]
ZLimits: [-20.1166 -13.2595]
以上是关于MATLAB点云处理:点云赋色 | 显示自定义颜色的点云的主要内容,如果未能解决你的问题,请参考以下文章
PCL进阶:点云渲染渐变赋色(Blue>Green>Yellow>Red)
MATLAB点云处理(二十六):将无序点云转换为有序点云(pcorganize),删除无效点(removeInvalidPoints)
MATLAB点云处理(二十六):将无序点云转换为有序点云(pcorganize),删除无效点(removeInvalidPoints)