Todos sabemos lo que es el “blanco”. Podemos imaginar una hoja de papel blanca. Sabemos que es blanca porque lo aprendimos. Pero si pones tu hoja de papel bajo el sol de verano, o un cielo nublado, o en casa con esas bombillas cálidas de la sala de estar, ese blanco cambiará de color. Podría perturbarte durante los primeros segundos, luego simplemente te olvidarás de ello: tu cerebro se adaptará. Pero, ¿a qué se adapta?
Introducción
Términos
Comencemos definiendo algunos términos y acrónimos que se usarán y abusarán aquí. Puedes omitir esto por ahora y volver más tarde cuando encuentres los términos usados en el texto.
- CIE
- Commission Internationale de l’Éclairage (Comisión Internacional de Iluminación). Autoridad internacional para la estandarización de aparatos técnicos, métodos y flujos de trabajo en lo que refiere a iluminación y reproducción del color.
- ICC
- International Color Consortium . Asociación profesional de proveedores de aparatos de imagen que busca definir flujos de trabajo de reproducción del color a lo largo de la cadena gráfica digital, para asegurar consistencia de color entre diversos medios de salida (pantalla, papel, etc.). Los perfiles de color que respetan las especificaciones ICC suelen denominarse “perfiles ICC”, lo que puede ocultar el hecho de que también existen perfiles que no son ICC.
- Perfil de color
- Archivo de computadora que describe la conversión de color entre un espacio RGB arbitrario y un espacio de color de referencia (generalmente, CIE XYZ 1931 para el observador de 2°). A menudo se mal entiende que un perfil de color no es un programa o aplicación en sí mismo, sino solo una “receta de cocina” que debe ser leída y aplicada discrecionalmente por un sistema de gestión del color (CMS — que es un programa de computadora), que puede ser implementado en varias aplicaciones de imagen (visores, editores, navegadores de archivos)… o no.
- WB
- Balance de blancos. Operación genérica que busca redistribuir las emisiones de luz de manera que el área blanca más brillante, en escena, se mapee a $RGB = (1, 1, 1)$ en cualquier espacio RGB estándar (sRGB, Adobe RGB, DCI P3, etc.). Esto se basa en la propiedad de los espacios RGB de describir esquemas de mezcla de luz aditiva , y en la suposición de que $RGB = (1,1,1)$ siempre codifica el punto blanco medio (blanco de papel o retroiluminación LED), por diseño.
- CAT
- Transformación de adaptación cromática. Método numérico que permite convertir colores para tener en cuenta un cambio en el punto blanco, de manera que se preserve la percepción del color.
- Las CAT se usan automáticamente antes de aplicar un perfil de color, si el espacio de color de destino tiene un punto blanco diferente al espacio de color objetivo. Por ejemplo, la canalización de Ansel (e ICC) usa el punto blanco D50 pero todos los monitores de escritorio utilizan el punto blanco D65, por eso se usa CAT para mapear D50 a D65 antes de aplicar un perfil de color de salida.
- Se pueden usar CAT manualmente para realizar un balance de blancos, de manera más precisa que la reescalación RGB básica, bajo algunas condiciones. En ese caso, se convierten en un caso especial de WB.
- Iluminante
- Fuente de luz directa que emite los fotones (también conocidos como luz) que rebotan en las superficies reflectantes de la escena. Vale la pena señalar que las canalizaciones gráficas siempre suponen un único iluminante por escena, lo cual no es la realidad a la que se enfrentan los fotógrafos. A veces, la escena tiene más de una fuente de luz. Casi siempre, los objetos 3D recibirán una mezcla de luz de los iluminantes y de otras reflexiones de superficies alrededor. Las superficies no blancas que reflejan la luz en un objeto pueden considerarse como iluminantes virtuales que teñirán típicamente las sombras y provocarán la necesidad de un balance de blancos selectivo.
El problema del “blanco
A los científicos del color y a los programadores de software por igual les gusta pensar en el color como un objeto 3D (R/G/B, tono/saturación/brillo, etc.), expresado como 3 coordenadas intensivas y positivas. Si bien esto tiene ciertos méritos en términos de aditividad de la luz (una pantalla LED es en gran medida un esquema de luz aditiva RGB, por construcción tecnológica), no toma en cuenta todas las correcciones contextuales que suceden en la percepción humana: la visión humana se describe mejor en términos de contraste, es decir, por la diferencia entre objetos (o superficies) y su entorno.
Por ejemplo, ve este comprobador de color:
Ahora, aquí está la reproducción de este comprobador de color, fotografiado en película, donde algo salió mal en el momento de desarrollar. Obsérvalo por un momento:
Jurías que el parche rojo sigue siendo rojo, aunque toda la imagen está desplazada hacia el verde, ¿verdad? Peor aún, el parche “blanco” parece blanco. Bueno, veamos el vectorscopio de esta imagen:
Aparte de algo de ruido azulado, toda la imagen está completamente contenida dentro de ~6° de matiz centrado en verde. En cualquier caso, no hay ni un solo píxel rojo aquí. Si vemos rojo, es solo porque a nuestro cerebro realmente no le importa el rojo como una cromaticidad absoluta, sino que más bien extrae parches de color, “calcula” sus diferencias con el entorno, y luego trata de dar sentido a estas diferencias desde un punto de vista cognitivo.
Este es el punto donde necesitamos definir el blanco para un iluminante y para una superficie. Cuando recubres un objeto con un par de capas de pintura blanca, lo haces blanco. Esto significa que, si lo iluminas con cualquier tipo de luz, la superficie blanca reflejará y rebotará el espectro de luz “tal cual”, sin favorecer ninguna banda del espectro. Por supuesto, absorberá algo de luz, solo un espejo perfecto reflejaría cerca del 100% de la luz entrante, pero esa absorción se escalará uniformemente sobre todas las longitudes de onda del espectro, por lo que la luz reflejada será exactamente la luz del iluminante, solo que menos intensa. Lo opuesto sería una superficie coloreada: esta atenuaría selectivamente algunas bandas del espectro, a través de la síntesis de color sustractiva .
El iluminante es la fuente de luz primaria que bombardea fotones sobre una escena (flash, bombilla, sol, nubes, etc.), incluida en superficies blancas. Entonces, dado que una superficie blanca refleja todo lo que recibe, el iluminante proyecta su propio color sobre una superficie blanca. Por lo tanto, este es tan blanco como nuestra escena (y la imagen subsiguiente) jamás conseguirá, lo que significa que el color de nuestra superficie blanca cambiará si la iluminamos con luz diurna o con una bombilla naranja.
Así que tendemos a esperar que el color de la superficie más brillante en una escena o en una foto sea el “blanco” contextual (contextualmente para nuestro campo visual), y nuestro sistema perceptual lo usa como referencia para entender todos los demás colores alrededor, comparándolos con esa referencia de “blanco”.
Ahora, ¿qué pasa si hago que los parches acromáticos sean acromáticos manualmente (con respecto a tu pantalla actual)?
El parche rojo ahora se siente un poco menos saturado y más anaranjado, porque lo comparamos con el blanco real y no con el verde. Pero el contexto todavía es tan abrumadoramente verde, que incluso teniendo verdadero blanco (con respecto al medio de visualización) dentro y alrededor de la imagen, seguimos percibiendo ese color “menos verde” del parche rojo como algo rojo.
Además, los parches acromáticos empiezan a sentirse cada vez más magentan a medida que se oscurecen, nuevamente debido al contexto abrumadoramente verde. Entonces, hay más en el “blanco” que simplemente ser la “emisión de luz más brillante en el campo visual”: el contexto inmediato. Si bien la normalización de las imágenes para la emisión de luz más brillante (también conocida como iluminante) es compatible en todos los modelos de apariencia de color (CAM), a través de las transformaciones de adaptación cromática (CAT), tener en cuenta las discrepancias locales (contraste local) es completamente ignorado por las matemáticas del color, ya que todos los CAM hasta ahora tratan la cromaticidad como 3 coordenadas positivas. Será necesario hacer ajustes manuales para llenar el vacío hacia una reproducción de color perceptualmente precisa (ver abajo).
¿Qué deberíamos tomar de esto?
- el blanco es altamente contextual al iluminante,
- el blanco está cognitivamente relacionado al iluminante, a través de la emisión/reflexión de luz más brillante en el campo visual, lo que puede ser engañoso cuando no hay una superficie blanca real en el campo,
- pero el blanco también es algo contextual al entorno visual, también depende del contraste de color local,
- pero los flujos de trabajo de imagen digital pretenden que el color solo se trata de intensidades positivas, y no tratan con las diferencias de color. Lo que significa que las herramientas de balance de blancos no tratan exactamente con lo que realmente está sucediendo, sino que tratan con una aproximación burda. Lo que significa que los casos complicados necesitarán manejarse manualmente con cuidado.
¿No hay derechos, no hay errores, realmente ?
Antes de profundizar más en los cómos y porqués del balance de blancos, deberíamos abordar el elefante en la habitación:
Pero me gustan mis fotos ligeramente cálidas, ¿por qué debería neutralizar el balance de blancos y hacer que los blancos sean acromáticos? Es una elección artística, después de todo.
No, no lo es. Quiero decir, no de la forma en que piensas. Las elecciones artísticas siempre están limitadas por restricciones técnicas, porque el arte consiste en moldear un medio material, por lo que las leyes de la física se aplican en cada paso de dicho medio, te guste o no. Ahora, el no conocer las restricciones técnicas en juego te dará una falsa sensación de libertad que se convertirá en una profunda frustración cuando las cosas dejen de ir a tu manera, especialmente cuando las imágenes tienen más de un iluminante. Los flujos de trabajo deficientes pueden funcionar en situaciones agradables y fáciles. Los buenos flujos de trabajo te proporcionan provisiones para enfrentar situaciones difíciles.
El mundo de la imagen digital se beneficiaría enormemente al ver el proceso de creación de imágenes como un proceso de remapeo, en lugar de intentar encontrar una descripción absoluta de las imágenes que nunca tendrán una existencia material. Más específicamente, podemos representar el diagrama de flujo de remapeo de la siguiente manera:
--- title: Cómo funciona realmente la edición de imágenes digitales --- %%{init: {"flowchart": {"htmlLabels": false, "htmlEdgeLabels": false}} }%% flowchart TD; Escena(("`__Escena__ _Iluminante_: N.C. _Rango Dinámico_: N.C _Espacio de Color_: espectral`")) --> Sensor["`__Sensor__ _Punto Blanco_: N.C _Rango Dinámico_: 8-14 EV _Espacio de Color_: sensor RGB`"] Sensor -- "`WB, perfil de entrada, CAT`" --> Tubería["`__Tubería de Edición__ _Punto Blanco_: D50 (ICC) _Rango Dinámico_: virtualmente infinito _Espacio de Color_: ITU BT.Rec 2020, CIE Lab 1976`"] Tubería --"`mapeo tonal, mapeo de gama, perfil de salida`" --> Pantalla["`__Pantalla del Retocador__ también llamada __Vista de Monitoreo__ _Punto Blanco_: D65 _Rango Dinámico_: 10-12 EV _Espacio de Color_: sRGB, DCI P3, Adobe RGB`"] Tubería -- "`mapeo tonal, mapeo de gama, perfil de salida`" --> PantallaC["`__Pantalla del Cliente__ _Punto Blanco_: D65 _Rango Dinámico_: 10-12 EV _Espacio de Color_: sRGB, DCI P3`"] Tubería -- "`mapeo tonal, mapeo de gama, perfil de salida`" --> Papel["`__Impresión en papel__ _Punto Blanco_: D50-D55 _Rango Dinámico_: 5-6 EV _Espacio de Color_: N.C.`"] Tubería --"`mapeo tonal, mapeo de gama, perfil de salida`" --> T["`Camisetas Tazas de café Pegatinas ...`"]
Pero, la mayoría de la gente todavía (y equivocadamente) piensa que es:
--- title: Cómo las personas engañadas piensan que funciona la edición de imágenes digitales --- %%{init: {"flowchart": {"htmlLabels": false}} }%% flowchart TD; Escena(("`__Escena__ _Iluminante_: N.C. _Rango Dinámico_: N.C _Espacio de Color_: espectral`")) --> Sensor["`__Sensor__ _Punto Blanco_: N.C _Rango Dinámico_: 8-14 EV _Espacio de Color_: sensor RGB`"] Sensor --"`WB, perfil de entrada, CAT`" --> Tubería["`__Tubería de Edición__ _Punto Blanco_: D50 (ICC) _Rango Dinámico_: virtualmente infinito _Espacio de Color_: ITU BT.Rec 2020, CIE Lab 1976`"] Tubería --"`mapeo tonal, mapeo de gama, perfil de salida`" --> Pantalla["`__Pantalla del Retocador__ también llamada __Verdad Visible__ _Punto Blanco_: D65 _Rango Dinámico_: 10-12 EV _Espacio de Color_: sRGB, DCI P3, Adobe RGB`"] Pantalla -- directo --> PantallaC["`__Pantalla del Cliente__ _Punto Blanco_: D65 _Rango Dinámico_: 10-12 EV _Espacio de Color_: sRGB, DCI P3`"] Pantalla -- mágico --> Papel["`__Impresión en papel__ _Punto Blanco_: D50-D55 _Rango Dinámico_: 5-6 EV _Espacio de Color_: N.C.`"] Pantalla -- mágico --> T["`Camisetas Tazas de café Pegatinas ...`"]
Y ese último diagrama de flujo es completamente erróneo porque la pantalla del retocador no es un medio más importante que cualquier otro: no es una referencia, no es un estándar, no porta ninguna verdad. Los medios de salida existen en paralelo, no en secuencia, y la conversión entre la tubería y los medios de salida es completamente fluida porque cada uno tiene sus propias propiedades ópticas.
En cualquier caso, cada flecha en ambos diagramas de flujo representa un paso de remapeo, mientras que cada rectángulo no redondeado representa un medio que intenta reproducir la escena. El remapeo es una conversión general, que puede ser total o parcialmente automatizada, pero que generalmente requiere que algún usuario maneje las compensaciones, las cuales buscarán adaptar el contenido de la imagen para algún medio de visualización o paso de trabajo intermedio. En particular, necesitamos remapear el rango dinámico (o relación de contraste), la gama de espacios de color y el punto blanco, porque queremos mantener una apariencia coherente a través de medios que tienen habilidades y propiedades de visualización vastamente variadas.
Para cualquier medio de visualización (papel, pantalla, diapositivas, tazas de café, …), la luminancia máxima se alcanza solo para un color acromático muy especial: el blanco. Piénsalo en términos de papel… el blanco es una propiedad incorporada del papel (una mezcla de fibras centrales y ópticas de recubrimiento superficial), en términos de tinte. En cuanto a tu impresora de inyección de tinta, “blanco” significa “no rocíes tinta ahí”. Supón que quieres que tu imagen tenga un aspecto algo más cálido y decides por un blanco ámbar… necesitarás recubrir toda la superficie visible del papel con al menos algo de tintas amarillas y rojas. Al hacerlo, se oscurecerá la luminancia máxima, es decir, tu “blanco ámbar” será más oscuro que el blanco medio nativo, debido al esquema de luz sustractiva de tintes y pigmentos, por lo que reducirás el rango dinámico ya limitado que el papel puede ofrecer (5 EV para impresiones con inyección de tinta típicas). Pero, ¿cómo le indicas a tu impresora que haga esto? El RGB de entrada se cortará en 1 o 100% (o 255 si se codifica como enteros sin signo de 8 bits), y $RGB = ( 1, 1, 1 )$ significa el blanco medio por definición del espacio de color (es decir, por diseño). Si intentas alcanzar un “blanco ámbar” empujando el blanco a $RGB = ( 1.2, 1.2, 1 )$, el RGB se cortará en 1 de todos modos, así que podrías obtener gradientes ámbar que se rompen a blanco medio en algún punto. O, si sabes lo que estás haciendo, empujarás el blanco a $RGB = ( 1, 1, 0.83 )$, y por lo tanto… reducirás su luminancia. Así es como el rango dinámico se conecta, de una manera generalmente pasada por alto, al punto blanco del medio porque la luminancia máxima siempre es acromática con respecto a un medio.


