Алгоритмические основы современной компьютерной графики

Цвет в компьютерной графике

Показывать лекцию целиком

О природе света и цвета

Свет как физическое явление представляет собой поток электромагнитных волн различной длины и амплитуды. Глаз человека, будучи сложной оптической системой, воспринимает эти волны в диапазоне длин приблизительно от 350 до 780 нм. Свет воспринимается либо непосредственно от источника, например, от осветительных приборов, либо как отраженный от поверхностей объектов или преломленный при прохождении сквозь прозрачные и полупрозрачные объекты. Цвет - это характеристика восприятия глазом электромагнитных волн разной длины, поскольку именно длина волны определяет для глаза видимый цвет. Амплитуда, определяющая энергию волны (пропорциональную квадрату амплитуды), отвечает за яркость цвета. Таким образом, само понятие цвета является особенностью человеческого "видения" окружающей среды.

(рис 2.1) Глаз человека

На рис. 2.1 схематически изображен глаз человека. Фоторецепторы, расположенные на поверхности сетчатки, играют роль приемников света. Хрусталик - это своеобразная линза, формирующая изображение, а радужная оболочка исполняет роль диафрагмы, регулируя количество света, пропускаемого внутрь глаза. Чувствительные клетки глаза неодинаково реагируют на волны различной длины. Интенсивность света есть мера энергии света, воздействующего на глаз, а яркость - это мера восприятия глазом этого воздействия. Интегральная кривая спектральной чувствительности глаза приведена на рис. 2.2; это стандартная кривая Международной комиссии по освещению (МКО, или CIE - Comission International de l'Eclairage).

Фоторецепторы подразделяются на два вида: палочки и колбочки. Палочки являются высокочувствительными элементами и работают в условиях слабого освещения. Они нечувствительны к длине волны и поэтому не "различают" цвета. Колбочки же, наоборот, обладают узкой спектральной кривой и "различают" цвета. Палочек существует только один тип, а колбочки подразделяются на три вида, каждый из которых чувствителен к определенному диапазону длин волн (длинные, средние или короткие.) Чувствительность их также различна.

На рис. 2.3 представлены кривые чувствительности колбочек для всех трех видов. Видно, что наибольшей чувствительностью обладают колбочки, воспринимающие цвета зеленого спектра, немного слабее - "красные" колбочки и существенно слабее - "синие".

(рис 2.3) Интегральная кривая спектральной чувствительности глаза(рис 2.2) Кривые чувствительности различных рецепторов

Таким образом, если функция $$C(\lambda)$$ характеризует спектральное разложение светового излучения от некоторого источника (рис. 2.4), т. е. распределение интенсивности по длинам волн, то три типа колбочек будут посылать в мозг сигналы $$R, G, B$$ (красный, зеленый, синий), мощность которых определяется интегральными соотношениями$$\begin{gathered} R=\int C(\lambda)S_R(\lambda)d\lambda, \\ G=\int C(\lambda)S_G(\lambda)d\lambda, \\ B=\int C(\lambda)S_B(\lambda)d\lambda, \end{gathered}$$ где $$S_R, S_G, S_B$$ - функции чувствительности соответствующих типов колбочек.

(рис 2.4) Характерная спектральная кривая

Если воспринимаемый свет содержит все видимые длины волн в приблизительно равных количествах, то он называется ахроматическим и при максимальной интенсивности воспринимается как белый, а при более низких интенсивностях - как оттенки серого цвета. Интенсивность отраженного света удобно рассматривать в диапазоне от 0 до 1, и тогда нулевое значение будет соответствовать черному цвету. Если же свет содержит длины волн в неравных пропорциях, то он является хроматическим. Объект, отражающий свет, воспринимается как цветной, если он отражает или пропускает свет в узком диапазоне длин волн. Точно так же и источник света воспринимается как цветной, если он испускает волны в узком диапазоне длин. При освещении цветной поверхности цветным источником света могут получаться довольно разнообразные цветовые эффекты.

Цветовой график МКО

Трехмерная природа восприятия цвета позволяет отображать его в прямоугольной системе координат. Любой цвет можно изобразить в виде вектора, компонентами которого являются относительные веса красного, зеленого и синего цветов, вычисленные по формулам$$r=\frac{R}{R+G+B}, \quad g=\frac{G}{R+G+B}, \quad b=\frac{B}{R+G+B}.$$

Поскольку эти координаты в сумме всегда составляют единицу, а каждая из координат лежит в диапазоне от 0 до 1, то все представленные таким образом точки пространства будут лежать в одной плоскости, причем только в треугольнике, отсекаемом от нее положительным октантом системы координат (рис. 2.5а). Ясно, что при таком представлении все множество точек этого треугольника можно описать с помощью двух координат, так как третья выражается через них посредством соотношения$$b=1-r-g.$$

Таким образом, мы переходим к двумерному представлению области, т.е. к проекции области на плоскость (рис. 2.5б).

(рис 2.5) Трехмерное цветовое пространство

С использованием такого преобразования в 1931 г. были выработаны международные стандарты определения и измерения цветов. Основой стандарта стал так называемый двумерный цветовой график МКО. Поскольку, как показали физические эксперименты, сложением трех основных цветов можно получить не все возможные цветовые оттенки, то в качестве базисных были выбраны другие параметры, полученные на основе исследования стандартных реакций глаза на свет. Эти параметры - $$X, Y, Z$$ - являются чисто теоретическими, поскольку построены с использованием отрицательных значений основных составляющих цвета. Треугольник основных цветов был построен так, чтобы охватывать весь спектр видимого света. Кроме того, равное количество всех трех гипотетических цветов в сумме дает белый цвет. Координаты цветности строятся так же, как и в приведенной выше формуле:$$x=\frac{X}{X+Y+Z}, \quad y=\frac{Y}{X+Y+Z}, \quad z=\frac{Z}{X+Y+Z}, \quad x+y+z=1$$

При проекции этого треугольника на плоскость получается цветовой график МКО. Но координаты цветности определяют только относительные количества основных цветов, не задавая яркости результирующего цвета. Яркость можно задать координатой $$Y$$, а $$X,Z$$ определить исходя из величин $$(x,y,Y)$$, по формулам$$X=\frac{Y}{y} x, \quad Z=\frac{Y}{y}(1-x-y).$$

(рис 2.6) Цветовой график МКО. На контуре указаны длины волн в нанометрах

Цветовой график МКО приведен на рис. 2.6. Область, ограниченная кривой, охватывает весь видимый спектр, а сама кривая называется линией спектральных цветностей. Числа, проставленные на рисунке, означают длину волны в соответствующей точке. Точка $$C$$, соответствующая полуденному освещению при сплошной облачности, принята в качестве опорного белого цвета.

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

Для смешения двух цветов используются законы Грассмана. Пусть два цвета заданы на графике МКО координатами $$D_1=(x_1,y_1,Y_1)$$ и $$D_2=(x_2,y_2,Y_2)$$. Тогда смешение их дает цвет $$D_{12}=(x_1+x_2,y_1+y_2,z_1+z_2)$$. Если ввести обозначения $$t_1=\frac{Y_1}{y_1}, t_2=\frac{Y_2}{y_2}$$, то получим координаты цветности смеси$$x_{12}=\frac{x_1 t_1 + x_2 t_2}{t_1+t_2}, \quad y_{12}=\frac{y_1 t_1 + y_2 t_2}{t_1+t_2}, \quad Y_{12}=Y_1+Y_2.$$

Координаты МКО являются точным стандартом определения цвета. Но в различных областях, имеющих дело с цветом, есть свой подход к его моделированию. В частности, может использоваться другой набор основных цветов. Компьютерная графика опирается на систему $$RGB$$, поэтому представляет интерес переход между этими двумя наборами цветов (иными словами, преобразование координат цветности).

Цветовые модели RGB и CMY

Цветовые модели, используемые в компьютерной графике, - это средства описания цветов в определенном диапазоне.

(рис 2.7) Цветовой куб для моделей RGB и CMY

На основе описанных выше физических представлений в компьютерной графике была принята так называемая аддитивная цветовая модель, использующая три первичных составляющих цвета. Эта модель предполагает, что любой цвет можно рассматривать как взвешенную сумму трех основных цветов. Проиллюстрировать ее можно на примере освещения сцены с помощью трех прожекторов разного цвета. Каждый прожектор управляется независимо, и путем изменения мощности каждого из них можно воспроизвести практически все цвета. В модели RGB цвет можно представить в виде вектора в трехмерной системе координат с началом отсчета в точке (0,0,0). Максимальное значение каждой из компонент вектора примем за 1. Тогда вектор (1,1,1) соответствует белому цвету. Все цветовые векторы, таким образом, заключены внутри единичного куба, называемого цветовым кубом (рис. 2.7а).

Другая модель смешения цветов - субстрактивная цветовая модель, или модель CMY, использующая в качестве первичных составляющих цвета Cyan, Magenta, Yellow (голубой, пурпурный, желтый), которые являются дополнительными к Red, Green, Blue. В этой модели оттенки цвета получаются путем "вычитания" из падающего света волн определенной длины. Этот подход нуждается в пояснении. В этой системе координат вектор (0,0,0) соответствует белому цвету, а вектор (1,1,1) - черному. Соответствующий цветовой куб представлен на рис. 2.7б.

Связь между значениями (R,G,B) и (C,M,Y) для одного и того же цвета выражается формулой

$$\begin{pmatrix} R \\ G \\ B \end{pmatrix} + \begin{pmatrix} C \\ M \\ Y \end{pmatrix} = \begin{pmatrix} 1 \\ 1 \\ 1 \end{pmatrix}$$ (рис 2.8) Схема смешения цветов для моделей RGB и CMY

Цвета одной модели являются дополнительными к цветам другой (дополнительный цвет - это цвет, результатом смешения которого с данным является белый). Схема смешения цветов для двух моделей представлена на рис. 2.8. Пример субстрактивного формирования оттенков показан на рис. 2.9. При освещении падающим белым светом в слое голубой (Cyan) краски из спектра белого цвета поглощается (вычитается) красная часть как дополнительный цвет, затем из оставшегося света в слое пурпурной (Magenta) краски поглощается зеленая часть спектра, и, наконец, от белой поверхности отражается синий цвет, который мы и видим. Таким образом, смешение голубого и пурпурного цветов дает в итоге синий цвет.

(рис 2.9) Субстрактивное формирование оттенков

Растровые дисплеи, как правило, используют аппаратно- ориентированную модель цветов RGB. Существуют также дисплеи с таблицей цветности, представляющей собой матрицу, каждый элемент которой - некоторый цвет (вектор RGB). В таких дисплеях значения кодов пикселей, заносимые в видеопамять, представляют собой индексы матрицы цветности. При отображении некоторого пикселя на экран по значению кода выбирается элемент таблицы цветности, содержащий тройку значений R, G, B. Эта тройка и передается на монитор для задания цвета пикселя на экране.

В полноцветных дисплеях для каждого пикселя в видеопамять заносится тройка значений R, G, B. В этом случае для отображения пикселя из видеопамяти непосредственно выбираются значения R, G, B, которые и передаются на монитор (но могут и передаваться в таблицу цветности).

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

Цветовые модели HSV и HLS

Приведенные модели не охватывают всего диапазона видимого цвета, поскольку их цветовой охват - это лишь треугольник на графике МКО, вершинам которого соответствуют базовые цвета. Они являются аппаратно ориентированными, т.е. соответствуют технической реализации цвета в устройствах графического вывода. Но психофизиологическое восприятие света определяется не интенсивностью трех первичных цветов, а цветовым тоном, насыщенностью и светлотой. Цветовой тон позволяет различать цвета, насыщенность задает степень "разбавления" чистого тона белым цветом, а светлота - это интенсивность света в целом. Поэтому для адекватного нашему восприятию подбора оттенков более удобными являются модели, в числе параметров которых присутствует тон (Hue). Этот параметр принято измерять углом, отсчитываемым вокруг вертикальной оси. При этом красному цвету соответствует угол 0 $$\deg$$, зеленому - 120 $$\deg$$, синему - 240 $$\deg$$, а дополняющие друг друга цвета расположены один напротив другого, т.е. угол между ними составляет 180 $$\deg$$. Цвета CMY расположены посредине между составляющими их компонентами RGB. Существует две модели, использующие этот параметр.

Модель HSV (Hue, Saturation, Value, или тон, насыщенность, количество света) можно представить в виде световой шестигранной пирамиды (рис. 2.10), по оси которой откладывается значение V, а расстояние от оси до боковой грани в горизонтальном сечении соответствует параметру S (за диапазон изменения этих величин принимается интервал от нуля до единицы). Значение S равно единице, если точка лежит на боковой грани пирамиды. Шестиугольник, лежащий в основании пирамиды, представляет собой проекцию цветового куба в направлении его главной диагонали (рис. 2.11).

(рис 2.11) Цветовое пространство HSV(рис 2.10) Цветовое пространство HLS

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

Цветовая модель HLS (Hue, Lightness, Saturation, или тон, светлота, насыщенность) является расширением модели HSV. Здесь цветовое пространство уже представляется в виде двойной пирамиды (рис. 2.11), в которой по вертикальной оси откладывается L (светлота), а остальные два параметра задаются так же, как и в предыдущей модели. В литературе эти пирамиды иногда называют шестигранным конусом.

На рис. 2.12 и 2.13 приведены блок-схемы преобразования моделей HSV и HLS в модель RGB. Алгоритмы обратного преобразования предлагаются читателю в качестве упражнения.

В первом алгоритме используется функция Ent, означающая целую часть числа. Кроме того, используется операция присваивания для векторов. Константа ndf (сокращенное от выражения "not defined") используется при входе в алгоритм для того, чтобы выяснить, задано ли значение переменной H. Например, по соглашению ndf может быть некоторым отрицательным значением, так как тон - это всегда положительная величина. Во втором алгоритме применяется вспомогательная функция Value (H, M1, M2) для вычисления значения компоненты R, G или B в зависимости от ситуации.

(рис 2.12) Преобразование модели HSV в RGB

Алгоритм преобразования:

Приведение H к заданному диапазону:
   Пока H<0 H=H+360
   Пока H>360 H=H-360
Определение координат
   Если H<60 то Value=M1+(M2-M1)*H/60
   Если 60<=H<180 то Value=M2
   Если 180<=H<240 то Value=M1+(M2-M1)*(240-H)/60
   Если 240<=H то Value=M1
(рис 2.13) Преобразование модели HLS в RGB

Пространство CIE Luv

Один из существенных минусов цветового пространства XYZ — это то, что оно не является перцептивно (визуально) равномерным и не может использоваться для вычисления цветовых расстояний. Поэтому CIE (МКО) продолжила разработку перцептивно равномерного пространства. Целью комитета CIE было создание повторяемой системы стандартов цветопередачи для производителей красок, чернил, пигментов и других красителей. Самая важная функция этих стандартов — предоставить универсальную схему, в рамках которой можно было бы устанавливать соответствие цветов.

В результате было создано цветовое пространство CIE Luv, позволяющее определить различение цветов для человека с "усредненным" зрением, (т.е. различные люди неодинаково воспринимают разницу между цветами). Свое название пространство получило благодаря его компонентам L, u и v. Параметр L соответствует яркости цвета, u отвечает за переход от зеленого к красному (при увеличении), а при увеличении параметра v происходит переход от синего к фиолетовому. Если u и v равны 0, то, меняя L, получаем цвета, являющиеся градациями серого.

Это цветовое пространство было разработано для количественного измерения различия двух цветов. CIE были проведены исследования с участием большого числа людей, результатом чего явилось создание пространства Luv. Измерения проводились в "хороших" условиях (достаточное освещение и неяркий монотонный фон); перед испытуемым находились два листа бумаги, окрашенных соответственно двумя цветами, и он должен был дать ответ, насколько, по его мнению, различаются эти цвета. В случае реальных изображений мы должны находить различия между цветами на более сложном фоне, при этом не всегда при хорошем освещении (например, слишком ярком). Но освещение зависит и от помещения, и от времени суток, и от того, под каким углом находится поверхность к источнику света.

Переход из RGB в Luv осуществляется следующим образом. Сначала нормируем R, G, B:$$\begin{pmatrix} R^* \\ G^* \\ B^* \end{pmatrix} = \begin{pmatrix} R/255 \\ G/255 \\ B/255 \end{pmatrix}$$

Далее совершаем преобразование пространства RGB в XYZ:$$\begin{pmatrix} X \\ Y \\ Z \end{pmatrix} = \begin{pmatrix} 0.412453 0.35758 0.180423 \\ 0.212671 0.71516 0.072169 \\ 0.019334 0.119193 0.950227 \end{pmatrix} \times \begin{pmatrix} R^* \\ G^* \\ B^* \end{pmatrix}$$

Цветовое пространство CIE Luv — непрерывное однородное преобразование пространства CIE XYZ, описываемое следующими формулами:$$\begin{aligned} L= \left\{ \begin{aligned} 116 \times \sqrt[3]{\frac{Y}{Y_n}}-16, \quad \frac{Y}{Y_n}>0.008856 \\ 903.3 \times \frac{Y}{Y_n}, \quad \frac{Y}{Y_n} \le 0.008856 \end{aligned} \right. \\ u'=\frac{4X}{X+15Y+3Z}=\frac{4x}{-2x+12y+3}, \quad v'=\frac{9Y}{X+15Y+3Z}=\frac{9y}{-2x+12y+3} \\ u=13L(u'-u_n), \quad v=13L(v'-v_n) \end{aligned}$$

Для определения параметров $$Y_n$$, $$u_n$$ и $$v_n$$, вводится понятие белой точки ( white point ). Белая точка - это пара параметров цветности (x, y), определяющая эталон белого цвета для различных источников света. CIE составила таблицу белых точек для источников света разной яркости. При этом значение компоненты Y белой точки в XYZ нормализовано до 100 (в приведенных выше формулах $$Y_n$$ как раз соответствует нормализованной Y компоненте). Параметры $$u_n$$ и $$v_n$$ вычисляются по тем же формулам, что $$u'$$ и $$v'$$, в которых используются значения x и y для белой точки.

Как уже упоминалось выше, компонента L соответствует яркости цвета, а из формул видно, что L пропорциональна кубическому корню из компоненты Y пространства XYZ. Однако существует мнение, что человеческому восприятию больше соответствует корень второй степени из освещенности. Так, например, в цветовом пространстве Lab параметр L вычисляется с использованием кубического корня.

Немного о свойствах величин L, u, v:

  • L меняется от 0 до 100;
  • u, v лежат в пределах -200, 200;
  • u отвечает за переход от зеленого к красному (при увеличении u);
  • v отвечает за переход от синего к фиолетовому (при увеличении v);
  • если u и v равны 0, меняя L, получаем изображение, содержащее градации серого (grayscale).
  • Наконец, самое важное, к чему мы стремились, переходя в это пространство. Нам заданы два цвета - $$L_1, u_1, v_1$$ и $$L_2, u_2, v_2$$. Как определить расстояние между цветами, то есть насколько человек заметил бы различие между ними? Оказывается, оно задается евклидовой нормой$$D=\sqrt{(L_1-L_2)^2+(u_1-u_2)^2+(v_1-v_2)^2}$$ При расстоянии между двумя цветами $$D>5$$ большинство людей уже замечают различие, при $$D>10$$ оно заметно всем. В этом и состоит главное достоинство этого пространства. Оно учитывает восприятие цветов человеком, и различие между цветами определяется очень простой формулой. Необходимо заметить, что эта формула применима в определенных условиях: освещение, фон не должны мешать и отвлекать.

    Одновременно с разработкой CIE Luv было также разработано перцептивно равномерное цветовое пространство CIE Lab. Из этих двух моделей более широко применяется модель CIE Lab. Структура цветового пространства Lab основана на той теории, что цвет не может быть одновременно зеленым и красным или желтым и синим (рис. 2.14). Следовательно, для описания атрибутов "красный/зеленый" и "желтый/синий" можно воспользоваться одними и теми же значениями. Формулы перехода от пространства XYZ к пространству Lab осуществляется следующим образом:$$\begin{aligned} L= \left\{ \begin{aligned} 116 \cdot [(Y/Y_n)^{1/3}]-16 \text{если } (Y/Y_n)>0.008856 \quad a=500\cdot [f(X/X_n)-f(Y/Y_n)] \\ 903.3 \cdot Y/Y_n \text{если } (Y/Y_n) \le 0.008856 \quad b=200\cdot [f(Y/Y_n)-f(Z/Z_n)] \end{aligned} \right. \\ \text{где } f(t)= \left\{ \begin{aligned} t^{1/3} \text{если } (Y/Y_n)>0.008856 \\ 7.787 \cdot t + 16/116 \text{если } (Y/Y_n)\le 0.008856 \end{aligned} \right. \end{aligned}$$

    (рис 2.15) Представление цвета в пространстве CIE Lab(рис 2.14) Видимое стандартным наблюдателем пространство Lab

    Каждая цветовая модель, помимо преимуществ, также имеет и свои индивидуальные недостатки. Существуют и другие модели, которые здесь не рассматриваются.

    Вопросы и упражнения

  • Расположите в убывающем порядке чувствительность рецепторов глаза к цветам: красный, зеленый, синий.
  • Что такое хроматический спектр?
  • Что такое ахроматический спектр?
  • Как осуществляется проекция трехмерного цветового пространства на плоскость?
  • Чем отличается цветовой график МКО от треугольной проекционной области цветового пространства?
  • Что такое дополнительный цвет?
  • Что такое аддитивная и субстрактивная цветовые модели? Чем отличаются их цветовые кубы?
  • Что является основой цветовой модели HSV и HLS?
  • Являются ли цветовые модели HSV и HLS аддитивными или субстрактивными?
  • Постройте алгоритм преобразования модели RGB в HSV.
  • Постройте алгоритм преобразования модели RGB в HLS.
  • В чем состоит главное достоинство цветового пространства Luv?
  • В чем состоит главное достоинство цветового пространства Lab?
  • Вернуться к учебному плану