Понимание цветовых пространств и преобразования цветового пространства

Программное обеспечение Image Processing Toolbox™ обычно представляет цвета как красные, зеленые, и синие (RGB) числовые значения. Однако существуют другие модели помимо RGB для представления цветов численно. Различные модели упоминаются как цветовые пространства, потому что большинство из них может быть сопоставлено в 2D, 3-D, или 4-D систему координат.

Различные цветовые пространства существуют, потому что они представляют информацию о цвете способами, которые делают определенные вычисления более удобными или потому что они обеспечивают способ идентифицировать цвета, который более интуитивен. Например, цветовое пространство RGB задает цвет как проценты красных, зеленых, и синих оттенков, смешанных вместе. Другие цветовые модели описывают цвета своим оттенком (оттенок цвета), насыщение (количество серого или чистого цвета), и яркость (интенсивность или полная яркость).

Тулбокс позволяет преобразовать цветные данные от одного цветового пространства до другого посредством математических преобразований.

Rgb

Цветовое пространство RGB представляет изображения как m n 3 числовыми массивами, элементы которых задают значения интенсивности красных, зеленых, и синих цветовых каналов. Область значений числовых значений зависит от типа данных изображения.

  • Для single или double массивы, значения RGB располагаются от [0, 1].

  • Для uint8 массивы, значения RGB располагаются от [0, 255].

  • Для uint16 массивы, значения RGB располагаются от [0, 65535].

Тулбокс поддерживает изменения цветового пространства RGB.

Цветовое пространство RGBОписание
Линейный RGBЛинейные значения RGB являются необработанными данными, полученными из датчика камеры. Значение R, G, и B прямо пропорциональны на сумму света, который освещает датчик. Предварительно обрабатывая необработанных данных изображения, таких как баланс белого, цветовой баланс и компенсация хроматической аберрации, выполняются на линейных значениях RGB.
sRGB

значения sRGB применяют нелинейную функцию, вызванную гамма-коррекция, к линейным значениям RGB. Изображения часто отображаются в sRGB цветовом пространстве, потому что они кажутся более яркими, и цвета легче отличить. Параметрическая кривая, используемая, чтобы преобразовать линейные значения RGB к sRGB цветовому пространству:

    f (u) =-f (-u),             u < 0

    f (u) = c ⋅ u,             0 ≤ u < d

    f (u) = a ⋅ uɣ + b,      u ≥ d,

где u представляет один из R, G, или значения цвета B этими параметрами:

    a = 1.055

    b = –0.055

    c = 12.92

    d = 0.0031308

ɣ = 1/2.4      

Adobe RGB (1998)

Значения RGB Adobe RGB (1998) применяют гамма-коррекцию к линейным значениям RGB с помощью простой функции степени:

    v = uɣ,           u ≥ 0

    v = - (-u)ɣ,      u <0,

с

ɣ = 1/2.19921875    

Hsv

HSV (Оттенок, Насыщение, Значение) цветовое пространство соответствует лучше тому, как люди испытывают цвет, чем цветовое пространство RGB. Например, это цветовое пространство часто используется людьми, которые выбирают цвета, такие как краска или цвет красок, от цветового диска или палитры.

АтрибутОписание
HОттенок, который соответствует позиции цвета по цветовому диску. H находится в области значений [0, 1]. Когда H увеличивается, переход цветов от красного до оранжевого, желтого, зеленого, голубого цвета, синего, пурпурного цвета, и наконец назад к красному. И 0 и 1 указывают красный.
SНасыщение, которое является суммой оттенка или отклонения от нейтрального. S находится в области значений [0, 1]. Когда S увеличивается, цвета варьируются от ненасыщенного (оттенки серого) к полностью влажному (никакой белый компонент).
V

Значение, которое является максимальным значением среди красных, зеленых, и синих компонентов определенного цвета. V находится в области значений [0, 1]. Когда V увеличивается, соответствующие цвета становятся все больше более яркими.

Рисунок HSV-цветового пространства

Примечание

MATLAB® и программное обеспечение Image Processing Toolbox не поддерживает цветовое пространство HSI (Оттенок, Насыщение, Интенсивность). Однако, если вы хотите работать с цветными данными в терминах оттенка, насыщения и интенсивности, HSV-цветовое пространство очень похоже. Другая опция должна использовать цветовое пространство LCH (Яркость, Цветность и Оттенок), который является полярным преобразованием CIE L*a*b*, цветовое пространство — видит Независящие от устройств Цветовые пространства.

Используйте rgb2hsv и hsv2rgb функции, чтобы преобразовать между RGB и HSV-цветовыми пространствами.

CIE 1976 XYZ и CIE 1976 L*a*b*

CIE 1976 XYZ и CIE 1976 L*a*b* являются независящими от устройств цветовыми пространствами, разработанными Международной комиссией по Освещению, известному CIE акронима. Эти цветовые пространства модель окрашивают согласно типичной чувствительности трех типов конических ячеек в человеческом глазу.