Después: balance de blancos mantenido cálido por “razones artísticas” (iluminante: luz diurna 4341 K).
El punto blanco se mantiene igual entre ambas imágenes. Nota cómo el gradiente dentro del disco del sol se rompe bruscamente al blanco puro en algún punto, cerca del centro, en la interpretación cálida, debido al recorte RGB. Propondré 2 posibles correcciones para esto a continuación.
Foto con licencia de Creative Commons por Andreas Schneider.


Antes: reduciendo la saturación de los reflejos en un 50 %
Después: reduciendo la luminancia del punto blanco en 0.5 EV
Nota que la estrategia de desaturación cae parcialmente de nuevo en la neutralización de los blancos a acromáticos, pero sin adaptar el color en sombras y tonos medios de una manera perceptual.
Foto con licencia de Creative Commons por Andreas Schneider.


Antes: balance de blancos normalizado para blancos casi-acromáticos (iluminante: luz diurna 3832 K) con punto blanco oscurecido.
Después: balance de blancos mantenido cálido por “razones artísticas” (iluminante: luz diurna 4341 K) con punto blanco oscurecido.
La interpretación cálida tiene el iluminante de la imagen (disco del sol) chocando severamente con el medio blanco, pareciendo una imagen envejecida. Las referencias de blanco en conflicto entre el “papel” y el contenido de la imagen hace que parezca una foto torpe de aficionado.
¿Qué deberíamos tomar de esto?
- No tienes control sobre el punto blanco del medio, ya sea una retroiluminación de pantalla o el tono del papel: está definido técnicamente y necesitas adaptarte a ello.
- Al imprimir con bordes blancos, necesitas tener en cuenta el choque de puntos blancos entre el contenido de la imagen y los bordes de papel. Esto también se aplica a las imágenes digitales que se mostrarán sobre fondos blancos en la web.
- No tienes mucha latitud para desneutralizar el balance de blancos de tu imagen con fines artísticos antes de que empiece a chocar visualmente con el blanco del papel.
- Tendrás que oscurecer el punto blanco de la imagen, reduciendo por lo tanto el rango dinámico imprimible, si deseas convertirlo en no neutral (no acromático). No hacerlo creará artefactos de recorte en gradientes suaves.
- Se espera que la luminancia máxima sea acromática para todos los medios típicos: esto es lo que conecta el rango dinámico (o, al menos, su límite superior) con un punto blanco del medio (balance de blancos).
¿Cómo balancear el blanco?
Las matemáticas del balance de blancos
Aplicar un balance de blancos es sorprendentemente simple cuando miras las ecuaciones: una división por canal, una multiplicación por canal. Pero está tan profundamente enterrado bajo conceptos mal entendidos y una interfaz de usuario obuscada (más sobre esto abajo ), que la gente se ha desviado completamente por las distracciones técnicas. Así que es un gran ejemplo de cómo 3 ecuaciones pueden deshacer el caos que el software y las interfaces de usuario han causado en las mentes de los usuarios en las últimas décadas, al tratar de ser “intuitivas”.
Supongamos que estás en algún espacio RGB, por ejemplo, el sensor RGB de la cámara. Necesitas encontrar las coordenadas cromáticas de tu iluminante de escena en este espacio RGB. Llamémoslas $R_w, G_w, B_w$. Convenientemente, si no sabes nada sobre el iluminante de la escena, simplemente obtener la media aritmética de los valores $R, G, B$ de todos los píxeles en la imagen te llevará bastante cerca. 1 En otras palabras, necesitas conocer el color del iluminante y convertir su cromaticidad en coordenadas RGB en tu espacio de trabajo RGB.
Luego, necesitas hacer lo mismo para el punto blanco esperado (referencia) de tu espacio RGB. Llamemos a esas coordenadas $R_{wr}, G_{wr}, B_{wr}$.
Finalmente, hacer el balance de blancos de la imagen es tan simple como normalizar cada píxel RGB con el RGB del iluminante de la escena y volver a escalar (desnormalizar) con el RGB del iluminante de destino (o punto blanco):
$$ begin{cases} R_{out} &= R_{in} * \dfrac{R_{wr}}{R_w}\\ G_{out} &= G_{in} * \dfrac{G_{wr}}{G_w}\\ B_{out} &= B_{in} * \dfrac{B_{wr}}{B_w}\\ end{cases} $$
¿Ves? ¡No hay necesidad de temperaturas Kelvin! Esas solo están para confundirte en la interfaz de usuario. Es simplemente reescalar el RGB de los píxeles con factores cuidadosamente elegidos.
If we apply these operations on sensor RGB, we have input color profiles that expect a D65 illuminant to be encoded with certain RGB values: $R_{wr}G_{wr}B_{rw} = (1, 1, 1)$, by design. The $R_{w}G_{w}B_{r}$ values are then derived from the input color profile. This makes the computation even simpler:
$$ begin{cases} R_{out} &= \dfrac{R_{in}}{R_w}\\ G_{out} &= \dfrac{G_{in}}{G_w}\\ B_{out} &= \dfrac{B_{in}}{B_w}\\ end{cases} $$
That’s what we do in Ansel’s old white balance module.
Ahora, el sensor RGB de la cámara es muy diferente de nuestro RGB de conos en los ojos. En la práctica, intentar hacer un balance de blancos en el sensor RGB da malos resultados, especialmente para iluminantes alejados de D65, y se han desarrollado espacios “RGB” especiales para mejorar la consistencia perceptual de la operación en todo el rango de colores. Las transformaciones de adaptación cromática Bradford, CAT02, CAT16, etc., aplican las mismas operaciones pero en espacios especiales. Puedes aprender más sobre ellos , sus diferencias y especificidades están más allá del alcance de este artículo.
White-balancing through CAT happens in Ansel’s color calibration module.
Balance de blancos en Ansel
Si hacemos un diagrama de flujo parcial de la tubería de edición predeterminada de Ansel, obtenemos los siguientes módulos:
flowchart TD; raw(RAW) --> wb[balance de blancos] wb --> demosaic demosaic --> ip[perfil de color de entrada] ip --> cc[calibración de color] cc --> filmico filmico --> op[perfil de color de salida]
For Fuji XTrans sensors, the Markesteijn demosacing algorithm relies on a luma/chroma separation, which requires at least a rough white balancing step to happen earlier. This is the old white balance module. But we know the result is not accurate, especially for illuminants far away from D65 (especially for low-quality artifical lighting).
La calidad del perfil de color de entrada también depende de tener el RGB ya normalizado a D65. Pero ya sabemos que esto tampoco puede ser preciso. Algunos productos de Adobe ahora usan perfiles DNG de doble iluminante, que tienen un perfil de entrada para el iluminante D65 y uno para el iluminante A (bombilla incandescente), y el perfil final utilizado se calcula como una mezcla de ambos dependiendo de la temperatura de color del iluminante de la escena. Estos solucionan el problema para iluminantes similares a la luz diurna, pero aún no abordan el problema de las luces de escenario de colores y otras bombillas de ahorro de energía con un índice de reproducción de color (CRI) terrible.
Another, more accurate, step of white balancing was later added in color calibration, using chromatic adaptation transforms (CAT16, Bradford). It can be configured automatically by extracting a profile from a color checker chart. Empirical studies have shown that the lowest color deviation, after profiling from a color checker, was achieved with color calibration after a preliminary step of white balance, in the old module, so we have retained both:
- el módulo balance de blancos normalizará el sensor RGB para que el blanco D65 que podría haberse capturado en escena se registre en $RGB = (1, 1, 1 )$. Si el iluminante de la escena real es cualquier otra cosa, se abordará más tarde.
- el módulo de perfil de color de entrada convertirá el sensor RGB al espacio de color CIE XYZ 1931, que actúa como un pegamento para todos los espacios de color posteriores, asumiendo un iluminante D65 (lo cual es incorrecto en general),
- la calibración de color convertirá CIE XYZ 1931 a ‘RGB’ CAT16 o Bradford e normalizará cualquier iluminante de escena arbitrario (es decir, si no es D65) al punto blanco de la tubería (D50, según el flujo de trabajo ICC). 2
- la calibración de color puede aplicar opcionalmente una etapa de refinamiento del perfil de color de entrada, utilizando un mezclador de canales (también conocido como un perfil de color de matriz) cuyos parámetros se pueden calcular directamente desde una tabla de comprobación de color en el módulo.
Esta etapa dual de balance de blancos es algo confusa para los usuarios, pero ha demostrado ofrecer los colores más precisos. La calibración de color tiene un modo de diagnóstico que permite calcular la desviación de color después del perfilado, como un delta E , a partir de una tabla de comprobación de color, puedes verificarlo tú mismo.
GUI: obfuscando el blanco con la temperatura
En cualquier software disponible, verás una configuración de balance de blancos que usa un deslizador de temperatura (en realidad, temperatura de color correlacionada ), y luego tono. Pero viste en la ecuación real que el balance de blancos internamente no trata con nada más que las coordenadas RGB del iluminante, aunque proyectadas en el espacio RGB especial en el que realizamos el escalado. Entonces, ¿por qué complicarse con esa confusa temperatura en Kelvin (K)? Bueno, no hay razón más allá del legado.
Physicists have a special radiator, called a black body . It’s an idealized object which, once heated at a certain temperature, will emit a known light spectrum. More interestingly, the shape of light spectrum can be entirely predicted by the temperature of the black body. Remember how RGB is a 3D reduction of a light spectrum ? Here, it’s a 1D reduction, even better ! Meaning one single number suffices to describe unambiguously a full spectrum.

