Lo que buscas hacer puede ser un espacio problemático muy complejo. La teoría del color, la corrección del color / balance de blancos, etc. es un campo muy complejo. Para asegurarme de que entiendo, está tratando de crear un algoritmo que pueda establecer correctamente el balance de blancos de una escena en función de la fuente de luz de iluminación en la escena. Es posible hacer lo que necesita hacer, y muchos de los algoritmos que necesitaría usar deberían estar disponibles en estos días.
Algunos puntos a tener en cuenta y factor en su procesamiento:
- Sin fuente de luz en escena
- Por ejemplo: el sol ilumina una escena detrás del fotógrafo
- Otro ejemplo: flash fuera de escena u otra iluminación
- Este es probablemente el mayor problema, y haría que sea prácticamente imposible hacer cualquier corrección de color basada en la fuente de luz
- Múltiples fuentes de luz
- Es posible que haya múltiples fuentes de luz con la misma temperatura de color.
- De mayor importancia son las múltiples fuentes de luz con diferentes temperaturas de color.
- Pregunta clave: ¿Qué desea que suceda si una escena se ilumina con múltiples fuentes de luz de diferentes colores?
- Fuentes de luz ambiental versus puntual
- Ejemplo: el sol ilumina una habitación a través de una ventana, con iluminación adicional que ilumina las partes sombreadas
- Pregunta clave: ¿En qué fuente desea balancear blancos?
- Fuentes de luz de color radical.
- A veces tienes escenas iluminadas por fuentes de luz primarias de colores radicales.
- Por ejemplo: rojo, verde, azul, morado, amarillo, etc.
- El plano azul / amarillo / rojo puede considerarse extremos de temperatura de color normal
- El plano verde / morado / magenta podría considerarse los extremos del tinte
- Ningún color saturado, primario o secundario, es un buen objetivo para equilibrar el color de una escena, ya que probablemente produciría un marcado color en su imagen.
- Pregunta clave: ¿Qué haces cuando tu escena no tiene una iluminación ambiental o primaria común, y está total o principalmente iluminada por colores radicales?
Si no excluimos la iluminación en la escena y los colores radicales del espacio problemático, probablemente sea posible identificar y medir la temperatura del color de las fuentes de luz en la escena. Hay algunos algoritmos de detección de forma bastante avanzados disponibles en estos días que, siempre que tenga una base decente o formas conocidas de fuente de luz, permitiría identificar todas las fuentes de luz en una escena. Una vez que haya identificado cada fuente de luz, probablemente podría usar algún tipo de cálculo de triestímulo para determinar la temperatura de color de la fuente de luz, tomando los valores de subpíxeles verde, rojo y azul o los valores de píxel bayer RAW con los pesos adecuados para generar sus tres luminancias. picos
Su algoritmo se vuelve particularmente complejo cuando involucra iluminación de escena no estándar o radical. Las fuentes de luz extremadamente saturadas no serán buenos objetivos de balance de blancos, ya que están lejos del rango "blanco" de una gama de colores. Es muy importante saber en qué parte de su escena es más "neutral" para que pueda elegir un "gris o blanco" adecuado para basar su balance de blancos, ya que así es fundamentalmente cómo funciona el balance de blancos . Es posible equilibrar el color de su escena en función de un color base diferente, como el rojo, sin embargo, no sé exactamente cómo necesitaría modificar las fórmulas matemáticas existentes para acomodar dicho enfoque (hay una buena cantidad de matemáticas complejas involucrado en la teoría del color.)
La situación más difícil es cuando no hay fuentes de luz en la escena. Si la escena está iluminada por una fuente de luz fuera de escena, sería prácticamente imposible calcular su temperatura de color. Si desea adoptar un enfoque bastante radical para el diseño de la cámara, puede colocar algunos sensores básicos de medición de luz en todos los lados del cuerpo de la cámara. Eso permitiría medir la luz desde todas las direcciones, sin embargo, no sería del todo exacto, y las ganancias para toda la complejidad adicional probablemente serían menores. Otro enfoque podría ser crear un dispositivo de zapata que pueda conectarse a múltiples medidores de punto que puedan proporcionar lecturas de iluminación precisas a la cámara para cualquier fuente de luz a la que apunte un medidor. Las escenas con múltiples fuentes de luz o fuentes con color radical seguirían siendo un algoritmo muy complejo.
Intentar determinar la temperatura de color de las fuentes de luz de sus escenas a partir de una simple foto de una tarjeta de corrección de color, por ejemplo, sería extremadamente difícil, si no imposible. Tendría que hacer muchas suposiciones sobre, o tendría que saber de antemano, qué tipo de luz iluminaba su escena. Generalmente, esta es la razón por la cual las correcciones de balance de color / balance de blancos se realizan generalmente configurando el balance de blancos de las escenas en función de un color neutral conocido en una escena. Fotografiar un paisaje dos veces con la misma iluminación, una vez y una vez sin una tarjeta de corrección de color, le permite elegir un color blanco neutro o puro válido durante el procesamiento posterior, lo que establecerá el equilibrio de color adecuado. Yo mismo tengo el pasaporte X-Rite ColorChecker, que incluye dos filas de muestras de corrección de color. Una fila es para paisajes y la otra para retratos, y progresan de manchas de color ligeramente frías a ligeramente cálidas. Puedo establecer el tipo de balance de color que quiero para mis escenas, que tiende a ser más cálido para la fotografía de paisajes y tonos blancos más neutros (5500k-6500k) para cosas como la vida silvestre o macro.
Si está haciendo algo considerablemente más especializado, es posible que pueda definir un espacio de problema más pequeño dentro del cual pueda crear un algoritmo que haga lo que necesita. El espacio del problema debería ser bastante estrecho, con parámetros y límites bastante bien definidos, a fin de generar suficientes datos conocidos para ayudar al algoritmo a tomar las decisiones correctas al equilibrar el blanco en una escena. Cualquier escena sin fuentes de luz primarias dentro del cuadro será muy difícil de hacer un balance de blancos automático o corrección de color.