AHSL

Цветовая модель AHSL

AHSL или AHLS (от англ. Hue, Saturation, Lightness (Intensity)) — цветовая модель, в которой цветовыми координатами являются тон, насыщенность и светлота. Следует отметить, что HSV, HSL и AHSL — разные цветовые модели. AHSL — альтернативная модель HSL, принципиальное различие заключается в определении характеристики Saturation (насыщенность).

  • Alternative — альтернативная версия цветовой модели HSL.
  • Hue — оттенок от 0° до 360° (красный, оранжевый, жёлтый, зелёный, голубой, синий, фиолетовый). 0° и 360° соответствуют красному цвету #f00.
  • Saturation — насыщенность цвета от 0 до 255. Практически характеристика S соответствует «уровню прозрачности» слоя с данным цветом (заданным оттенком H и светлотой L), когда под ним находится слой с соответствующим заданному чёрно-белым цветом, который определяется как присваивание каналам RGB среднеарифметического значения. Например для цвета #f00 (R:255 G:0 b:0) будет соответствовать чёрно-белый цвет #555555 (R:85 G:85 B:85), а для #ff0 (R:255 G:255 B:0) — #aaaaaa (R:170 G:170 B:170).
  • Lightness — светлота от −100 до 100. Значению −100 соответствует чёрный цвет, а значению 100 — белый. Соответствует уровню прозрачности белого (если L>0) или чёрного (если L<0) цвета в процентах, «находящегося над заданным».

Конвертация

из RGB в AHSL

