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). [Б]
Большинство телевизоров, компьютерных дисплеев и проекторов воспроизводят цвета, комбинируя красный, зеленый и синий свет различной интенсивности — так называемые аддитивные основные цвета RGB . Получающиеся смеси в цветовом пространстве RGB могут воспроизводить самые разные цвета (называемые гаммой ); однако взаимосвязь между составляющими количествами красного, зеленого и синего света и полученным цветом неинтуитивна, особенно для неопытных пользователей, а также для пользователей, знакомых с субтрактивным смешением красок или традиционными моделями художников, основанными на оттенках и оттенках ( рис. 4 ). Более того, ни аддитивные, ни субтрактивные цветовые модели не определяют цветовые отношения так же, как это делает человеческий глаз . [С]
Например, представьте, что у нас есть RGB-дисплей, цвет которого контролируется тремя ползунками в диапазоне от 0 до 255 , один из которых управляет интенсивностью каждого из основных цветов: красного, зеленого и синего. Если мы начнем с относительно яркого оранжевого цвета , со значениями sRGB R = 217 , G = 118 , B = 33 и хотите уменьшить его красочность вдвое до менее насыщенного оранжевого цвета. , нам нужно будет перетащить ползунки, чтобы уменьшить R на 31, увеличить G на 24 и увеличить B на 59, как показано ниже.
Начиная с 1950-х годов в цветном телевизионном вещании использовалась совместимая цветовая система, в которой сигналы « яркости » и « цветности » кодировались отдельно, так что существующие немодифицированные черно-белые телевизоры могли принимать цветные передачи и показывать монохромное изображение. [9]
В попытке внедрить более традиционные и интуитивно понятные модели смешивания цветов пионеры компьютерной графики из PARC и NYIT в середине 1970-х годов представили модель HSV для технологии компьютерного дисплея, формально описанную Элви Рэем Смитом [10] в августовском выпуске журнала Computer за 1978 год. Графика . В том же выпуске Джоблав и Гринберг [11] описали модель HSL, размеры которой они обозначили оттенком , относительной цветностью и интенсивностью , и сравнили ее с HSV ( рис. 1 ). Их модель была основана больше на том, как цвета организованы и концептуализированы в человеческом зрении с точки зрения других цветообразующих атрибутов, таких как оттенок, яркость и цветность; а также традиционные методы смешивания цветов – например, в живописи – которые включают смешивание ярких пигментов с черным или белым для получения более светлых, темных или менее красочных цветов.
В следующем, 1979 году, на выставке SIGGRAPH компания Tektronix представила графические терминалы, использующие HSL для обозначения цвета, и Комитет по стандартам компьютерной графики рекомендовал это в своем годовом отчете о состоянии ( рис. 7 ). Эти модели были полезны не только потому, что они были более интуитивными, чем необработанные значения 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]
В каждой из наших моделей мы рассчитываем как оттенок , так и то, что в этой статье будет называться цветностью (по Джоблаву и Гринбергу (1978)), одинаковым способом – то есть оттенок цвета имеет одинаковые числовые значения во всех этих моделях. как и его цветность. Если мы возьмем наш наклоненный куб RGB и спроецируем его на « плоскость цветности » , перпендикулярную нейтральной оси, наша проекция примет форму шестиугольника с красным, желтым, зеленым, голубым, синим и пурпурным в его углах ( рис. 9 ). Оттенок — это примерно угол вектора к точке проекции, при этом красный равен 0 °, а цветность — это примерно расстояние точки от начала координат. [Ф] [Г]
Точнее, и оттенок, и цветность в этой модели определяются относительно шестиугольной формы проекции. Цветность — это пропорция расстояния от начала координат до края шестиугольника. В нижней части соседней диаграммы это соотношение длин OP / OP ′ или, альтернативно, соотношение радиусов двух шестиугольников. Это соотношение представляет собой разницу между наибольшим и наименьшим значениями R , G или B в цвете. Чтобы упростить написание наших определений, мы определим эти максимальные, минимальные значения и значения компонентов цветности как M , m и C соответственно. [ЧАС]
Чтобы понять, почему цветность можно записать как 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°) . [К]
Первоначальное назначение HSL, HSV и подобных моделей, а также их наиболее распространенное в настоящее время применение — инструменты выбора цвета . В простейшем случае некоторые такие средства выбора цвета предоставляют три ползунка, по одному для каждого атрибута. Однако большинство из них отображают двумерный срез модели вместе с ползунком, управляющим отображением конкретного среза. Последний тип графического пользовательского интерфейса демонстрирует большое разнообразие благодаря выбору цилиндров, шестиугольных призм или конусов/биконусов, которые предлагают модели (см. диаграмму вверху страницы). Справа показаны несколько средств выбора цвета 1990-х годов, большинство из которых за это время практически не изменились: сегодня почти каждый компьютерный специалист по выбору цвета использует HSL или HSV, по крайней мере, в качестве опции. Некоторые более сложные варианты предназначены для выбора целых наборов цветов, основываясь на предложениях совместимых цветов на отношениях HSL или HSV между ними. [М]
Большинство веб-приложений, нуждающихся в выборе цвета, также основывают свои инструменты на HSL или HSV, а для большинства основных веб-интерфейсных платформ существуют предварительно упакованные средства выбора цвета с открытым исходным кодом . Спецификация CSS 3 позволяет веб-авторам указывать цвета для своих страниц непосредственно с помощью координат HSL. [Н] [29]
HSL и HSV иногда используются для определения градиентов для визуализации данных , например, на картах или медицинских изображениях. Например, популярная ГИС- программа ArcGIS исторически применяла настраиваемые градиенты на основе HSV к числовым географическим данным. [О]
Программное обеспечение для редактирования изображений также обычно включает в себя инструменты для настройки цветов со ссылкой на координаты HSL или HSV или на координаты в модели на основе «интенсивности» или яркости, определенной выше. В частности, инструменты с парой ползунков «оттенок» и «насыщенность» являются обычным явлением, начиная, по крайней мере, с конца 1980-х годов, но также были реализованы различные более сложные инструменты цвета. Например, программа просмотра изображений Unix и редактор цвета xv позволяли вращать и изменять размер шести определяемых пользователем диапазонов оттенков ( H ), включали циферблатный элемент управления насыщенностью ( S HSV ) и интерфейс в виде кривых для управления значением ( В ) – см. рис. 17. Редактор изображений Picture Window Pro включает инструмент «цветокоррекции», который обеспечивает сложное переназначение точек в плоскости оттенка/насыщенности относительно пространства HSL или HSV. [П]
Видеоредакторы также используют эти модели. Например, и Avid , и Final Cut Pro включают инструменты цвета на основе HSL или аналогичной геометрии для настройки цвета в видео. С помощью инструмента Avid пользователи выбирают вектор, щелкая точку внутри круга оттенка/насыщенности, чтобы сместить все цвета на определенный уровень яркости (тени, средние тона, светлые участки) на этот вектор.
Начиная с версии 4.0, режимы наложения слоев Adobe Photoshop «Яркость», «Оттенок», «Насыщенность» и «Цвет» составляют составные слои с использованием цветовой геометрии яркости/цветности/оттенка. Они широко копировались, но некоторые имитаторы вместо этого используют геометрию HSL (например, PhotoImpact , Paint Shop Pro ) или HSV. [В] [Р]
HSL, HSV, HSI или родственные модели часто используются в компьютерном зрении и анализе изображений для обнаружения признаков или сегментации изображений . Приложения таких инструментов включают обнаружение объектов, например, в зрении робота ; распознавание объектов , например лиц , текста или номерных знаков ; поиск изображений на основе контента ; и анализ медицинских изображений . [28]
По большей части алгоритмы компьютерного зрения, используемые для цветных изображений, представляют собой прямое расширение алгоритмов, разработанных для изображений в оттенках серого , например, k-средних или нечеткой кластеризации цветов пикселей или обнаружения скрытых границ . В самом простом случае каждый компонент цвета отдельно проходит через один и тот же алгоритм. Поэтому важно, чтобы интересующие особенности можно было различить по используемым цветовым размерам. Поскольку компоненты R , G и B цвета объекта в цифровом изображении коррелируют с количеством света, падающего на объект, и, следовательно, друг с другом, описания изображения с точки зрения этих компонентов затрудняют различение объектов. Описания с точки зрения оттенка/яркости/цветности или оттенка/яркости/насыщенности часто более уместны. [28]
Начиная с конца 1970-х годов такие преобразования, как HSV или HSI, использовались как компромисс между эффективностью сегментации и сложностью вычислений. Их можно рассматривать как схожие по подходу и назначению с нейронной обработкой, используемой человеческим цветовым зрением, не сходясь в деталях: если целью является обнаружение объекта, грубое разделение оттенка, яркости и цветности или насыщенности эффективно, но нет особая причина строго имитировать цветовую реакцию человека. В магистерской диссертации Джона Кендера 1976 года была предложена модель HSI. Охта и др. (1980) вместо этого использовали модель, состоящую из измерений, подобных тем, которые мы назвали I , α и β . В последние годы такие модели продолжают широко использоваться, поскольку их производительность выгодно отличается от более сложных моделей, а их вычислительная простота остается привлекательной. [С] [28] [36] [37] [38]
Хотя HSL, HSV и связанные с ними пространства служат достаточно хорошо, например, для выбора одного цвета, они игнорируют большую часть сложности внешнего вида цвета. По сути, они обменивают актуальность восприятия на скорость вычислений, начиная с того периода в истории вычислений (высокопроизводительные графические рабочие станции 1970-х годов или потребительские настольные компьютеры середины 1990-х годов), когда более сложные модели были бы слишком дорогими в вычислительном отношении. [Т]
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), и она проста что по воспринимаемой легкости оно похоже на исходное цветное изображение. Яркость примерно похожа, но несколько отличается при высокой цветности, где она больше всего отклоняется от зависимости исключительно от истинной ахроматической яркости ( Y или, что эквивалентно, L *) и находится под влиянием колориметрической цветности ( x,y или, что эквивалентно, a*, б* CIELAB). HSL L и HSV V , напротив, существенно расходятся с перцептивной легкостью.
Хотя ни одно из измерений в этих пространствах не соответствует своим перцептивным аналогам, ценность HSV и насыщенность HSL являются особыми нарушениями. При ВПГ синяя первичная и белый считаются имеющими одно и то же значение, хотя с точки зрения восприятия синий основной цвет имеет где-то около 10% яркости белого (точная доля зависит от конкретных используемых основных цветов RGB). В HSL смесь 100% красного, 100% зеленого и 90% синего, то есть очень светло-желтого цвета. – считается имеющим ту же насыщенность, что и основной зеленый цвет , хотя первый цвет почти не имеет цветности или насыщенности по общепринятым психометрическим определениям. Подобные извращения побудили Синтию Брюэр, эксперта по выбору цветовой схемы для карт и информационных дисплеев, сообщить Американской статистической ассоциации :
Информатика предлагает несколько более бедных родственников этих пространств восприятия, которые также могут появиться в интерфейсе вашего программного обеспечения, например HSV и HLS. Это простые математические преобразования RGB, и они кажутся системами восприятия, поскольку используют терминологию оттенка-яркости/значения-насыщенности. Но посмотрите внимательно; не дайте себя обмануть. Перцептивные цветовые измерения плохо масштабируются цветовыми спецификациями, представленными в этих и некоторых других системах. Например, насыщенность и яркость путаются, поэтому шкала насыщенности может также содержать широкий диапазон значений яркости (например, она может прогрессировать от белого до зеленого, что представляет собой комбинацию яркости и насыщенности). Аналогично, оттенок и яркость путаются, так, например, насыщенный желтый и насыщенный синий могут обозначаться как одна и та же «светота», но имеют большие различия в воспринимаемой легкости. Эти недостатки затрудняют использование систем для систематического управления внешним видом цветовой схемы. Если для достижения желаемого эффекта требуется значительная настройка, система предлагает мало преимуществ по сравнению с необработанными спецификациями в RGB или CMY. [39]
Если эти проблемы делают HSL и HSV проблематичными для выбора цветов или цветовых схем, они значительно ухудшают их настройку изображения. HSL и HSV, как упомянул Брюэр, смешивают перцептивные атрибуты формирования цвета, так что изменение любого измерения приводит к неравномерным изменениям во всех трех перцептивных измерениях и искажает все цветовые отношения в изображении. Например, вращение оттенка чистого темно-синего цвета. в сторону зеленого также уменьшит воспринимаемую цветность и увеличит воспринимаемую яркость (последний становится более серым и светлым), но то же вращение оттенка будет иметь противоположное влияние на яркость и насыщенность более светлого голубовато-зеленого цвета – к (последний более красочный и немного темнее). В примере ниже ( рис. 21 ) изображение (а) — это оригинальная фотография зеленой черепахи . На изображении (b) мы повернули оттенок ( H ) каждого цвета на -30° , сохранив при этом значение HSV и насыщенность или яркость и насыщенность HSL постоянными. На изображении справа (c) мы делаем такое же вращение для оттенка HSL/HSV каждого цвета, но затем заставляем яркость CIELAB ( L *, приличное приближение воспринимаемой светлоты) оставаться постоянной. Обратите внимание, как средняя версия со смещением оттенка без такой коррекции резко меняет воспринимаемые отношения яркости между цветами на изображении. В частности, панцирь черепахи намного темнее и менее контрастен, а фоновая вода намного светлее. Изображение (d) использует CIELAB для изменения оттенка; отличие от (c) демонстрирует ошибки в оттенке и насыщенности.
Поскольку оттенок представляет собой круговую величину, представленную численно с разрывом в 360°, его трудно использовать в статистических вычислениях или количественных сравнениях: анализ требует использования круговой статистики . [40] Кроме того, оттенок определяется кусками, частями по 60°, где отношение яркости, значения и цветности к R , G и B зависит от рассматриваемого фрагмента оттенка. Это определение вводит разрывы, углы, которые можно ясно увидеть на горизонтальных срезах HSL или HSV. [41]
Чарльз Пойнтон, эксперт по цифровому видео, перечисляет вышеупомянутые проблемы с HSL и HSV в своем FAQ по цвету и приходит к выводу, что:
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 , чтобы достичь нужной яркости или значения. [Г]
Учитывая цвет с оттенком H ∈ [0°, 360°) , насыщенностью SL ∈ [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 , мы можем сразу найти нашу точку ( R1 , G1 , B1 ) вдоль трех нижних граней куба RGB:
Перекрытие (когда является целым числом) происходит потому, что два способа вычисления значения эквивалентны: или , в зависимости от ситуации.
Затем мы можем найти R , G и B , добавив одинаковое количество к каждому компоненту, чтобы соответствовать яркости:
Учитывая цвет с оттенком , насыщенностью и значением ,
Учитывая цвет с оттенком , насыщенностью и яркостью ,
Это повторение предыдущего преобразования.
Значение должно находиться в диапазоне .
С максимальным компонентом (т.е. значением)
и минимальный компонент
диапазон (т.е. цветность)
и средний диапазон (т.е. легкость)
мы получаем общий оттенок:
и отчетливые насыщенности:
Наведите указатель мыши на образцы ниже, чтобы увидеть значения R , G и B для каждого образца во всплывающей подсказке .
{{cite book}}
: |work=
игнорируется ( помощь )