6

这个问题几乎就是标题。

我有一个作为原始数据加载的 3d 卷[256, 256, 256] = size(A)。它只包含零和一的值,其中 1 代表结构,0 代表“空气”。

我想在 MATLAB 中可视化该结构,然后在其上运行一个算法并在其上放置一个叠加层,比如说红色。

所以更准确地说:

  1. 我如何可视化 3d 体积。0是透明的,1是半透明的?
  2. 在 3d 可视化中绘制一条线作为叠加层?

我已经阅读了 MathWorks 教程,但它们没有帮助。我尝试使用该set命令,但是对于我尝试的每个属性,它完全失败了“无效的根属性”。

4

2 回答 2

7

我不确定我是否理解问题的第二部分,但这是使用等值面可视化 3D 体积的方式(我使用的是流体流动示例数据)

%# get a sample data with 0 for empty, 1 for solid
[~,~,~,v] = flow;
v = double( v<-3 );

%# visualize the volume
p = patch( isosurface(v,0) );                 %# create isosurface patch
isonormals(v, p)                              %# compute and set normals
set(p, 'FaceColor','r', 'EdgeColor','none')   %# set surface props
daspect([1 1 1])                              %# axes aspect ratio
view(3), axis vis3d tight, box on, grid on    %# set axes props
camproj perspective                           %# use perspective projection
camlight, lighting phong, alpha(.5)           %# enable light, set transparency

flow_volume

要了解有关 MATLAB 中的体积可视化的更多信息,请参阅Doug 博客上发布的这个出色的视频教程系列

于 2010-05-31T09:53:11.523 回答
1

mathworks 员工 Joe Conti有一个名为vol3d的出色实用程序。我认为它完全满足了您的可视化需求 - 试一试。

更新 (11/2012):链接到上面的文件不再存在。不过这里有一个新版本。

于 2010-06-13T11:15:32.413 回答