La propiedad interesante aquí es que, hasta los años 90, las bombillas de (hogar) eran todas de filamento de tungsteno incandescente, que son un cuerpo negro a 2855 K, estandarizada como Iluminante A por la CIE. Luego, la luz de día cae cerca de los espectros de los cuerpos negros entre 3000 K (puesta de sol) y 8000 K (día nublado). Entonces, podíamos reducir el color del iluminante a un solo valor de temperatura, lo cual hace para una interfaz de usuario más simple, aunque buena suerte explicándole a un profano por qué el color de repente se redujo a una temperatura… Muy pocos fotógrafos entienden qué está pasando ahí, con razón de una interfaz de usuario “intuitiva”…

Los problemas surgieron, primero con luces teñidas (luces de escenario y filtros), luego con bombillas de alta potencia baratas (vapor de sodio, halógenos), luego con bombillas más recientes (fluorescentes, LED), cuyo espectro de luz tiene picos y valles, lejos de la suavidad esperada de un espectro de cuerpo negro. Esos no pueden ser descritos con precisión como un solo valor de temperatura.

Para tener en cuenta desviaciones del espectro puro de cuerpo negro, se añadió otro ajuste de ’tinte’, haciendo que la descripción de nuestro iluminante sea 2D en lugar de 1D. Mientras que la temperatura recorre el locus de Planck de manera curvada, el tinte permite alejarse de él ortogonalmente.

