## WINLEV Image Window-Level Function

Section: Handle-Based Graphics

### Usage

Adjusts the data range used to map the current image to the current colormap. The general syntax for its use is
```  winlev(window,level)
```

where `window` is the new window, and `level` is the new level, or

```  winlev
```

in which case it returns a vector containing the current window and level for the active image.

### Function Internals

FreeMat deals with scalar images on the range of `[0,1]`, and must therefor map an arbitrary image `x` to this range before it can be displayed. By default, the `image` command chooses

and

This ensures that the entire range of image values in `x` are mapped to the screen. With the `winlev` function, you can change the range of values mapped. In general, before display, a pixel `x` is mapped to `[0,1]` via:

### Examples

The window level function is fairly easy to demonstrate. Consider the following image, which is a Gaussian pulse image that is very narrow:
```--> t = linspace(-1,1,256);
--> xmat = ones(256,1)*t; ymat = xmat';
--> A = exp(-(xmat.^2 + ymat.^2)*100);
--> image(A);
```

The data range of `A` is `[0,1]`, as we can verify numerically:

```--> min(A(:))

ans =
1.3839e-87

--> max(A(:))

ans =
0.9969
```

To see the tail behavior, we use the `winlev` command to force FreeMat to map a smaller range of `A` to the colormap.

```--> image(A);
--> winlev(1e-4,0.5e-4)
```

The result is a look at more of the tail behavior of `A`. We can also use the winlev function to find out what the window and level are once set, as in the following example.

```--> image(A);
--> winlev(1e-4,0.5e-4)
--> winlev
Warning: Newly defined variable clim shadows a function of the same name.  Use clear clim to recover access to the function

ans =
1.0000e-04
```