HSL Ligereza vs Sensibilidad ocular

En un espectro monocromático, ¿el ojo humano es igualmente capaz de distinguir entre colores más claros como lo es para distinguir entre colores más oscuros? Quiero decir, ¿existe realmente una relación lineal entre la propiedad Luminosidad en el modelo de color HSL y el brillo percibido?

No estoy seguro de que este sea realmente el mejor sitio SE posible para esta pregunta; mi respuesta a continuación, al menos, tiene muy poca biología. No hay un "Intercambio de pila de colorimetría", pero creo que esto sería un tema, por ejemplo, en Diseño gráfico . Por desgracia, no tienen MathJax ... ¿tal vez la física encajaría mejor? ¿ O Psicología y Neurociencia ?

Respuestas (1)

No, el eje L en el espacio de color HSL no corresponde realmente a la luminosidad percibida por el ojo humano, excepto en el sentido más crudo de que, para valores dados de los componentes H y S , el aumento de L produce un aumento en la luminosidad percibida. .

El componente L del espacio de color HSL estándar se calcula simplemente como el promedio del componente RGB más bajo y más alto del color (en cualquier espacio de color RGB que se utilice):

L = min ( R , GRAMO , B ) + máximo ( R , GRAMO , B ) 2

Esta definición por sí sola debería hacer evidente que el valor L no puede corresponder a la luminosidad percibida, ya que ignora por completo el medio de los tres canales RGB. Así, el color ( R =0, G =0, B =1), es decir, puro b yo tu mi , tiene exactamente el mismo valor L (0.5) que el color ( R =0, G =1, B =1), es decir C y a norte , sin embargo, es obvio de un vistazo que el último color es visualmente mucho más brillante.

De hecho, el espacio de color HSL ni siquiera intenta igualar la luminosidad perceptible de los colores; más bien, se elige la definición del canal L porque tiene la característica conveniente de que asigna el negro a L = 0, el blanco a L = 1, y los seis colores RGB puros máximamente saturados (rojo, amarillo, verde, cian, azul y magenta), a pesar de sus amplias diferencias de luminosidad perceptual, a L =0,5.


Una aproximación mucho mejor a la luminosidad percibida de un color es la luminancia Y ', que se define como un promedio ponderado de los canales RGB. Los pesos precisos dependen de la definición y el espacio de color RGB utilizado, pero una opción común (de ITU-R Rec. 709 ) es:

Y = 0.2126 R + 0.7152 GRAMO + 0.0722 B

Los pesos se eligen para tener en cuenta la diferente luminosidad percibida de los diferentes colores primarios RGB. Una característica llamativa es que el componente verde solo representa más del 70% de la luminancia, casi diez veces más que el componente azul. Sin embargo, una comparación visual de 100 %   b yo tu mi con 100 %   gramo r mi mi norte confirma claramente que esta elección de pesos está justificada: el verde puro parece mucho más brillante que el azul y casi tan brillante como el cian (que es su suma) arriba.


Sin embargo, la definición de la luminancia aún ignora la no linealidad de los espacios de color RGB estándar (como sRGB ) y el ojo humano. Si bien estos dos efectos se anulan parcialmente entre sí, lo que permite que la luminancia se use como una aproximación razonable de la luminosidad perceptiva, para obtener resultados verdaderamente precisos es necesario tenerlos en cuenta. Esto implica varios pasos:

  1. Convierta el color RGB en un espacio de color lineal. Para sRGB, se puede utilizar la siguiente fórmula : R L = F ( R ) , GRAMO L = F ( GRAMO ) , B L = F ( B ) , dónde:

    F ( C ) = { C / 12.92 si  0 C 0.04045 ( ( C + 0.055 ) / 1.055 ) 2.4 si  0.04045 < C 1
    (Aquí, R , GRAMO y B son los valores del componente sRGB, y R L , GRAMO L y B L los lineales, ambos escalados en el rango de 0.0 a 1.0). Alternativamente, una aproximación muy cercana a la fórmula anterior se da mediante una expansión gamma simple con γ = 2.2 : F ( C ) = C 2.2 .

  2. Calcule la luminancia relativa como un promedio ponderado de los valores del componente RGB lineal:

    Y = 0.2126 R L + 0.7152 GRAMO L + 0.0722 B L
    (Los pesos son exactamente los mismos que para la fórmula de luminancia anterior, porque de ahí provienen; el cálculo de luminancia simplemente los aplica ciegamente a los valores RGB comprimidos con gamma).

  3. Convierta el valor de luminancia relativa en una aproximación de la luminosidad percibida, usando algo como la fórmula CIELAB : = 1.16 gramo ( Y ) 0.16 , dónde:

    gramo ( Y ) = { 1 3 ( 29 6 ) 2 Y + 4 29 si  0 Y ( 6 29 ) 3 Y 1 / 3 de lo contrario
    (Nota: En el estándar CIELAB, el L el valor varía de 0 a 100, pero en aras de la coherencia, en la fórmula anterior elegí definir = L / 100 , por lo que su rango también es de 0 a 1.)