为点云着色 - Matlab

BAS*_*SAN 1 matlab ply point-clouds matlab-cvst

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

例如

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

小智 5

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

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

假设您的图像名为“airplane.ply”。要正确使用它,您首先使用以下命令读取图像:

ptCloud = pcread('airplane.ply')
Run Code Online (Sandbox Code Playgroud)

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

pointscolor=uint8(zeros(ptCloud.Count,3));
pointscolor(:,1)=255;
pointscolor(:,2)=255;
pointscolor(:,3)=51;
Run Code Online (Sandbox Code Playgroud)

因为 [255 255 51] 是黄色。然后将此矩阵分配给 ptCloud.Color。

ptCloud.Color=pointscolor;
Run Code Online (Sandbox Code Playgroud)

查看结果:

pcshow(ptCloud)
Run Code Online (Sandbox Code Playgroud)

并保存文件:

pcwrite(ptCloud,'ptCloud.ply')
Run Code Online (Sandbox Code Playgroud)

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