exponenta event banner

Общие сведения о цветовых пространствах и преобразовании цветовых пространств

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

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

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

RGB

Цветовое пространство RGB представляет изображения в виде числового массива m-by-n-by-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 ⋅   + 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)

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

    v = ,  u  ≥  0     

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

с

    ɣ = 1/2.19921875

HSV

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

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

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

Иллюстрация цветового пространства HSV

Примечание

MATLAB ® и программное обеспечение панели инструментов обработки изображений не поддерживают цветовое пространство HSI (цветовой тон, насыщенность, интенсивность). Однако если вы хотите работать с цветовыми данными с точки зрения оттенка, насыщенности и интенсивности, цветовое пространство HSV очень похоже. Другой вариант - использовать цветовое пространство LCH (Luminosity, Chroma и Hue), которое является полярным преобразованием цветового пространства 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 * соответствует красному/пурпурному. Большое отрицательное значение 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 не использует полный диапазон типа данных изображения, так что видеопоток может включать в себя дополнительную (неимиджевую) информацию.

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

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

  • Для uint16Y находится в диапазоне [4112, 60395], а Cb и Cr находятся в диапазоне [4112, 61680].

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

YIQ

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

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

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

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

Связанные темы