为点云着色-Matlab

Color a Point Cloud- Matlab

我有层图像。我想根据我的要求给它上色。 1. (.ply) 来自kinect的图像 2.更改云中所有点的rgb值

例如

.ply 图像,其中云中的所有点都为黄色或蓝色。 我已经能够使用 Matlab 命令 "scatter3" 显示它,但也想通过 Matlab 的 "pcwrite" 函数将彩色点云保存为新的点云。

要正确回答这个问题,我应该知道您使用的是哪个版本的 Matlab。如果你使用的是 Matlab 2015a 你应该有这三个函数

  • pcread 读取 3D 点云(.ply 文件);
  • pcshow 显示 3D 点云;
  • pcwrite 写入 .ply 文件。

假设您的图片名为 "airplane.ply"。 要正确使用它,您首先使用以下方式阅读图像:

ptCloud = pcread('airplane.ply')

然后你会注意到ptCloud有不同的字段。其中之一是颜色,是您必须更改的颜色。为此,您必须为云中的每个点指定一种颜色。所以:

pointscolor=uint8(zeros(ptCloud.Count,3));
pointscolor(:,1)=255;
pointscolor(:,2)=255;
pointscolor(:,3)=51;

因为 [255 255 51] 是黄色。 然后将这个矩阵赋值给ptCloud.Color.

ptCloud.Color=pointscolor;

查看结果:

pcshow(ptCloud)

并保存文件:

pcwrite(ptCloud,'ptCloud.ply')

其中 'ptCloud.ply' 是您要分配给文件的名称。