matlab中的三维体素显示
我有一个网格,它是3D的,它存储一个数字 以下是我的网格示例,如果它是2*2*2:matlab中的三维体素显示,matlab,voxel,Matlab,Voxel,我有一个网格,它是3D的,它存储一个数字 以下是我的网格示例,如果它是2*2*2: (:, :, 1) -> [0, 0; 0, 0] (:, :, 2) -> [0, 0; 0, 0] 数字0通常是一个我想用颜色或nan表示的数字,如果没有体素存在的话。我想做的是用matlab显示体素网格,如下图所示: 但VOCEL应与单元格中的数字一起着色 如果有一个库或者自己写的话,有人知道怎么做吗?所以我发现你可以这样做: for
(:, :, 1) -> [0, 0;
0, 0]
(:, :, 2) -> [0, 0;
0, 0]
数字0通常是一个我想用颜色或nan表示的数字,如果没有体素存在的话。我想做的是用matlab显示体素网格,如下图所示:
但VOCEL应与单元格中的数字一起着色
如果有一个库或者自己写的话,有人知道怎么做吗?所以我发现你可以这样做:
for x = 1:GridSize(1)
for y = 1:GridSize(2)
for z = 1:GridSize(3)
if (~isnan(VoxelGrid(x, y, z)))
cubeLength = VoxelGrid.resolution;
plotcube( [cubeLength cubeLength cubeLength], ...
[x, y, z], ...
0.9, ...
[colour, colour, colour])
end
end
end
end
这将打印出灰度体素表示,如下所示:
for x = 1:GridSize(1)
for y = 1:GridSize(2)
for z = 1:GridSize(3)
if (~isnan(VoxelGrid(x, y, z)))
cubeLength = VoxelGrid.resolution;
plotcube( [cubeLength cubeLength cubeLength], ...
[x, y, z], ...
0.9, ...
[colour, colour, colour])
end
end
end
end
现在我只需要一些帮助,让颜色工作。下面给出了用不同颜色绘制立方体的完整源代码。请记住,为了获得颜色信息,我们必须有介于之间的浮点值。因此,将输入体积规格化为该范围内的偏移强度值,然后使用plotcube脚本显示各个立方体。 用于获取颜色的脚本为@。绘制单个立方体是@
现在应用另一个问题的解决方案来获取颜色。我假设
plotcube
是这个函数:至少签名匹配。@Daniel Yep,我想这就是我使用的。