Способен ли человеческий глаз в монохроматическом спектре различать светлые цвета точно так же, как и более темные? Я имею в виду, действительно ли существует линейная зависимость между свойством Lightness в цветовой модели HSL и воспринимаемой яркостью?
Нет, ось L в цветовом пространстве HSL на самом деле не соответствует яркости , воспринимаемой человеческим глазом, за исключением самого грубого смысла, что для заданных значений компонентов H и S увеличение L приводит к увеличению воспринимаемой яркости. .
Компонент L стандартного цветового пространства HSL просто вычисляется как среднее значение самого низкого и самого высокого компонента RGB цвета (в зависимости от используемого цветового пространства RGB ):
Одно только это определение должно сделать очевидным, что значение L не может соответствовать воспринимаемой яркости, поскольку оно полностью игнорирует средний из трех каналов RGB. Таким образом, цвет ( R =0, G =0, B =1), т.е. чистый , имеет точно такое же значение L (0,5), что и цвет ( R =0, G =1, B =1), т.е. , но с первого взгляда видно, что последний цвет визуально намного ярче.
Действительно, цветовое пространство HSL даже не пытается соответствовать воспринимаемой яркости цветов; скорее, определение L - канала выбрано потому, что оно имеет удобную функцию, заключающуюся в том, что оно отображает черный цвет в L = 0, белый — в L = 1 и все шесть максимально насыщенных чистых цветов RGB (красный, желтый, зеленый, голубой, синий). и пурпурный), несмотря на их большие различия в восприятии светлоты, до L = 0,5.
Гораздо лучшим приближением к воспринимаемой яркости цвета является яркость Y ', которая определяется как средневзвешенное значение каналов RGB. Точные веса зависят от определения и используемого цветового пространства RGB, но общий выбор (из Рекомендации МСЭ-R 709 ) таков:
Веса выбраны для учета различной воспринимаемой легкости различных основных цветов RGB. Поразительной особенностью является то, что только на зеленый компонент приходится более 70% яркости, что почти в десять раз больше, чем на синий компонент. Но визуальное сравнение с действительно ясно подтверждает, что этот выбор весов оправдан: чистый зеленый кажется намного ярче синего и почти таким же ярким, как голубой (который является их суммой) выше.
Однако определение яркости по-прежнему игнорирует нелинейность как стандартных цветовых пространств RGB (таких как sRGB ), так и человеческого глаза. Хотя эти два эффекта частично компенсируют друг друга, позволяя использовать яркость в качестве разумного приближения к воспринимаемой яркости, для получения действительно точных результатов их необходимо учитывать. Это включает в себя несколько шагов:
Преобразуйте цвет RGB в линейное цветовое пространство. Для sRGB можно использовать следующую формулу : , куда:
Рассчитайте относительную яркость как средневзвешенное значение линейного компонента RGB:
Преобразуйте значение относительной яркости в приближенное значение воспринимаемой яркости, используя что-то вроде формулы CIELAB : , куда:
Рори М
Ильмари Каронен