MATLAB Function Reference
reducevolume

Reduce the number of elements in a volume data set

Syntax

• ```[nx,ny,nz,nv] = reducevolume(X,Y,Z,V,[Rx,Ry,Rz])
[nx,ny,nz,nv] = reducevolume(V,[Rx,Ry,Rz])
nv = reducevolume(...)
```

Description

`[nx,ny,nz,nv] = reducevolume(X,Y,Z,V,[Rx,Ry,Rz])` reduces the number of elements in the volume by retaining every `Rx`th element in the x direction, every `Ry`th element in the y direction, and every `Rz`th element in the z direction. If a scalar `R` is used to indicate the amount or reduction instead of a 3-element vector, MATLAB assumes the reduction to be `[R R R]`.

The arrays `X`, `Y`, and `Z` define the coordinates for the volume `V`. The reduced volume is returned in `nv` and the coordinates of the reduced volume are returned in `nx`, `ny`, and `nz`.

`[nx,ny,nz,nv] = reducevolume(V,[Rx,Ry,Rz])` 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 = reducevolume(...)` returns only the reduced volume.

Examples

This example uses a data set that is a collection of MRI slices of a human skull. This data is processed in a variety of ways:

• The 4-D array is squeezed (`squeeze`) into three dimensions and then reduced (`reducevolume`) so that what remains is every 4th element in the x and y directions and every element in the z direction.
• The reduced data is smoothed (`smooth3`).
• The outline of the skull is an isosurface generated as a patch (`p1`) whose vertex normals are recalculated to improve the appearance when lighting is applied (`patch`, `isosurface`, `isonormals`).
• A second patch (`p2`) with an interpolated face color draws the end caps (`FaceColor`, `isocaps`).
• The view of the object is set (`view`, `axis`, `daspect`).
• A 100-element grayscale colormap provides coloring for the end caps (`colormap`).
• Adding a light to the right of the camera illuminates the object (`camlight`, `lighting`).
• ```load mri
D = squeeze(D);
[x,y,z,D] = reducevolume(D,[4,4,1]);
D = smooth3(D);
p1 = patch(isosurface(x,y,z,D, 5,'verbose'),...
'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; lighting gouraud

```

See Also

`isosurface`, `isocaps`, `isonormals`, `smooth3`, `subvolume`, `reducepatch`

Volume Visualization for related functions

 reducepatch refresh