Documentation

### This is machine translation

Mouseover text to see original. Click the button below to return to the English version of the page.

# lab2double

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

## Syntax

``labD = lab2double(lab)``

## Description

example

````labD = lab2double(lab)` converts L*a*b* color values to type `double`.```

## Examples

collapse all

This example shows how to convert `uint8` L*a*b* values to `double`.

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

`w = uint8([255 128 128]);`

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

`lab2double(w)`
```ans = 1×3 100 0 0 ```

## Input Arguments

collapse all

Color values to convert, specified as a m-by-3 matrix of color values (one color per row), or an m-by-n-by-3 image array. The input `lab` matrix must be real and nonsparse.

Data Types: `uint8` | `uint16`

## Output Arguments

collapse all

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

Data Types: `double`

## Algorithms

The function converts the L*a*b* color values to type `double`. 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`