rgb2lab

Преобразуйте RGB в CIE 1976 L*a*b*

Описание

пример

lab = rgb2lab(RGB) преобразует sRGB значения в CIE 1976 L*a*b* значения.

пример

lab = rgb2lab(RGB,Name,Value) задает дополнительные опции преобразования, такие как цветовое пространство изображения RGB, с помощью одного или нескольких аргументов пары "имя-значение".

Примеры

свернуть все

Используйте rgb2lab преобразовывать RGB белое значение в L*a*b.

rgb2lab([1 1 1])
ans = 1×3

  100.0000         0    0.0000

Преобразуйте значение цвета Adobe RGB (1998) в L*a*b* использование ColorSpace параметр.

rgb2lab([.2 .3 .4],'ColorSpace','adobe-rgb-1998')
ans = 1×3

   30.1783   -5.6902  -20.8223

Используйте rgb2lab чтобы преобразовать RGB окрашивают к L*a*b с помощью ссылочного белого D50.

rgb2lab([.2 .3 .4],'WhitePoint','d50')
ans = 1×3

   31.3294   -4.0732  -18.1750

Считайте изображение RGB в рабочую область.

rgb = imread('peppers.png');

Преобразуйте изображение RGB в L*a*b* цветовое пространство.

lab = rgb2lab(rgb);

Отобразите L* компонент L*a*b* изображение.

imshow(lab(:,:,1),[0 100])

Входные параметры

свернуть все

Значения цвета RGB, чтобы преобразовать в виде числового массива в одном из этих форматов.

  • c-by-3 палитра. Каждая строка задает одно значение цвета RGB.

  • m-by-n-by-3 изображение

  • m-by-n-by-3-by-p стек изображений

Типы данных: single | double | uint8 | uint16

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: rgb2lab([0.25 0.40 0.10],'WhitePoint','d50')

Цветовое пространство значений входа RGB в виде разделенной запятой пары, состоящей из 'ColorSpace' и один из 'srgb', 'adobe-rgb-1998', или 'linear-rgb'. Если вы задаете 'linear-rgb', затем rgb2lab принимает, что значения входа RGB линеаризуются sRGB значения.

Типы данных: char

Ссылочная белая точка в виде разделенной запятой пары, состоящей из 'WhitePoint' и 1 3 вектор или один из источников света стандарта CIE перечислены в следующей таблице.

ЗначениеБелая точка
'a'

Источник света стандарта CIE A, [1.0985, 1.0000, 0.3558]. Симулирует типичный, внутренний, подсветка нити вольфрама с коррелированой цветовой температурой 2856 K. 

'c'Источник света стандарта CIE C, [0.9807, 1.0000, 1.1822]. Симулирует средний или северный дневной свет неба с коррелированой цветовой температурой 6774 K. Удержанный от использования CIE.
'e'Теплоотвод равной энергии, [1.000, 1.000, 1.000]. Полезный как теоретическая ссылка.
'd50'Источник света стандарта CIE D50, [0.9642, 1.0000, 0.8251]. Симулирует теплый дневной свет в восходе солнца или закате с коррелированой цветовой температурой 5003 K. Также известный как horizon light.

'd55'

Источник света стандарта CIE D55, [0.9568, 1.0000, 0.9214]. Симулирует рано утром или дневной свет во второй половине дня с коррелированой цветовой температурой 5500 K.  

'd65'Источник света стандарта CIE D65, [0.9504, 1.0000, 1.0888]. Симулирует дневной дневной свет с коррелированой цветовой температурой 6504 K. 
'icc'Источник света Пробела связи профиля (PCS) используется в профилях ICC. Приближение [0.9642, 1.000, 0.8249] использование фиксированной точки, подписанных, 32-битных чисел с 16 дробными битами. Фактическое значение: [31595,32768, 27030]/32768.

Типы данных: single | double | char

Выходные аргументы

свернуть все

Преобразованный L*a*b* значения цвета, возвращенные как числовой массив одного размера с входом. Выходным типом является double если входным типом не является single, в этом случае выходным типом является также single.

АтрибутОписание
L*Яркость или яркость изображения. Значения находятся в области значений [0, 100], где 0 задает черный, и 100 задает белый. Когда L* увеличивается, цвета становятся более яркими.
aСумма красных или зеленых тонов в изображении. Большое положительное* значение соответствует красный/пурпурный. Большое отрицание* значение соответствует зеленый. Несмотря на то, что нет никакой одной области значений для*, значения обычно падают в области значений [-100, 100] или [-128, 127).
bСумма желтых или синих тонов в изображении. Большой положительный b* значение соответствует желтый. Большой отрицательный b* значение соответствует синий. Несмотря на то, что нет никакой одной области значений для b*, значения обычно падают в области значений [-100, 100] или [-128, 127).

Типы данных: double | single

Советы

  • Если вы задаете цветовое пространство входа RGB как 'linear-rgb', затем rgb2lab принимает, что входные значения линеаризуются sRGB значения. Если вместо этого вы хотите, чтобы входным цветовым пространством был линеаризовавший Adobe RGB (1998), то можно использовать lin2rgb функция.

    Например, чтобы преобразовать линеаризовавший Adobe RGB (1998) отображают RGBlinadobe к CIE 1976 L*a*b* цветовое пространство, выполните преобразование на двух шагах:

    RGBadobe = lin2rgb(RGBlinadobe,'ColorSpace','adobe-rgb-1998');
    LAB = rgb2lab(RGBadobe,'ColorSpace','adobe-rgb-1998');
    

Расширенные возможности

Введенный в R2014b