MATLAB Function Reference |

Extract isosurface data from volume data

**Syntax**

fv = isosurface(X,Y,Z,V,isovalue) fv = isosurface(V,isovalue) fv = isosurface(X,Y,Z,V), fv = isosurface(X,Y,Z,V) fvc = isosurface(...,colors) fv = isosurface(...,'noshare') fv = isosurface(...,'verbose') [f,v] = isosurface(...) isosurface(...)

**Description**

`fv = isosurface(X,Y,Z,V,isovalue)`

computes isosurface data from the volume data `V`

at the isosurface value specified in `isovalue`

. The arrays `X`

, `Y`

, and `Z`

define the coordinates for the volume `V`

. The structure `fv`

contains the faces and vertices of the isosurface, which you can pass directly to the `patch`

command.

`fv = isosurface(V,isovalue)`

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)`

.

```
fvc = isosurface(...,colors)
```

interpolates the array `colors`

onto the scalar field and returns the interpolated values in the `facevertexcdata`

field of the `fvc`

structure. The size of the `colors`

array must be the same as `V`

. The colors argument enables you to control the color mapping of the isosurface with data different from that used to calculate the isosurface (e.g., temperature data superimposed on a wind current isosurface.

`fv = isosurface(...,'noshare')`

does not create shared vertices. This is faster, but produces a larger set of vertices.

`fv = isosurface(...,'verbose')`

prints progress messages to the command window as the computation progresses.

`[f,v] = isosurface(...)`

returns the faces and vertices in two arrays instead of a struct.

`isosurface(...)`

with no output arguments creates a patch using the computed faces and vertices.

**Remarks**

You can pass the `fv`

structure created by `isosurface`

directly to the `patch`

command, but you cannot pass the individual faces and vertices arrays (`f`

, `v`

) to `patch`

without specifying property names. For example,

**Examples**

This example uses the flow data set, which represents the speed profile of a submerged jet within an infinite tank (type `help`

`flow`

for more information). The isosurface is drawn at the data value of -3. The statements that follow the `patch`

command prepare the isosurface for lighting by:

- Recalculating the isosurface normals based on the volume data (
`isonormals`

) - Setting the face and edge color (
`set`

,`FaceColor`

,`EdgeColor`

) - Specifying the view (
`daspect`

,`view`

) - Adding lights (
`camlight`

,`lighting`

)

**See Also**

`isonormals`

, `shrinkfaces`

, `smooth3`

, `subvolume`

Connecting Equal Values with Isosurfaces for more examples

Volume Visualization for related functions

isonormals | ispc |