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

Программное обеспечение Image Processing Toolbox™ обычно представляет цвета как красные, зеленые и синие (RGB) числовые значения. Однако существуют и другие модели помимо RGB для численного представления цветов. Различные модели называются цветовыми пространствами, поскольку большинство из них могут быть отображены в 2-D, 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 (<reservedrangesplaceholder4>)                = <reservedrangesplaceholder3> ⋅ <reservedrangesplaceholder2>, 0 ≤ <reservedrangesplaceholder1> <d

    f (<reservedrangesplaceholder2>)    = <reservedrangesplaceholder1> ⋅ <reservedrangesplaceholder0>ɣ + b,      <reservedrangesplaceholder1> ≥ <reservedrangesplaceholder0>  ,

где 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ɣ,           <reservedrangesplaceholder0> ≥ 0

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

с

    ɣ = 1/2.19921875

HSV

Цветовое пространство HSV (Hue, насыщение, значение) лучше соответствует тому, как люди испытывают цвет, чем цветовое пространство 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 (Luminosity, Chroma и Hue), которое является полярным преобразованием цветового пространства CIE L * a * b * - см. Device-Independent Color Spaces.

Используйте 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 Gamut.

ПризнакОписание
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. Для получения дополнительной информации смотрите Device-Independent Color Spaces.

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 функция для извлечения информации о полутоновом цвете из цветного изображения.

Похожие темы