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

Figure contains an axes. The axes contains an object of type image.

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

свернуть все

Цветовые значения 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 К. 

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

'd55'

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

'd65'Стандартные осветительные D65 CIE, [0.9504, 1.0000, 1.0888]. Моделирует полдень дневного света с коррелированной цветовой температурой 6504 К. 
'icc'Подсветчик Profile Connection Space (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 * соответствует красному/пурпурному. Большое отрицательное значение 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