Представление графической информации
Когда графическое изображение выводится на цветной принтер, выполняется преобразование представления цвета из модели RGB в модель CMYK. Рассмотрим формулы преобразования координат цвета между моделями RGB и CMYK.
Пусть r, g и b - компоненты цвета в модели RGB, и .
Если, в частности, R, G, B - целые компоненты красного, зеленого и синего цвета, соответственно, такие что , то положим .
Обозначим K = max(r, g, b). Пусть . Тогда цвет имеет в цветовой модели следующие компоненты:
Если K = 0, то полагают rgb(0, 0, 0) = cmyk(0, 0, 0, 1).
Соответственно, формулы преобразования цветовых компонент из модели CMYK в модель RGB имеют вид: r = (1 - c)(1 - k); g = (1 - m)(1 - k); b = (1 - y)(1 - k).
Для 24-битного представления компоненты цвета в модели RGB равны округлениям до целых значений R = 255r, G = 255g и B = 255b.
Пример 5. Найдем компоненты цвета rgb(202, 124, 50) (оттенок коричневого цвета) в модели CMYK. Имеем: . Поэтому K = 0,792. Следовательно, c = 0, m = 0,386, y = 0,752, k = 0,208. Таким образом, rgb(202, 124, 50) = rgb(0,79, 0,49, 0,2) = cmyk(0, 0,39, 0,75, 0,21) = cmyk(0%, 39%, 75%, 21%).
Обратное преобразование цвета cmyk(0, 0,386, 0,752, 0,208) в модель RGB приведет к исходному результату.
Пример 6. Пусть цвет в модели CMYK имеет компоненты cmyk(0,3, 0,15, 0,2, 0,45). Тогда 1 - k = 0,55, поэтому компоненты цвета в модели RGB имеют вид: r = 0,7 * 0,55 = 0,385; g = 0,85 * 0,55 = 0,4675; b = 0,8 * 0,55 = 0,44. Для 24-битного представления получаем: R = 98, G = 119, B = 112.
Обратное преобразование из модели RGB в модель CMYK приведет к представлению, которое будет отличаться от исходного: c = 0,176, m = 0, y = 0,059, k = 0,533. Таким образом, один и тот же цвет в модели CMYK может иметь различные представления. Последовательные преобразования из одной модели в другую будут приводить к тем же результатам, если хотя бы одна из компонент c, m и y - нулевая.
Цветовая модель HSV
Цветовая модель HSV (или HSB) представляет цветовое пространство в виде компонент тона, насыщенности и яркости. Модель соответствует субъективному восприятию цвета человеком.
Цветовое пространство модели HSV представляется в виде вертикального конуса с вершиной внизу ( рис. 3.4 (a)). Вершина конуса соответствует черному цвету. Ось яркости направлена вверх, тону соответствует направление вдоль окружности основания конуса, а насыщенность определяется углом между осью яркости и лучом, соединяющим вершину конуса и заданную точку ( рис. 3.4 (b)). Точки оси конуса соответствуют цветам с нулевой насыщенностью - оттенкам серого, от черного до белого.
На окружности основания конуса отмечаются цвета спектра, от красного до фиолетового, к которым добавлены красно-фиолетовые тона. Чистый красный цвет соответствует нулю. Основные цвета моделей RGB и CMYK располагаются в вершинах правильных треугольников, при этом их дополнительные цвета попадают на концы диагоналей. Тон цвета измеряется в углах, от до , либо от 0 до 1, в направлении против часовой стрелки. Цвета этой окружности имеют максимальные насыщенность и яркость. Показатели насыщенности и яркости имеют значения от 0 до 1, также они могут указываться в процентах от 1.
Пример 7. В таблице 3.1 представлены компоненты некоторых цветов в моделях HSV и RGB. Параметр тона указан в градусах, а параметры насыщенности и яркости - в процентах.
Название | HSV | RGB |
---|---|---|
красный | (0, 100, 100) | (255, 0, 0) |
оранжевый | (30, 100, 100) | (255, 127, 0) |
желтый | (60, 100, 100) | (255, 255, 0) |
зеленый | (120, 100, 100) | (0, 255, 0) |
голубой | (180, 100, 100) | (0, 255, 255) |
синий | (240, 100, 100) | (0, 0, 255) |
фиолетовый | (270, 100, 100) | (127, 0, 255) |
пурпурный | (300, 100, 100) | (255, 0, 255) |
черный | (0, 0, 0) | (0, 0, 0) |
белый | (0, 0, 100) | (255, 255, 255) |
Рассмотрим формулы преобразования цветовых компонент из модели RGB в модель HSV. Пусть компоненты цвета rgb(r, g, b) находятся в пределах от 0 до 1. Обозначим компоненты цвета в модели HSV через H, S и V, соответственно, где S и V принадлежат отрезку [0; 1], а H измеряется в градусах от 0 до 360.
Параметр яркости имеет вид: V = max(r, g, b).
Положим и , для . Параметры насыщенности (S) и тона (H) находятся следующим образом:
где
Пример 8. Пусть цвет в 24-битном представлении имеет компоненты rgb(38, 200, 172) (оттенок бирюзового). После деления составляющих на 255 получим: r = 0,149, g = 0,784, b = 0,6745. Следовательно, , ,math>\Delta = 0,635,/math>, . Значит, S = 0,81, H = 169,653. Поэтому .
Пример 9. Пусть цвет имеет компоненты rgb(255, 20, 150) (темно-розовый). Имеем: r = 1, g = 0,078, b = 0,588. Следовательно, V = 1, S = 0,922, H = - 33,189 + 360 = 326,811. Итак, .
Теперь рассмотрим формулы преобразования из модели HSV в модель RGB. Обозначим компоненты цвета в модели HSV через H, S и V, где H измеряется в градусах от 0 до 360, а S и V имеют значения в пределах от 0 до 1. Пусть r, g и b - компоненты цвета в модели RGB из [0; 1].
Положим и .
Обозначим p = (1 - S)V, q = (1 - fS)V и t = (1 - (1 - f)S)V.
Значения r, g и b определяются значением (табл. 3.2) - номера одного из шести секторов круга - красно-желтого (0), желто-зеленого (1), зелено-голубого (2), сине-голубого (3), сине-фиолетового (4) и фиолетово-красного (5).