Esto podría estar bien, pero en realidad no lo está. De hecho, una vez que tenemos las coordenadas RGB del iluminante (por ejemplo, como lo detecta internamente la cámara), encontrar la temperatura de color correlacionada (CCT) se realiza mediante varias aproximaciones (cada software puede usar el suyo). Al revés, al conocer la temperatura de color correlacionada, podemos obtener las coordenadas RGB del iluminante mediante otras aproximaciones . Lo que significa que el ciclo RGB → temperatura → RGB (o, de manera similar, temperatura → RGB → temperatura) no dará el valor original. Así que, en caso de que el iluminante de la escena sea cualquier cosa menos un espectro de cuerpo negro puro, acumulamos una gruesa aproximación del iluminante arbitrario por una temperatura sin sentido (e incorrecta) sobre la aproximación de las coordenadas RGB a partir de la temperatura, todo eso solo como un paso intermedio diseñado para mostrar un control deslizante 1D en la GUI (en 2D si incluyes tinte para casos difíciles), mientras que todo lo que le importa al código de píxeles es las coordenadas RGB del iluminante, las cuales se pueden calcular perfectamente de manera directa en RGB sin pasar por la temperatura.
For this reason, Ansel has different illuminant settings in color calibration CAT. If we find that the camera detected something close enough to daylight or blackbody, we automatically offer the temperature setting. Else, we default to “custom”, which provides users with a 2D hue/chroma setting in CIE Luv 1976 that will directly allow to define illuminant color without intermediate computation. From hue/chroma to RGB, the illuminant computation uses no approximation, so the roundtrip RGB → hue/chroma → RGB accurately yields the original values.
Pero el desorden creado por las temperaturas no termina aquí. El modelo de cuerpo negro vincula las temperaturas a los colores de esta manera:

