# lab2uint16

Convert L*a*b color values to `uint16`

## Syntax

``lab16 = lab2uint16(lab)``

## Description

example

````lab16 = lab2uint16(lab)` converts L*a*b* color values to type `uint16`.```

## Examples

collapse all

This example shows how to convert L*a*b* color values from `double` to `uint16`.

Create a `double` vector specifying the color white in L*a*b* colorspace.

`w = [100 0 0];`

Convert the L*a*b* color value to `uint16`.

`lab2uint16(w)`
```ans = 1x3 uint16 row vector 65280 32768 32768 ```

## Input Arguments

collapse all

Color values to convert, specified as a m-by-3 numeric matrix of color values (one color per row), or an m-by-n-by-3 numeric array.

Data Types: `double` | `uint8`

## Output Arguments

collapse all

Converted color values, returned as a numeric array of same size as the input.

Data Types: `uint16`

## Algorithms

The function converts the L*a*b* color values to type `uint16`. The Image Processing Toolbox™ software follows the convention that double-precision L*a*b* arrays contain 1976 CIE L*a*b* values. The L*a*b* arrays that are `uint8` or `uint16` follow the convention in the ICC profile specification (ICC.1:2001-4, `www.color.org`) for representing L*a*b* values as unsigned 8-bit or 16-bit integers. The ICC encoding convention is illustrated by these tables.

Value (L*)

`uint8` Value

`uint16` Value

`0.0`

`0`

`0`

`100.0`

`255`

`65280`

`100.0 + (25500/65280)`

None

`65535`

Value (a* or b*)

`uint8` Value

`uint16` Value

`-128.0`

`0`

`0`

`0.0`

`128`

`32768`

`127.0 `

`255`

`65280`

`127.0 + (255/256)`

None

`65535`