Смекни!
smekni.com

Обработка и визуализация объектов на космических изображениях средствами пакета Contour (стр. 3 из 6)

CIE (Commission internationale de l’eclairage, или МКО - Международная комиссия по освещению) предлагает использовать в качестве основных условные цвета X, Y Z. Вам не удастся найти их в природе - спектральная плотность этих цветов на некоторых длинах волн отрицательна. Хотя, сами X, Y и Z не являются реальными цветами, подобраны они так, что любой реальный цвет представим в виде их линейной комбинации с неотрицательными коэффициентами. Так выглядят функции подбора для XYZ (рис.1.5):

Рис.1.5 Функции подбора цвета для XYZ

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

Рис.1.6. Видимая область цвета человеческим глазом

Крайне удобным производным от XYZ пространством является CIE xy, получаемое сечением XYZ плоскостью X+Y+Z=1. На плоскости вводится система координат с началом в точке пересечения плоскости с осью Z и координатами x и y, равными единицам в точках пересечения плоскости с осями X и Y соответственно. В результате получается следующее (рис.1.7):

Рис.1.7 Плоскость сечения

Рассмотрим рисунок подробнее. Цвета в пределах плоскости xy отличаются по цветовому тону и насыщенности, в то время как яркость (расстояние до нуля XYZ) остается за пределами описания. Иногда для полного описания цвета используют пространство xyY, рассматривая в качестве яркости значение Y.

Яркость.

Строго говоря, яркость - это физическая характеристика источника света, описывающая его излучение в данном направлении. В контексте цветов корректнее было бы говорить о светлоте, как субъективном отличии яркости данного цвета от яркости эталонного белого. Используются, однако, оба термина: можно считать, что светлота характеризует отличие цвета от белого, а яркость - его отличие от черного. В переводной литературе в качестве синонима яркости иногда используется термин "значение" (value).

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

Вернемся к плоскости xy. На плавной дуге, ограничивающей область видимых цветов, отмечены длины волн. На ней же располагаются соответствующие этим длинам волн чистые спектральные цвета. Соединяющий фиолетовый с красным отрезок служит прибежищем пурпурных цветов - там же располагается и маджента. Пурпурный - неспектральный цвет, у него нет своей длины волны или диапазона длин волн. Ощущения пурпурных тонов возникают в результате приема глазом смеси красных и фиолетовых цветов [14].

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

Самым полезным свойством пространства xy является наглядное представление производных цветов. Для любого набора основных цветов все воспроизводимые путем их смешения цвета будут располагаться в пространстве xy внутри минимального выпуклого многоугольника, описывающего точки основных цветов. Если смешивать два основных цвета A и B, то все цвета, которые можно получить таким смешением, будут располагаться на отрезке AB плоскости xy. Если основных цветов три - все возможные производные цвета будут располагаться в треугольнике, образуемом основными. Если, например, в каждом пикселе монитора мы смешиваем основные цвета RGB, выбранные как показано на рисунке, несложно определить треугольник цветов, которые такой монитор способен воспроизвести. Хорошо видно, что никакой монитор, даже при идеальных монохромных пикселях, не сможет воспроизвести все видимые цвета. Впрочем, это мы знали и раньше: в противном случае не возникло бы необходимости в цветах XYZ.

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

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

Рис.1.8 RGB-пространство

В единичных точках на осях RGB мы имеем основные цвета, в начале координат черный, в точке (1, 1, 1) - белый, а при попарном смешении основных цветов получаем дополнительные к третьему: циан, мадженту и желтый. Все остальные воспроизводимые нашим устройством цвета располагаются внутри куба [15].

Попробуем теперь отделить цветовую информацию от яркостной. Сместим немного точку наблюдения так, чтобы белый цвет совпал с черным, и нарисуем полностью цвета ярких граней куба (рис.1.9):

Рис.1.9 RGB-куб. Направление [111]

Яркость теперь снова можно считать расстоянием до начала координат. Сгладив углы шестиугольника на иллюстрации, получим хорошо всем знакомый цветовой круг (рис.1.10):

Рис.1.10 Цветовой круг

Любой цвет на таком круге задается в полярной системе координат: цветовой тон определяет угол, а насыщенность - расстояние от центра (белого). Вспомнив про яркостную составляющую, и дополнив ею систему координат до цилиндрической, получаем HSB - еще одно пространство для описания любого цвета. Заметим на этот раз, что не совсем любого, а любого воспроизводимого [16].

HSB (HSV), HSL, LCH

HSB (Hue, Saturation, Brightness) = тон, насыщенность, яркость;

HSV (Hue, Saturation, Value) = тон, насыщенность, значение;

HSL (Hue, Saturation, Lightness) = тон, насыщенность, светлота;

LCH (Lightness, Chroma, Hue) = светлота, цветность, тон.

Различия перечисленных цветовых пространств сродни различию светлоты и яркости: термины, в принципе, разные, но на понятийном уровне эквивалентные. Все они описывают координаты цвета в цилиндрических координатах. Численные определения могут различаться, но hue всегда задает цветовой тон, saturation/chroma - насыщенность, а brightness/lightness/value - высоту в цилиндре, путь от белого к черному.

1.4 Растровая и векторная графика

Одно и то же изображение может быть представлено в памяти ЭВМ двумя принципиально различными способами и получено два различных типа изображения: растровое и векторное. Рассмотрим подробнее эти способы представления изображений, выделим их основные параметры и определим их достоинства и недостатки.

Что такое растровое изображение?

Возьмём рисунок (рис.1.11). Конечно, она тоже состоит из маленьких элементов, но будем считать, что отдельные элементы мы рассмотреть не можем. Она представляется для нас, как реальная картина природы.

Теперь разобьём это изображение на маленькие квадратики (маленькие, но всё-таки чётко различимые), и каждый квадратик закрасим цветом, преобладающим в нём (на самом деле программы при оцифровке генерируют некий "средний" цвет, т.е. если у нас была одна чёрная точка и одна белая, то квадратик будет иметь серый цвет) [17].

Как мы видим, изображение стало состоять из конечного числа квадратиков определённого цвета. Эти квадратики называют pixel (от PICture ELement) - пиксел или пиксель.

Рис.1.11 Исходное изображение

Теперь каким-либо методом занумеруем цвета. Конкретная реализация этих методов нас пока не интересует. Для нас сейчас важно то, что каждый пиксель на рисунке стал иметь определённый цвет, обозначенный цифрой (рис.1.12).