Sin embargo, todos los deslizadores de temperatura de balance de blancos muestran esto:
Sí, está revertido. ¿Por qué? Porque no muestra el color del iluminante, sino un intento de mostrar el efecto (un cambio de color) en la imagen. Pero… El efecto de una configuración del balance de blancos es convertir un color no blanco en blanco (con respecto al punto blanco de nuestro espacio de trabajo actual). Así que el efecto debería ser blanco todo el tiempo… Lo que este deslizador de color realmente muestra es cómo se vería un blanco D65 capturado en la escena después de aplicar nuestro balance de blancos. Pero, ¿por qué deberíamos preocuparnos por el aspecto de un blanco D65 virtual de la escena que ni siquiera existe, si nuestro iluminante de escena no es D65 (de lo contrario, no necesitaríamos el balance de blancos)? No tiene sentido.
En el módulo de calibración de color, las temperaturas se muestran de acuerdo con el color que representan, lo que coincide con el parche de color del iluminante que se puede encontrar muestreando superficies acromáticas en la imagen, utilizando el selector de color:


Respetando nuestra forma de pensar sobre el remapeo, esto muestra claramente qué color original de la imagen se remapeará a blanco D50 a través de la transformación, en lugar de intentar representar un cambio de color con un color absoluto. El problema es que muchos usuarios ahora piensan que algo está roto en este enfoque, impregnados por el sinsentido anterior.
Vida real: las imágenes tienen más de un iluminante
Es un poco tarde para abordar otro elefante en la habitación: la suposición central de toda adaptación cromática, nuestra tubería de color espera un iluminante y solo uno. Esto tiene sentido cuando imprimes en papel o muestras en pantalla: el blanco está definido por el tono del papel o por la retroiluminación de LED. Pero, en la escena, a menos que dispares en un estudio con solo paredes, pisos y techos en blanco y negro, tienes varios ‘iluminantes’.
Vamos a explicar eso con un ejemplo. La imagen a continuación fue tomada a mediados de octubre, mientras las hojas del árbol se volvían anaranjadas. Tenemos un techo de follaje, árboles a la izquierda y derecha, y césped en el suelo:
- El césped verde en el suelo actuaba como un reflector verde, rebotando luz principalmente bajo la barbilla: eso es un iluminante virtual.
- Las hojas amarillentas sobre la cabeza actuaban como un reflector amarillo, rebotando luz principalmente en las mejillas y el escote: ese es otro iluminante virtual.
- Luego, la luz solar directa penetraba las hojas, en las manchas de piel brillantes, que es el iluminante real (también conocido como fuente de todos los fotones en la escena).
- Mientras tanto, todo el fondo verde probablemente confundía la detección automática del balance de blancos en la cámara, y no podemos muestrear ningún objeto acromático de referencia una vez en nuestro editor de fotos.


