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

时间:2010-05-31 08:17:58

标签: matlab plot 3d visualization volume-rendering

问题几乎就是标题。

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

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

更确切地说:

  1. 如何可视化3d音量。 0是透明的,1是半透明的吗?
  2. 在三维可视化中绘制一条线作为叠加层?
  3. 我已经阅读过MathWorks教程,但他们没有帮助。 我尝试使用set命令,但它没有完全说出每个属性我尝试“无效的根属性”。

2 个答案:

答案 0 :(得分:6)

我不确定我是否理解问题的第二部分,但是这里是使用isosurfaces(我正在使用fluid-flow示例数据)可视化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博客上发布的这篇优秀video tutorial series

答案 1 :(得分:1)

由mathworks员工Joe Conti提供了一个名为vol3d的优秀实用工具。我认为它完全解决了您的可视化需求 - 尝试一下。

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