为点云着色-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' 是您要分配给文件的名称。
我有层图像。我想根据我的要求给它上色。 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' 是您要分配给文件的名称。