Después: calibración de color desde el verificador de color, balance de color hecho manualmente (detalles a continuación)
© Aurélien Pierre
Así que este es en general uno de los escenarios más difíciles: cada característica y superficie de la cara (3D) está recibiendo su luz principalmente de un iluminante diferente (real o virtual), dependiendo de la orientación de la superficie en el espacio, y no podemos confiar en general en la detección automática de WB ya que todo el marco está sesgado por el follaje, aunque aquí hace un trabajo bastante decente. Muchos fotógrafos todavía piensan que es imposible recuperar los tonos de piel en este escenario, la imagen anterior demuestra que están equivocados, aunque requiere cierta habilidad.
El truco aquí es antes que nada disparar una imagen del verificador de color, para corregir la desviación verde tanto como sea posible, usando el módulo de calibración de color. El verificador de color se mantendrá frente al sujeto, apuntando hacia la cámara de manera que obtenga una mezcla promedio de todos los iluminantes disponibles (y con suerte sin reflejos). Entonces, la calibración de color se usará para ’llegar mayormente allí’, tratando de tener en cuenta una mezcla promedio de todas las fuentes de luz. El verificador de color nos ahorrará mucho trabajo manual, frustrante y que consume tiempo al modificar parámetros.


Antes: Iluminante detectado en cámara: tono 53°, croma 17,1 % (amarillo) - delta E: promedio 3,47, máx. 7,94
Después: Iluminante calculado a partir del verificador de color: tono 67,5°, croma 13,0 % (verde) - delta E: promedio 2,54, máx. 5,36
© Aurélien Pierre
Si tuviéramos objetos artificiales, con contornos definidos, podríamos luego instanciar múltiples veces calibración de color y enmascarar las áreas que queremos equilibrar selectivamente en blanco. Pero aquí, con una cara humana, tenemos superficies redondeadas que se mezclan sin problemas entre sí, y eso no es posible.
Es útil recordar aquí que el equilibrio de color, levantamiento de sombras y ganancia de realce son también meras multiplicaciones RGB, exactamente como nuestro balance de blancos. Aunque es matemáticamente lo mismo, ocurren en un espacio RGB especial diseñado para la uniformidad perceptual de los matices (para mejorar la gradación de color), en lugar de ocurrir en un espacio CAT, diseñado específicamente para la adaptación del punto blanco. No obstante, el levantamiento y la ganancia pueden verse como una adaptación cromática local para sombras y realces, y pueden ser utilizados para ese propósito.
Entonces, la forma de arreglar esta imagen es la siguiente:
- se espera que las sombras tengan una mayor proporción de luz de rebote verde, así que ajusta la configuración de levantamiento de sombras a magenta (siempre compensa desplazando al color opuesto),
- se espera que las luces altas tengan una mayor proporción de luz amarilla (del follaje otoñal), así que ajusta la configuración de ganancia de luces altas a azul,
- el tono de piel final se puede ajustar usando la potencia de medios tonos en calibración de color, para suavizar el desplazamiento magenta-rojo que probablemente resultará de los próximos dos pasos. Esto sucederá al reintroducir un poco de amarillo.
- los puntos de luz directa sobre la piel pueden desaturarse perezosamente para mezclarse, ya que son mucho más brillantes que cualquier otra cosa, utilizando saturación \filmic\ (pestaña \look\) y/o saturación de realces en equilibrio de color (pestaña \master\).
En cualquier caso, arreglar este tipo de imágenes comienza en la escena, desentrañando cómo los diferentes iluminantes actúan sobre las superficies de su sujeto. Será mucho más fácil desarrollar un método de post-procesamiento una vez que tenga todas las notas mentales de lo que estaba sucediendo.
Volver a las elecciones artísticas
Entonces, ¿quieres tu neblina ámbar de la hora dorada? De acuerdo, pero retorcer el balance de blancos probablemente no sea la forma correcta de hacerlo, porque afecta todos los colores en todo el rango dinámico.
Hay una manera más fácil, mejor y más adecuada, utilizando un balance de blancos neutro, y luego tiñendo la imagen usando la potencia de equilibrio de color:


Después: balance de blancos normalizado para blancos casi acromáticos (iluminante: luz diurna 3832 K), luego gradación de color ámbar-rojo usando la potencia de equilibrio de color.
Esto nos permite obtener un cambio de color más profundo y más de esa neblina ámbar en medios tonos, sin alterar la emisión máxima ni el azul del agua. El aspecto es en general más natural.
Translated from English by : ChatGPT. In case of conflict, inconsistency or error, the English version shall prevail.
This is called the “grey world assumption”. It is actually how cameras detect white balance, though nowadays they might choose to do so in some well-chosen areas of interest instead of doing it blindly on the whole image. ↩︎
It is worth noting than we can’t directly convert sensor RGB to CAT16 or Bradford without going through CIE XYZ 1931, so we need the input color profiles to be applied first. But we know the input color profile, and therefore the conversion from sensor RGB to CIE XYZ 1931, will be wrong in general because it relies on having whatever scene “white” balanced to $(1, 1, 1)$ already. In an ideal world, we would have one input profile for each scene illuminant, but that’s technically impossible. So this is why the channel mixing in color calibration comes as a nice refinement step. ↩︎