HSL и HSV — два наиболее распространенных представления точек в цилиндрической системе координат в цветовой модели RGB . Эти два представления изменяют геометрию RGB, пытаясь сделать ее более интуитивной и перцептивно значимой, чем декартово (кубическое) представление. Разработанные в 1970-х годах для приложений компьютерной графики , HSL и HSV сегодня используются в программах выбора цвета , в программном обеспечении для редактирования изображений и реже в анализе изображений и компьютерном зрении .
HSL означает оттенок , насыщенность и яркость и часто также называется HLS . HSV означает оттенок , насыщенность и значение и часто также называется HSB ( B для яркости ). Третья модель, распространенная в приложениях компьютерного зрения, — это HSI , оттенок , насыщенность и интенсивность . Однако, хотя эти определения обычно последовательны, они не стандартизированы, и любое из этих сокращений может использоваться для любой из этих трех или нескольких других связанных цилиндрических моделей. (Технические определения этих терминов см. ниже.)
В каждом цилиндре угол вокруг центральной вертикальной оси соответствует « оттенку », расстояние от оси соответствует « насыщенности », а расстояние вдоль оси соответствует « яркости », «значению» или « яркости ». Обратите внимание, что хотя «оттенок» в HSL и HSV относится к одному и тому же атрибуту, их определения «насыщенности» существенно различаются. Поскольку HSL и HSV являются простыми преобразованиями зависящих от устройства моделей RGB, физические цвета, которые они определяют, зависят от цветов красного, зеленого и синего основных цветов устройства или конкретного пространства RGB, а также от гамма-коррекции, используемой для представления количества этих основных цветов. Таким образом, каждое уникальное устройство RGB имеет уникальные пространства HSL и HSV, которые его сопровождают, а числовые значения HSL или HSV описывают другой цвет для каждого базового пространства RGB. [1]
Оба эти представления широко используются в компьютерной графике, и одно из них часто удобнее RGB, но оба также критикуются за недостаточное разделение атрибутов создания цвета или за отсутствие перцептивной однородности. Говорят, что другие, более вычислительно интенсивные модели, такие как CIELAB или CIECAM02 , лучше достигают этих целей.
HSL и HSV являются цилиндрическими геометриями ( рис. 2 ), с оттенком, их угловым измерением, начинающимся с красного основного цвета в 0°, проходящим через зеленый основной цвет в 120° и синий основной цвет в 240°, а затем возвращающимся обратно к красному цвету в 360°. В каждой геометрии центральная вертикальная ось включает нейтральные , ахроматические или серые цвета, начиная сверху вниз, от белого при яркости 1 (значение 1) до черного при яркости 0 (значение 0).
В обеих геометриях аддитивные первичные и вторичные цвета — красный, желтый , зеленый, голубой , синий и пурпурный — и линейные смеси между соседними парами из них, иногда называемые чистыми цветами , расположены вокруг внешнего края цилиндра с насыщенностью 1. Эти насыщенные цвета имеют светлоту 0,5 в HSL, тогда как в HSV они имеют значение 1. Смешивание этих чистых цветов с черным — создание так называемых оттенков — оставляет насыщенность неизменной. В HSL насыщенность также не изменяется при тонировании белым, и только смеси как с черным, так и с белым — называемые тонами — имеют насыщенность меньше 1. В HSV тонирование само по себе снижает насыщенность.
Поскольку эти определения насыщенности – в которых очень темные (в обеих моделях) или очень светлые (в HSL) почти нейтральные цвета считаются полностью насыщенными (например, снизу справа в разрезанном цилиндре HSL или сверху справа) – конфликтуют с интуитивным понятием чистоты цвета, часто вместо этого рисуется коническое или биконическое тело ( рис. 3 ), с тем, что в этой статье называется цветностью в качестве его радиального измерения (равного диапазону значений RGB), вместо насыщенности (где насыщенность равна цветности по максимальной цветности в этом срезе (би)конуса). Сбивает с толку то, что такие диаграммы обычно называют это радиальное измерение «насыщенностью», размывая или стирая различие между насыщенностью и цветностью. [A] Как описано ниже, вычисление цветности является полезным шагом в выводе каждой модели. Поскольку такая промежуточная модель – с измерениями оттенка, цветности и значения HSV или яркости HSL – принимает форму конуса или биконуса, HSV часто называют «моделью шестиконуса», в то время как HSL часто называют «моделью би-шестиконуса» ( рис. 8). [B]
Большинство телевизоров, компьютерных дисплеев и проекторов воспроизводят цвета, комбинируя красный, зеленый и синий свет с различной интенсивностью — так называемые аддитивные основные цвета RGB . Получающиеся смеси в цветовом пространстве RGB могут воспроизводить широкий спектр цветов (называемый гаммой ); однако, связь между составляющими количествами красного, зеленого и синего света и результирующим цветом неинтуитивна, особенно для неопытных пользователей и для пользователей, знакомых с субтрактивным смешиванием цветов красок или традиционными моделями художников, основанными на оттенках и тенях ( рис. 4 ). Более того, ни аддитивные, ни субтрактивные цветовые модели не определяют цветовые отношения так, как это делает человеческий глаз . [C]
Например, представьте, что у нас есть RGB-дисплей, цвет которого контролируется тремя ползунками в диапазоне от 0 до 255 , один из которых управляет интенсивностью каждого из основных цветов: красного, зеленого и синего. Если мы начнем с относительно красочного оранжевого со значениями sRGB R = 217 , G = 118 , B = 33 и хотим уменьшить его красочность вдвое до менее насыщенного оранжевого цвета , нам нужно будет перетащить ползунки, чтобы уменьшить R на 31, увеличить G на 24 и увеличить B на 59, как показано на рисунке ниже.
Начиная с 1950-х годов, цветное телевещание использовало совместимую цветовую систему, в которой сигналы « яркости » и « цветности » кодировались отдельно, так что существующие немодифицированные черно-белые телевизоры могли по-прежнему принимать цветные передачи и показывать монохромное изображение. [9]
В попытке приспособить более традиционные и интуитивные модели смешивания цветов пионеры компьютерной графики в PARC и NYIT представили модель HSV для технологии компьютерного дисплея в середине 1970-х годов, формально описанную Элви Рэем Смитом [10] в выпуске Computer Graphics за август 1978 года . В том же выпуске Джоблав и Гринберг [11] описали модель HSL, измерения которой они обозначили как оттенок , относительную цветность и интенсивность , и сравнили ее с HSV ( рис. 1 ). Их модель была основана больше на том, как цвета организованы и концептуализированы в человеческом зрении с точки зрения других цветообразующих атрибутов, таких как оттенок, светлота и цветность; а также на традиционных методах смешивания цветов, например, в живописи, которые включают смешивание ярких пигментов с черным или белым для получения более светлых, темных или менее красочных цветов.
В следующем, 1979 году, на SIGGRAPH , Tektronix представила графические терминалы, использующие HSL для обозначения цвета, и Комитет по стандартам компьютерной графики рекомендовал его в своем ежегодном отчете о состоянии ( рис. 7 ). Эти модели были полезны не только потому, что они были более интуитивными, чем необработанные значения RGB, но и потому, что преобразования в RGB и из RGB были чрезвычайно быстрыми для вычисления: они могли работать в реальном времени на оборудовании 1970-х годов. Следовательно, эти модели и подобные им стали повсеместными в программном обеспечении для редактирования изображений и создания графики с тех пор. Некоторые из их применений описаны ниже. [12] [13] [14] [15]
Размеры геометрий HSL и HSV — простые преобразования неперцептуально основанной модели RGB — напрямую не связаны с фотометрическими цветообразующими атрибутами с теми же названиями, как это определено такими учеными, как CIE или ASTM . Тем не менее, стоит рассмотреть эти определения, прежде чем переходить к выводу наших моделей. [D] Определения цветообразующих атрибутов, которые приведены ниже, см.: [16] [17] [18] [19] [20] [21]
Яркость и красочность являются абсолютными мерами, которые обычно описывают спектральное распределение света, попадающего в глаз, в то время как светлота и цветность измеряются относительно некоторой белой точки и, таким образом, часто используются для описания цветов поверхности, оставаясь примерно постоянными, даже если яркость и красочность изменяются при различном освещении . Насыщенность можно определить либо как отношение красочности к яркости, либо как отношение цветности к светлоте.
HSL, HSV и связанные с ними модели могут быть получены с помощью геометрических стратегий или могут рассматриваться как конкретные примеры «обобщенной модели LHS». Создатели моделей HSL и HSV взяли куб RGB — с составляющими количествами красного, зеленого и синего света в цвете, обозначенном R , G , B ∈ [0, 1] [E] — и наклонили его на угол так, чтобы черный находился в начале координат, а белый — прямо над ним вдоль вертикальной оси, затем измерили оттенок цветов в кубе по их углу вокруг этой оси, начиная с красного в 0°. Затем они придумали характеристику яркости/значения/светлости и определили насыщенность в диапазоне от 0 вдоль оси до 1 в самой красочной точке для каждой пары других параметров. [2] [10] [11]
В каждой из наших моделей мы вычисляем как оттенок , так и то, что в этой статье будет называться chroma , в честь Joblove и Greenberg (1978), одинаковым образом – то есть оттенок цвета имеет те же числовые значения во всех этих моделях, как и его chroma. Если мы возьмем наш наклонный куб RGB и спроецируем его на « плоскость хроматичности » , перпендикулярную нейтральной оси, наша проекция примет форму шестиугольника с красным, желтым, зеленым, голубым, синим и пурпурным в его углах ( рис. 9 ). Оттенок – это примерно угол вектора к точке в проекции, где красный равен 0°, тогда как chroma – это примерно расстояние точки от начала координат. [F] [G]
Точнее, и оттенок, и цветность в этой модели определяются относительно шестиугольной формы проекции. Цветность — это пропорция расстояния от начала координат до края шестиугольника. В нижней части соседней диаграммы это отношение длин OP / OP ′ или, альтернативно, отношение радиусов двух шестиугольников. Это отношение — разница между наибольшим и наименьшим значениями среди R , G или B в цвете. Чтобы сделать наши определения более простыми для записи, мы определим эти максимальные, минимальные и значения компонента цветности как M , m и C соответственно. [H]
Чтобы понять, почему цветность можно записать как M − m , обратите внимание, что любой нейтральный цвет с R = G = B проецируется на начало координат и, таким образом, имеет 0 цветности. Таким образом, если мы прибавим или вычтем одинаковое количество из всех трех R , G , и B , мы переместимся вертикально внутри нашего наклонного куба и не изменим проекцию. Следовательно, любые два цвета ( R , G , B ) и ( R − m , G − m , B − m ) проецируются на одну и ту же точку и имеют одну и ту же цветность. Цветность цвета, один из компонентов которого равен нулю ( m = 0), является просто максимумом двух других компонентов. Эта цветность равна M в частном случае цвета с нулевым компонентом и M − m в общем случае.
Оттенок — это доля расстояния вокруг ребра шестиугольника, проходящего через проецируемую точку, изначально измеряемая в диапазоне [0, 1], но теперь обычно измеряемая в градусах [0°, 360°) . Для точек, которые проецируются на начало координат в плоскости цветности (т. е. серые), оттенок не определен. Математически это определение оттенка записывается кусочно : [I]
Иногда нейтральным цветам (т.е. с C = 0 ) для удобства представления присваивается оттенок 0°.
Эти определения сводятся к геометрическому искажению шестиугольников в окружности: каждая сторона шестиугольника линейно отображается на дугу окружности в 60° ( рис. 10 ). После такого преобразования оттенок — это именно угол вокруг начала координат, а цветность — расстояние от начала координат: угол и величина вектора, указывающего на цвет.
Иногда для приложений анализа изображений это преобразование шестиугольника в круг пропускается, а оттенок и цветность (обозначим их H 2 и C 2 ) определяются обычными преобразованиями декартовых координат в полярные ( рис. 11 ). Самый простой способ их вывести — через пару декартовых координат цветности, которые мы назовем α и β : [22] [23] [24]
( Функция atan2 , «арктангенс с двумя аргументами», вычисляет угол из пары декартовых координат.)
Обратите внимание, что эти два определения оттенка ( H и H 2 ) почти совпадают, с максимальной разницей между ними для любого цвета около 1,12° – что происходит при двенадцати конкретных оттенках, например H = 13,38° , H 2 = 12,26° – и с H = H 2 для каждого кратного 30°. Два определения цветности ( C и C 2 ) различаются более существенно: они равны в углах нашего шестиугольника, но в точках на полпути между двумя углами, например H = H 2 = 30° , мы имеем C = 1 , но разница составляет около 13,4%.
В то время как определение оттенка относительно бесспорно — оно примерно удовлетворяет критерию, что цвета одного и того же воспринимаемого оттенка должны иметь один и тот же числовой оттенок — определение измерения светлоты или значения менее очевидно: существует несколько возможностей в зависимости от цели и задач представления. Вот четыре из наиболее распространенных ( рис. 12 ; три из них также показаны на рис. 8):
Все четыре из них оставляют нейтральную ось в покое. То есть, для цветов с R = G = B любая из четырех формул дает светлоту, равную значению R , G или B .
Графическое сравнение см. на рис. 13 ниже.
При кодировании цветов в модели оттенок/яркость/цветность или оттенок/значение/цветность (используя определения из предыдущих двух разделов) не все комбинации яркости (или значения) и цветности имеют смысл: то есть половина цветов, обозначаемых с помощью H ∈ [0°, 360°) , C ∈ [0, 1] и V ∈ [0, 1], выходят за рамки RGB-гаммы (серые части срезов на рисунке 14). Создатели этих моделей считали это проблемой для некоторых применений. Например, в интерфейсе выбора цвета с двумя измерениями в прямоугольнике и третьим на ползунке половина этого прямоугольника состоит из неиспользуемого пространства. Теперь представьте, что у нас есть ползунок для яркости: намерение пользователя при настройке этого ползунка потенциально неоднозначно: как программное обеспечение должно обрабатывать цвета, выходящие за рамки гаммы? Или наоборот, если пользователь выбрал максимально красочный темно-фиолетовый , а затем сдвигает ползунок яркости вверх, что нужно сделать: предпочел бы пользователь видеть более светлый фиолетовый цвет, но при этом максимально красочный для данного оттенка и яркости , или более светлый фиолетовый точно такой же насыщенности, как и исходный цвет ? [11]
Для решения таких проблем модели HSL и HSV масштабируют цветность так, чтобы она всегда вписывалась в диапазон [0, 1] для каждой комбинации оттенка и светлоты или значения, вызывая новый атрибут насыщенности в обоих случаях (рис. 14). Чтобы вычислить любой из них, просто разделите цветность на максимальную цветность для этого значения или светлоты.
Модель HSI, обычно используемая для компьютерного зрения, которая берет H 2 как измерение оттенка и компонентное среднее I («интенсивность») как измерение яркости, не пытается «заполнить» цилиндр своим определением насыщенности. Вместо того, чтобы предоставлять конечным пользователям интерфейсы выбора или изменения цвета, цель HSI — облегчить разделение форм на изображении. Насыщенность, таким образом, определяется в соответствии с психометрическим определением: цветность относительно яркости ( рис. 15 ). См. раздел «Использование при анализе изображений» в этой статье. [28]
Использование одного и того же названия для этих трех различных определений насыщенности приводит к некоторой путанице, поскольку три атрибута описывают существенно разные цветовые отношения; в HSV и HSI этот термин примерно соответствует психометрическому определению цветности цвета относительно его собственной светлоты, но в HSL он не близок к этому. Хуже того, слово насыщенность также часто используется для одного из измерений, которые мы называем цветностью выше ( C или C 2 ).
Все значения параметров, показанные ниже, даны как значения в интервале [0, 1] , за исключением значений для H и H 2 , которые находятся в интервале [0°, 360°) . [K]
Первоначальное назначение HSL и HSV и подобных моделей, а также их наиболее распространенное текущее применение, заключается в инструментах выбора цвета . В самом простом случае некоторые такие селекторы цветов предоставляют три ползунка, по одному для каждого атрибута. Однако большинство из них показывают двумерный срез модели вместе с ползунком, управляющим тем, какой конкретный срез отображается. Последний тип GUI демонстрирует большое разнообразие из-за выбора цилиндров, шестиугольных призм или конусов/биконусов, которые предлагают модели (см. диаграмму в верхней части страницы). Несколько селекторов цветов из 1990-х годов показаны справа, большинство из которых остались практически неизменными за прошедшее время: сегодня почти каждый селектор цветов на компьютере использует HSL или HSV, по крайней мере, в качестве опции. Некоторые более сложные варианты предназначены для выбора целых наборов цветов, основывая свои предложения совместимых цветов на отношениях HSL или HSV между ними. [M]
Большинство веб-приложений, которым требуется выбор цвета, также основывают свои инструменты на HSL или HSV, и для большинства основных веб- фреймворков существуют предварительно упакованные средства выбора цвета с открытым исходным кодом . Спецификация CSS 3 позволяет веб-авторам указывать цвета для своих страниц напрямую с помощью координат HSL. [N] [29]
HSL и HSV иногда используются для определения градиентов для визуализации данных , как в картах или медицинских изображениях. Например, популярная ГИС- программа ArcGIS исторически применяла настраиваемые градиенты на основе HSV к числовым географическим данным. [O]
Программное обеспечение для редактирования изображений также обычно включает инструменты для настройки цветов с учетом координат HSL или HSV или координат в модели на основе «интенсивности» или яркости, определенной выше. В частности, инструменты с парой ползунков «оттенок» и «насыщенность» являются обычным явлением, начиная с конца 1980-х годов, но также были реализованы различные более сложные цветовые инструменты. Например, просмотрщик изображений Unix и редактор цветов xv позволяли вращать и изменять размер шести определяемых пользователем диапазонов оттенка ( H ), включали подобный диску элемент управления для насыщенности ( S HSV ) и подобный кривым интерфейс для управления значением ( V ) – см. рис. 17. Редактор изображений Picture Window Pro включает инструмент «коррекции цвета», который обеспечивает сложное переназначение точек в плоскости оттенка/насыщенности относительно пространства HSL или HSV. [P]
Видеоредакторы также используют эти модели. Например, и Avid , и Final Cut Pro включают цветовые инструменты на основе HSL или аналогичной геометрии для использования при настройке цвета в видео. С помощью инструмента Avid пользователи выбирают вектор, щелкая точку в круге оттенка/насыщенности, чтобы сместить все цвета на определенном уровне яркости (тени, средние тона, блики) этим вектором.
Начиная с версии 4.0, режимы смешивания Adobe Photoshop "Luminosity", "Hue", "Saturation" и "Color" создают композитные слои, используя геометрию цвета luma/chroma/hue. Они широко копировались, но несколько имитаторов используют вместо этого геометрии HSL (например, PhotoImpact , Paint Shop Pro ) или HSV. [Q] [R]
HSL, HSV, HSI или родственные модели часто используются в компьютерном зрении и анализе изображений для обнаружения признаков или сегментации изображений . Приложения таких инструментов включают обнаружение объектов, например, в зрении робота ; распознавание объектов , например, лиц , текста или номерных знаков ; поиск изображений на основе контента ; и анализ медицинских изображений . [28]
В большинстве случаев алгоритмы компьютерного зрения, используемые на цветных изображениях, являются простыми расширениями алгоритмов, разработанных для изображений в оттенках серого , например, k-средних или нечеткой кластеризации цветов пикселей, или обнаружения контуров canny . В простейшем случае каждый цветовой компонент отдельно проходит через тот же алгоритм. Поэтому важно, чтобы интересующие особенности можно было различить в используемых цветовых измерениях. Поскольку компоненты R , G и B цвета объекта в цифровом изображении все коррелируют с количеством света, падающего на объект, и, следовательно, друг с другом, описания изображений с точки зрения этих компонентов затрудняют различение объектов. Описания с точки зрения оттенка/яркости/цветности или оттенка/яркости/насыщенности часто более уместны. [28]
Начиная с конца 1970-х годов, преобразования, такие как HSV или HSI, использовались в качестве компромисса между эффективностью сегментации и вычислительной сложностью. Их можно рассматривать как аналогичные по подходу и намерению нейронной обработке, используемой человеческим цветовым зрением, не соглашаясь в деталях: если целью является обнаружение объекта, грубое разделение оттенка, светлоты и цветности или насыщенности является эффективным, но нет особой причины строго имитировать реакцию человека на цвет. Магистерская диссертация Джона Кендера 1976 года предложила модель HSI. Охта и др. (1980) вместо этого использовали модель, состоящую из измерений, похожих на те, которые мы назвали I , α и β . В последние годы такие модели продолжают широко использоваться, поскольку их производительность выгодно отличается от более сложных моделей, а их вычислительная простота остается убедительной. [S] [28] [36] [37] [38]
Хотя HSL, HSV и родственные пространства служат достаточно хорошо, чтобы, например, выбрать один цвет, они игнорируют большую часть сложности внешнего вида цвета. По сути, они жертвуют перцепционной релевантностью ради скорости вычислений, со времен компьютерной истории (высокопроизводительные графические рабочие станции 1970-х или потребительские настольные компьютеры середины 1990-х), когда более сложные модели были бы слишком дорогими в вычислительном отношении. [T]
HSL и HSV — это простые преобразования RGB, которые сохраняют симметрию в кубе RGB, не связанную с человеческим восприятием, так что его углы R , G и B равноудалены от нейтральной оси и равномерно распределены вокруг нее. Если мы построим гамму RGB в более перцептуально однородном пространстве, таком как CIELAB (см. ниже), то сразу станет ясно, что основные цвета красного, зеленого и синего не имеют одинаковой яркости или цветности или равномерно распределенных оттенков. Кроме того, разные дисплеи RGB используют разные основные цвета и, следовательно, имеют разные гаммы. Поскольку HSL и HSV определяются исключительно со ссылкой на некоторое пространство RGB, они не являются абсолютными цветовыми пространствами : для точного указания цвета требуется сообщить не только значения HSL или HSV, но и характеристики пространства RGB, на котором они основаны, включая используемую гамма-коррекцию .
Если мы возьмем изображение и извлечем компоненты оттенка, насыщенности и яркости или значения, а затем сравним их с компонентами с тем же названием, как это определено учеными по цвету, мы можем быстро увидеть разницу, перцептивно. Например, изучите следующие изображения огнедышащего ( рис. 13 ). Оригинал находится в цветовом пространстве sRGB. CIELAB L * - это ахроматическая величина яркости, определенная CIE (зависящая исключительно от перцептивно ахроматической яркости Y , но не от смешанно-хроматических компонентов X или Z цветового пространства CIEXYZ, из которого получено само цветовое пространство sRGB), и очевидно, что это кажется похожим по перцептивной яркости на исходное цветное изображение. Luma примерно похожа, но несколько отличается при высокой цветности, где она больше всего отклоняется от зависимости исключительно от истинной ахроматической яркости ( Y или эквивалентно L *) и находится под влиянием колориметрической цветности ( x,y или эквивалентно a*,b* CIELAB). HSL L и HSV V , напротив, существенно отклоняются от воспринимаемой светлоты.
Хотя ни одно из измерений в этих пространствах не соответствует своим перцептуальным аналогам, значение HSV и насыщенность HSL являются особыми нарушителями. В HSV синий первичный и белый считаются имеющими одинаковое значение, хотя перцептивно синий основной цвет имеет где-то около 10% яркости белого (точная доля зависит от конкретных используемых основных цветов RGB). В HSL, смесь 100% красного, 100% зеленого, 90% синего – то есть очень светло-желтый – считается имеющим ту же насыщенность, что и зеленый основной цвет , хотя первый цвет почти не имеет хроматичности или насыщенности по общепринятым психометрическим определениям. Такие извращения заставили Синтию Брюэр, эксперта по выбору цветовой схемы для карт и информационных дисплеев, сказать Американской статистической ассоциации :
Информатика предлагает несколько более бедных родственников этих перцептивных пространств, которые также могут появиться в вашем программном интерфейсе, например, HSV и HLS. Это простые математические преобразования RGB, и они кажутся перцептивными системами, потому что используют терминологию оттенок–яркость/значение–насыщенность. Но присмотритесь повнимательнее; не обманывайтесь. Перцептивные цветовые измерения плохо масштабируются цветовыми спецификациями, которые предоставляются в этих и некоторых других системах. Например, насыщенность и яркость перепутаны, поэтому шкала насыщенности может также содержать широкий диапазон яркостей (например, она может прогрессировать от белого до зеленого, который является комбинацией как яркости, так и насыщенности). Аналогично, оттенок и яркость перепутаны, поэтому, например, насыщенный желтый и насыщенный синий могут быть обозначены как одна и та же «яркость», но иметь большие различия в воспринимаемой яркости. Эти недостатки затрудняют использование систем для управления внешним видом цветовой схемы систематическим образом. Если для достижения желаемого эффекта требуется много настроек, система не дает особых преимуществ по сравнению с борьбой с необработанными спецификациями в RGB или CMY. [39]
Если эти проблемы делают HSL и HSV проблематичными для выбора цветов или цветовых схем, они делают их намного хуже для настройки изображения. HSL и HSV, как упоминал Брюэр, смешивают перцептивные атрибуты создания цвета, так что изменение любого измерения приводит к неравномерным изменениям во всех трех перцептивных измерениях и искажает все цветовые отношения в изображении. Например, поворот оттенка чистого темно-синего к зеленому также уменьшит его воспринимаемую цветность и увеличит воспринимаемую светлоту (последняя будет серее и светлее), но то же самое вращение оттенка окажет противоположное влияние на светлоту и цветность более светлого голубовато-зеленого цвета – к (последний более красочный и немного темнее). В примере ниже ( рис. 21 ) изображение (a) является исходной фотографией зеленой черепахи . На изображении (b) мы повернули оттенок ( H ) каждого цвета на −30° , сохранив при этом значение HSV и насыщенность или яркость и насыщенность HSL постоянными. На изображении справа (c) мы делаем такой же поворот для оттенка HSL/HSV каждого цвета, но затем мы заставляем яркость CIELAB ( L *, приличное приближение воспринимаемой яркости) оставаться постоянной. Обратите внимание, как смещенная по тону средняя версия без такой коррекции резко меняет воспринимаемые отношения яркости между цветами на изображении. В частности, панцирь черепахи намного темнее и имеет меньший контраст, а вода на заднем плане намного светлее. Изображение (d) использует CIELAB для смещения оттенка; разница с (c) демонстрирует ошибки в оттенке и насыщенности.
Поскольку оттенок является круговой величиной, представленной численно с разрывом на 360°, его трудно использовать в статистических вычислениях или количественных сравнениях: анализ требует использования круговой статистики . [40] Кроме того, оттенок определяется кусочно, в 60° кусках, где отношение светлоты, значения и цветности к R , G и B зависит от рассматриваемого куска оттенка. Это определение вводит разрывы, углы, которые можно ясно увидеть в горизонтальных срезах HSL или HSV. [41]
Чарльз Пойнтон, эксперт по цифровому видео, перечисляет вышеуказанные проблемы с HSL и HSV в своем разделе «Часто задаваемые вопросы о цвете» и приходит к выводу, что:
HSB и HLS были разработаны для указания числового оттенка, насыщенности и яркости (или оттенка, светлоты и насыщенности) в эпоху, когда пользователям приходилось указывать цвета численно. Обычные формулировки HSB и HLS несовершенны в отношении свойств цветового зрения. Теперь, когда пользователи могут выбирать цвета визуально или выбирать цвета, связанные с другими носителями (например, PANTONE ), или использовать основанные на восприятии системы, такие как L*u*v* и L*a*b* , следует отказаться от HSB и HLS. [42]
Создатели HSL и HSV были далеко не первыми, кто представлял себе цвета, вписывающиеся в конические или сферические формы, с нейтральными цветами, идущими от черного к белому по центральной оси, и оттенками, соответствующими углам вокруг этой оси. Подобные расположения восходят к 18 веку и продолжают развиваться в самых современных и научных моделях.
Чтобы преобразовать из HSL или HSV в RGB, мы по сути инвертируем шаги, перечисленные выше (как и прежде, R , G , B ∈ [0, 1] ). Сначала мы вычисляем цветность, умножая насыщенность на максимальную цветность для заданной яркости или значения. Затем мы находим точку на одной из трех нижних граней куба RGB, которая имеет тот же оттенок и цветность, что и наш цвет (и, следовательно, проецируется на ту же точку в плоскости цветности). Наконец, мы добавляем равные количества R , G , и B , чтобы достичь правильной яркости или значения. [G]
Учитывая цвет с оттенком H ∈ [0°, 360°) , насыщенностью S L ∈ [0, 1] и яркостью L ∈ [0, 1] , сначала находим цветность:
Затем мы можем найти точку ( R 1 , G 1 , B 1 ) вдоль трех нижних граней куба RGB с тем же оттенком и насыщенностью, что и наш цвет (используя промежуточное значение X для второго по величине компонента этого цвета):
В приведенном выше уравнении обозначение относится к остатку от евклидова деления на 2. не обязательно является целым числом.
Когда — целое число, «соседняя» формула даст тот же результат, что и или , в зависимости от ситуации.
Наконец, мы можем найти R , G и B , добавив одинаковое количество к каждому компоненту, чтобы добиться соответствия яркости:
Многоугольные кусочные функции можно несколько упростить, грамотно используя минимальные и максимальные значения, а также операцию остатка.
Для заданного цвета с оттенком , насыщенностью и яркостью сначала определим функцию:
где и:
И выходные значения R,G,B (из ) следующие:
Вышеуказанные альтернативные формулы допускают более короткие реализации. В приведенных выше формулах операция также возвращает дробную часть модуля, например , и .
Базовая форма строится следующим образом: это «треугольник», для которого значения, большие или равные −1, начинаются с k=2 и заканчиваются при k=10, а самая высокая точка находится при k=6. Затем на мы меняем значения, большие 1, на равные 1. Затем на мы меняем значения, меньшие −1, на равные −1. В этой точке мы получаем что-то похожее на красную форму с рис. 24 после вертикального переворота (где максимум равен 1, а минимум равен −1). Функции R,G,B используют эту форму, преобразованную следующим образом: сдвинутую по модулю на (на ) (по-разному для R,G,B), масштабированную на (на ) и сдвинутую на (на ).
Мы наблюдаем следующие свойства формы (рис. 24 может помочь получить о них интуитивное представление):
Учитывая цвет HSV с оттенком H ∈ [0°, 360°) , насыщенностью S V ∈ [0, 1] и значением V ∈ [0, 1] , мы можем использовать ту же стратегию. Сначала мы находим цветность:
Затем мы снова можем найти точку ( R 1 , G 1 , B 1 ) вдоль трех нижних граней куба RGB с тем же оттенком и насыщенностью, что и наш цвет (используя промежуточное значение X для второго по величине компонента этого цвета):
Как и прежде, когда — целое число, «соседние» формулы дадут тот же результат.
Наконец, мы можем найти R , G и B , добавив одинаковое количество к каждому компоненту, чтобы получить соответствующее значение:
Для данного цвета с оттенком , насыщенностью и значением сначала определим функцию:
где и:
И выходные значения R,G,B (из ) следующие:
Вышеуказанные альтернативные эквивалентные формулы допускают более короткую реализацию. В приведенных выше формулах возвращается также дробная часть модуля, например, формула . Значения . Базовая форма
построен следующим образом: это «треугольник», для которого неотрицательные значения начинаются с k=0, наивысшая точка при k=2 и «заканчиваются» при k=4, затем мы меняем значения больше единицы на единицу на , затем меняем отрицательные значения на ноль на – и мы получаем (для ) что-то похожее на зеленую фигуру из рис. 24 (максимальное значение которой равно 1, а минимальное – 0). Функции R,G,B используют эту фигуру, преобразованную следующим образом: сдвинутую по модулю на (на ) (по-разному для R,G,B), масштабированную на (на ) и сдвинутую на (на ). Мы наблюдаем следующие свойства фигуры (рис. 24 может помочь получить интуитивное представление об этом):
Учитывая цвет HSI с оттенком H ∈ [0°, 360°) , насыщенностью S I ∈ [0, 1] и интенсивностью I ∈ [0, 1] , мы можем использовать ту же стратегию, но в немного другом порядке:
Где цветность?
Затем мы снова можем найти точку ( R 1 , G 1 , B 1 ) вдоль трех нижних граней куба RGB с тем же оттенком и насыщенностью, что и наш цвет (используя промежуточное значение X для второго по величине компонента этого цвета):
Перекрытие (когда — целое число) происходит, поскольку два способа вычисления значения эквивалентны: или , в зависимости от ситуации.
Наконец, мы можем найти R , G и B , добавив одинаковое количество к каждому компоненту, чтобы добиться соответствия яркости:
Учитывая цвет с оттенком H ∈ [0°, 360°) , цветностью C ∈ [0, 1] и яркостью Y ′ 601 ∈ [0, 1] , [U], мы можем снова использовать ту же стратегию. Поскольку у нас уже есть H и C , мы можем сразу найти нашу точку ( R 1 , G 1 , B 1 ) вдоль нижних трех граней куба RGB:
Перекрытие (когда — целое число) происходит, поскольку два способа вычисления значения эквивалентны: или , в зависимости от ситуации.
Затем мы можем найти R , G и B, добавив одинаковое количество к каждому компоненту, чтобы получить соответствие яркости:
Дан цвет с оттенком , насыщенностью и значением ,
Если задан цвет с оттенком , насыщенностью и яркостью ,
Это повторение предыдущего преобразования.
Значение должно быть в диапазоне .
С максимальным компонентом (т.е. значением)
и минимальный компонент
диапазон (т.е. цветность)
и средний диапазон (т.е. легкость)
получаем общий оттенок:
и отчетливые насыщенности:
Наведите курсор на образцы ниже, чтобы увидеть значения R , G и B для каждого образца во всплывающей подсказке .
{{cite book}}
: |work=
проигнорировано ( помощь )