如何在 Matlab 中将 3D 数据矩阵保存为点云?

How to save a 3D data matrix as pointcloud in Matlab?

我有一个 3D 数据矩阵,其中包含有关场景的信息(哪些体素空闲/占用并且属于哪个 class)。

到目前为止,为了绘制数据,我必须使用 imagesc.

绘制二维切片

我想使用 Matlabs pcshow 将数据绘制为点云,它应该只显示占用的体素,其余部分显示为空 space。

如何将 3D 矩阵转换为点云对象?

对于某些 NxMxK 矩阵 A,其中 A == 255 表示自由体素:

% make coordinate grid the size of A
[X,Y,Z] = meshgrid(1:size(A,1),1:size(A,2),1:size(A,3));
% move to xyz format
xyz=[X(:) Y(:) Z(:)];
% show points which are not free and where group values are used as color (scaled by to current colormap)
pcshow(xyz(A~=255,:),A(A~=255))