H = { 0 if  M A X = M I N 60 × G B M A X M I N + 0 , if  M A X = R and  G B 60 × G B M A X M I N + 360 , if  M A X = R and  G < B 60 × B R M A X M I N + 120 , if  M A X = G 60 × R G M A X M I N + 240 , if  M A X = B {\displaystyle H={\begin{cases}0&{\mbox{if }}MAX=MIN\\60^{\circ }\times {\frac {G-B}{MAX-MIN}}+0^{\circ },&{\mbox{if }}MAX=R\\&{\mbox{and }}G\geq B\\60^{\circ }\times {\frac {G-B}{MAX-MIN}}+360^{\circ },&{\mbox{if }}MAX=R\\&{\mbox{and }}G<B\\60^{\circ }\times {\frac {B-R}{MAX-MIN}}+120^{\circ },&{\mbox{if }}MAX=G\\60^{\circ }\times {\frac {R-G}{MAX-MIN}}+240^{\circ },&{\mbox{if }}MAX=B\end{cases}}}
G R A Y = R + G + B 3 {\displaystyle GRAY={\frac {R+G+B}{3}}}
R 0 = 0 ,   G 0 = 0 ,   B 0 = 0 {\displaystyle R_{0}=0,~G_{0}=0,~B_{0}=0}
if ( H >= 0  and  H <= 60 R 0 = 255 ,   G 0 = 4.25 × H {\displaystyle {\mbox{if (}}H>=0{\mbox{ and }}H<=60{\mbox{) }}R_{0}=255,~G_{0}=4.25\times H}
if ( H > 60  and  H <= 120 G 0 = 255 ,   R 0 = 255 4.25 × ( H 60 ) {\displaystyle {\mbox{if (}}H>60{\mbox{ and }}H<=120{\mbox{) }}G_{0}=255,~R_{0}=255-4.25\times (H-60)}
if ( H > 120  and  H <= 180 G 0 = 255 ,   B 0 = 4.25 × ( H 120 ) {\displaystyle {\mbox{if (}}H>120{\mbox{ and }}H<=180{\mbox{) }}G_{0}=255,~B_{0}=4.25\times (H-120)}
if ( H > 180  and  H <= 240 B 0 = 255 ,   G 0 = 255 4.25 × ( H 180 ) {\displaystyle {\mbox{if (}}H>180{\mbox{ and }}H<=240{\mbox{) }}B_{0}=255,~G_{0}=255-4.25\times (H-180)}
if ( H > 240  and  H <= 300 B 0 = 255 ,   R 0 = 4.25 × ( H 240 ) {\displaystyle {\mbox{if (}}H>240{\mbox{ and }}H<=300{\mbox{) }}B_{0}=255,~R_{0}=4.25\times (H-240)}
if ( H > 300  and  H <= 360 R 0 = 255 ,   B 0 = 255 4.25 × ( H 300 ) {\displaystyle {\mbox{if (}}H>300{\mbox{ and }}H<=360{\mbox{) }}R_{0}=255,~B_{0}=255-4.25\times (H-300)}
G R A Y 0 = R 0 + G 0 + B 0 3 {\displaystyle GRAY_{0}={\frac {R_{0}+G_{0}+B_{0}}{3}}}
L = { 0 if  G R A Y = G R A Y 0 100 × ( G R A Y G R A Y 0 ) 255 G R A Y 0 , if  G R A Y > G R A Y 0 100 × ( G R A Y G R A Y 0 ) G R A Y 0 , if  G R A Y < G R A Y 0 {\displaystyle L={\begin{cases}0&{\mbox{if }}GRAY=GRAY_{0}\\{\frac {100\times (GRAY-GRAY_{0})}{255-GRAY_{0}}},&{\mbox{if }}GRAY>GRAY_{0}\\{\frac {100\times (GRAY-GRAY_{0})}{GRAY_{0}}},&{\mbox{if }}GRAY<GRAY_{0}\\\end{cases}}}
if ( L > 0 R 0 = R 0 + L × ( 255 R 0 ) 100 {\displaystyle {\mbox{if (}}L>0{\mbox{) }}R_{0}=R_{0}+{\frac {L\times (255-R_{0})}{100}}}
if ( L < 0 R 0 = R 0 + L × R 0 100 {\displaystyle {\mbox{if (}}L<0{\mbox{) }}R_{0}=R_{0}+{\frac {L\times R_{0}}{100}}}
S = { 0 , if  R = G R A Y 255 × | R G R A Y | | R 0 G R A Y | , if  R G R A Y {\displaystyle S={\begin{cases}0,&{\mbox{if }}R=GRAY\\{\frac {255\times \left|R-GRAY\right|}{\left|R_{0}-GRAY\right|}},&{\mbox{if }}R\neq GRAY\\\end{cases}}}

из AHSL в RGB

R = 0 ,   G = 0 ,   B = 0 {\displaystyle R=0,~G=0,~B=0}
if ( H >= 0  and  H <= 60 R = 255 ,   G = 4.25 × H {\displaystyle {\mbox{if (}}H>=0{\mbox{ and }}H<=60{\mbox{) }}R=255,~G=4.25\times H}
if ( H > 60  and  H <= 120 G = 255 ,   R = 255 4.25 × ( H 60 ) {\displaystyle {\mbox{if (}}H>60{\mbox{ and }}H<=120{\mbox{) }}G=255,~R=255-4.25\times (H-60)}
if ( H > 120  and  H <= 180 G = 255 ,   B = 4.25 × ( H 120 ) {\displaystyle {\mbox{if (}}H>120{\mbox{ and }}H<=180{\mbox{) }}G=255,~B=4.25\times (H-120)}
if ( H > 180  and  H <= 240 B = 255 ,   G = 255 4.25 × ( H 180 ) {\displaystyle {\mbox{if (}}H>180{\mbox{ and }}H<=240{\mbox{) }}B=255,~G=255-4.25\times (H-180)}
if ( H > 240  and  H <= 300 B = 255 ,   R = 4.25 × ( H 240 ) {\displaystyle {\mbox{if (}}H>240{\mbox{ and }}H<=300{\mbox{) }}B=255,~R=4.25\times (H-240)}
if ( H > 300  and  H <= 360 R = 255 ,   B = 255 4.25 × ( H 300 ) {\displaystyle {\mbox{if (}}H>300{\mbox{ and }}H<=360{\mbox{) }}R=255,~B=255-4.25\times (H-300)}
if  L > 0 { R = R + L × ( 255 R ) 100 G = G + L × ( 255 G ) 100 B = B + L × ( 255 B ) 100 {\displaystyle {\mbox{if }}L>0{\mbox{, }}{\begin{cases}R=R+{\frac {L\times (255-R)}{100}}\\G=G+{\frac {L\times (255-G)}{100}}\\B=B+{\frac {L\times (255-B)}{100}}\\\end{cases}}}
if  L < 0 { R = R + L × R 100 G = G + L × G 100 B = B + L × B 100 {\displaystyle {\mbox{if }}L<0{\mbox{, }}{\begin{cases}R=R+{\frac {L\times R}{100}}\\G=G+{\frac {L\times G}{100}}\\B=B+{\frac {L\times B}{100}}\\\end{cases}}}
G R A Y = R + G + B 3 {\displaystyle GRAY={\frac {R+G+B}{3}}}
R = G R A Y + S × ( R G R A Y ) 255 {\displaystyle R=GRAY+{\frac {S\times (R-GRAY)}{255}}}
G = G R A Y + S × ( G G R A Y ) 255 {\displaystyle G=GRAY+{\frac {S\times (G-GRAY)}{255}}}
B = G R A Y + S × ( B G R A Y ) 255 {\displaystyle B=GRAY+{\frac {S\times (B-GRAY)}{255}}}

Отличие AHSL от HSL

В цветовой модели AHSL каждому цвету соответствует «свой» чёрно-белый цвет, который определяется среднеарифметическими значениями каналов RGB. Когда в модели HSL цвету любого тона с одной светлотой соответствует один и тот же чёрно-белый цвет. Таким образом, чёрно-белое изображение, полученное из цветного путём изменения характеристики отвечающей за насыщенность в модели AHSL, будет «правильным» чёрно-белым изображением, в отличие от изображения полученного тем же способом с использованием модели HSL.

Получение цвета заданного моделью AHSL

Рассмотрим получение цвета, заданного его характеристиками по модели AHSL, в графическом редакторе. У нас есть тон цвета (H), насыщенность (S) и светлота (L). Создадим 3 слоя, которые будут отвечать за характеристики H, L, S. Средний слой зальём чистым цветом, оттенок которого равен H (H=0 — #ff0000; H=60 — #ffff00; H=120 — #00ff00; H=180 — #00ffff; H=240 — #0000ff; H=300 — #ff00ff; H=360 — #ff0000). Если L>0 верхний слой заливаем белым цветом (#ffffff), если L<0 — чёрным (#000000), если L=0 — верхний слой можно оставить пустым. Прозрачность верхнего слоя устанавливаем соответственно абсолютному значению L, считая что |L| - прозрачность верхнего слоя заданная в процентах. Теперь объединяем верхний и средний слои в один. Определяем получившийся цвет и рассчитываем соответствующий ему чёрно-белый: каналам RGB задаём их среднеарифметическое значение (например для красного цвета #ff0000 соответствующий чёрно-белый R:85; G:85; B:85). Нижний слой заливаем чёрно-белым цветом. Для верхнего слоя устанавливаем прозрачность равную характеристики S (насыщенность), считаем что S=255 это полностью непрозрачный слой, S=0 — полностью прозрачный. Объединив слои, мы получим заданный нам цвет по AHSL.

Преимущества

  • Цветовая модель AHSL близка к человеческому восприятию цветов. Характеристики модели AHSL дают явное представление о заданном цвете и отвечают на вопросы: «Какой это цвет?», «На сколько он насыщен?», «На сколько он светлый или тёмный?». В отличие от модели HSL, характеристика S модели AHSL даёт более корректное представление о насыщенности цвета.
  • AHSL предоставляет возможность изменения оттенка, насыщенности, яркости путём непосредственного изменения соответствующих характеристик H,S,L

Недостатки

  • Каждому цвету, с насыщенностью 0 соответствует 360 или более различных способов представления данного цвета.

Применение

Благодаря разложению цвета на его основные характеристики (оттенок, насыщенность, светлота) цветовую модель AHSL удобно использовать в графических редакторах при коррекции оттенка, насыщенности, яркости и контрастности изображения.

См. также

Ссылки

  • Демонстрация AHSL-модели цветов
Перейти к шаблону «Цветовые модели»

Цветовые каталоги: