Matlab 3d体积可视化和3d覆盖

sci*_*gor 5 3d matlab plot visualization volume-rendering

问题几乎就是标题.

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

我想在MATLAB中可视化结构,然后在其上运行一个算法并在其上放置一个叠加,让我们说红色.

所以更准确一点:

  1. 如何可视化3d音量.0的透明,1的半透明?
  2. 在三维可视化中绘制一条线作为叠加层?

我已经阅读了MathWorks教程,但他们没有帮助.我尝试使用该set命令,但它没有完全说出每个属性我尝试"无效的根属性".

Amr*_*mro 6

我不确定我是否理解问题的第二部分,但是这里是你如何使用等值面来可视化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
Run Code Online (Sandbox Code Playgroud)

flow_volume

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


Ofe*_*lon 2

有一个名为vol3d 的优秀实用程序,由 mathworks 员工 Joe Conti 开发。我认为它完全满足了您的可视化需求 - 尝试一下。

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