Цветовое пространство XYZ является исходной моделью, разработанной CIE. Канал Y представляет яркость цвета. Канал Z приблизительно имеет отношение на сумму синего в изображении, но значение Z в цветовом пространстве XYZ не идентично значению B в цветовом пространстве RGB. Канал X не имеет ясной цветной аналогии. Однако, если вы рассматриваете цветовое пространство XYZ как 3-D систему координат, затем значения X простираются вдоль оси, которая является ортогональной к Y (яркость) ось и ось Z.

L*a*b* цветовое пространство обеспечивает более перцепционно пробел единого цвета, чем модель XYZ. Раскрашивает L*a*b*, цветовое пространство может существовать вне палитры RGB (допустимый набор цветов RGB). Например, когда вы преобразуете L*a*b* значение [100, 100, 100] к цветовому пространству RGB, возвращенное значение [1.7682, 0.5746, 0.1940], который не является допустимым цветом RGB. Для получения дополнительной информации смотрите, Определяют, Находится ли L*a*b* Значение в Палитре RGB.

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

Независящие от устройств цветовые пространства включают эффект источника освещения, названного ссылочной белой точкой. Источник передает оттенок цвета необработанным данным изображения согласно цветовой температуре источника света. Например, солнечный свет во время восхода солнца или заката передает желтый оттенок изображению, тогда как солнечный свет вокруг полдня передает синий оттенок.

Используйте rgb2xyz и xyz2rgb функции, чтобы преобразовать между RGB и цветовыми пространствами XYZ. Используйте rgb2lab и lab2rgb функции, чтобы преобразовать между RGB и L*a*b* цветовые пространства.

Тулбокс поддерживает несколько связанных спецификаций цветового пространства, которые лучше подходят для некоторых целей, чем XYZ. Для получения дополнительной информации смотрите Независящие от устройств Цветовые пространства.

YCbCr

Цветовое пространство YCbCr широко используется для цифрового видео. В этом формате информация о яркости хранится как один компонент (Y), и информация о цветности хранится как два компонента цветового различия (Cb и Cr). Cb и Cr представляют различие между ссылочным значением и синим или красным компонентом, соответственно. (YUV, другое цветовое пространство, широко использованное для цифрового видео, очень похож на YCbCr, но не идентичен.)

АтрибутОписание
YЯркость или яркость изображения. Увеличение цветов яркости как Y увеличивается.
CbЗначение цветности, которое указывает на различие между синим компонентом и ссылочным значением.
CrЗначение цветности, которое указывает на различие между красным компонентом и ссылочным значением.

Область значений числовых значений зависит от типа данных изображения. YCbCr не использует полный спектр типа данных image так, чтобы видеопоток мог включать дополнительный (неизображение) информация.

  • Для single или double массивы, Y находится в области значений [16/255, 235/255], и Cb и Cr находятся в области значений [16/255, 240/255].

  • Для uint8 массивы, Y находится в области значений [16, 235], и Cb и Cr находятся в области значений [16, 240].

  • Для uint16, Y находится в области значений [4112, 60395], и Cb и Cr находятся в области значений [4112, 61680].

Используйте rgb2ycbcr и ycbcr2rgb функции, чтобы преобразовать между RGB и цветовыми пространствами YCbCr.

YIQ

Национальный телевизионный системный комитет (NTSC) задает цветовое пространство, известное как YIQ. Это цветовое пространство используется в телевизорах в Соединенных Штатах. Это цветовое пространство разделяет полутоновую информацию от цветных данных, таким образом, тот же сигнал может использоваться и для цвета и для черных и белых телевизоров.

АтрибутОписание
YLuma или яркость изображения. Значения находятся в области значений [0, 1], где 0 задает черный, и 1 задает белый. Увеличение цветов яркости как Y увеличивается.
IСинфазный, который является приблизительно суммой синих или оранжевых тонов в изображении. I в области значений [-0.5959, 0.5959], где отрицательные числа указывают на синие тоны и положительные числа, указывает на оранжевые тоны. Когда величина I увеличивается, насыщение цветных увеличений.
QКвадратура, которая является приблизительно суммой зеленых или фиолетовых тонов в изображении. Q в области значений [-0.5229, 0.5229], где отрицательные числа указывают на зеленые тоны и положительные числа, указывает на фиолетовые тоны. Когда величина Q увеличивается, насыщение цветных увеличений.

Используйте rgb2ntsc и ntsc2rgb функции, чтобы преобразовать между RGB и цветовыми пространствами YIQ.

Поскольку яркость является одним из компонентов формата NTSC, RGB к преобразованию NTSC также полезен для изоляции информации об уровне серого в изображении. На самом деле, функции тулбокса rgb2gray и ind2gray используйте rgb2ntsc функционируйте, чтобы извлечь полутоновую информацию из цветного изображения.

Похожие темы