Main Content

subvolume

提取三维体数据集的子集

语法

[Nx,Ny,Nz,Nv] = subvolume(X,Y,Z,V,limits)
[Nx,Ny,Nz,Nv] = subvolume(V,limits)
Nv = subvolume(...)

说明

[Nx,Ny,Nz,Nv] = subvolume(X,Y,Z,V,limits) 使用指定的轴对齐的 limits 提取三维体数据集 V 的子集。limits = [xmin,xmax,ymin, ymax,zmin,zmax](范围内的任何 NaN 都指示不应沿该坐标轴裁切该三维体。)

数组 XYZ 定义三维体 V 的坐标。子体积在 NV 中返回,子三维体的坐标在 NXNYNZ 中指定。

[Nx,Ny,Nz,Nv] = subvolume(V,limits) 假定数组 XYZ 定义为

[X,Y,Z] = meshgrid(1:N,1:M,1:P) 

其中 [M,N,P] = size(V)

Nv = subvolume(...) 仅返回子三维体。

示例

全部折叠

加载 mri 数据集,它是人类头骨的 MRI 切片的集合。然后:

  • 将四维数组压缩成三维并使用 subvolume 提取子集。

  • 使用补片显示头骨轮廓的等值面。

  • 添加另一个采用插补面颜色的补片。

  • 设置对象的视图。

  • 将颜色图更改为灰度颜色图。

  • 在相机的右侧和左侧添加光照以照亮对象。

load mri
D = squeeze(D);
[x,y,z,D] = subvolume(D,[60,80,nan,80,nan,nan]);
p1 = patch(isosurface(x,y,z,D, 5),...
     'FaceColor','red','EdgeColor','none');
isonormals(x,y,z,D,p1);
p2 = patch(isocaps(x,y,z,D, 5),...
     'FaceColor','interp','EdgeColor','none');
view(3); 
axis tight; 
daspect([1 1 0.4])
colormap(gray(100))
camlight right; 
camlight left; 
lighting gouraud

扩展功能

版本历史记录

在 R2006a 之前推出