MATLAB Function Reference |
Extract subset of volume data set
Syntax
[Nx,Ny,Nz,Nv] = subvolume(X,Y,Z,V,limits) [Nx,Ny,Nz,Nv] = subvolume(V,limits) Nv = subvolume(...)
Description
[Nx,Ny,Nz,Nv] = subvolume(X,Y,Z,V,limits)
extracts a subset of the volume data set V
using the specified axis-aligned limits
. limits = [xmin,xmax,ymin, ymax,zmin,zmax]
(Any NaN
s in the limits indicate that the volume should not be cropped along that axis).
The arrays X
, Y
, and Z
define the coordinates for the volume V
. The subvolume is returned in NV
and the coordinates of the subvolume are given in NX
, NY
, and NZ
.
[Nx,Ny,Nz,Nv] = subvolume(V,limits)
assumes the arrays X
, Y
, and Z
are defined as [X,Y,Z] = meshgrid(1:N,1:M,1:P)
where [M,N,P] = size(V)
.
Nv = subvolume(...)
returns only the subvolume.
Examples
This example uses a data set that is a collection of MRI slices of a human skull. The data is processed in a variety of ways:
squeeze
) into three dimensions and then a subset of the data is extracted (subvolume
). p1
) whose vertex normals are recalculated to improve the appearance when lighting is applied (patch
, isosurface
, isonormals
).p2
) with interpolated face color draws the end caps (FaceColor
, isocaps
).view
, axis
, daspect
).colormap
).camlight
, lighting
).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,.4]) colormap(gray(100)) camlight right; camlight left; lighting gouraud
See Also
isocaps
, isonormals
, isosurface
, reducepatch
, reducevolume
, smooth3
subsref | sum |