¿Es posible precalcular las ganancias del balance de blancos a partir de una imagen de muestra?

Permítanme tratar de explicar la pregunta con más detalle.

Supongamos:

  • Tengo una cámara que toma imágenes en un entorno dinámico (la temperatura del color cambia constantemente)
  • No puedo usar el balance de blancos automático en la cámara o no está disponible
  • Tengo un software ejecutándose y controlando la cámara que podría utilizar para el balance de blancos
  • Tengo una temperatura "objetivo"

Ahora, corríjame, ya que puedo estar haciendo una suposición completamente incorrecta sobre cómo funciona el balance de blancos. Sin embargo, es posible:

Durante la captura, tome una imagen de muestra, calcule las correcciones de balance de blancos y aplíquelas como ganancias de color de la cámara (ganancia de rojo y ganancia de azul) o tal vez ajustando las ganancias cromáticas (U y V)?

Para intentar resumir:

Lo que quiero crear es un sistema de balance de blancos automatizado que tome la temperatura deseada y, basándose en una imagen de muestra, calcule las ganancias rojas/azules "futuras" o las ganancias U/V. ¿Las cámaras modernas cuando ajustan la temperatura hacen esto o simplemente realizan un posprocesamiento?

Muchas gracias de antemano y realmente entiendo que podría estar completamente equivocado y tal cosa no es posible, ya que toda mi investigación que estoy haciendo es describir cómo cambiar una imagen que ya se ha tomado.

El balance de blancos adecuado generalmente se determina tomando una imagen de muestra de un verificador de color de algún tipo. ¿Tendrá la capacidad de fotografiar sus muestras de un objeto conocido como este o la escena siempre será dinámica?
Para aclarar, ¿está preguntando si las cámaras pueden variar dinámicamente la ganancia analógica para R, G y B individualmente? AFAIK, para las cámaras "normales", la ganancia analógica siempre es global y el equilibrio se realiza como procesamiento posterior.
Realmente no puedo abrirme mucho sobre el contexto de lo que estamos haciendo debido a un NDA, sin embargo, el principio básico es: estamos usando una cámara Lumenera de grado industrial conectada a una carga útil personalizada que está conectada a un helicóptero. Durante un vuelo tomamos imágenes, sin embargo, el contexto requiere que configuremos la temperatura del balance de blancos manualmente. Al tratar de investigar el tema, noté que la temperatura del color está relacionada de alguna manera con las ganancias de azul y rojo, pero no pude encontrar en ninguna parte cómo calcular la relación. Espero que esto aclare un poco las cosas.
No estoy seguro de si esto es lo que busca, pero... En Lightroom, puede ajustar el balance de blancos para una imagen RAW (y no RAW) y luego copiar esta configuración de desarrollador. Este ajuste de balance de blancos se puede "copiar" a cualquier cantidad de imágenes relacionadas tomadas en condiciones/iluminación similares.
@karmalis en resumen, si no sabe cómo evaluar el balance de blancos, debe contratar a alguien con conocimientos o puede intentar hacer todas las preguntas en este sitio.
@EuriPinhollow lindo comentario. Muchas gracias por el consejo.

Respuestas (5)

Suponiendo que su helicóptero va a operar al aire libre, querrá seguir un procedimiento diferente al que emplean los fotógrafos pictóricos. La práctica aceptada para las operaciones de detección remota es calibrar radiométricamente su sistema de cámara. Esto significa establecer un iluminante estándar y registrar las curvas de respuesta específicas del canal de la cámara.

Los ingenieros optoelectrónicos realizarán esta tarea utilizando una esfera integradora y un acceso bit a bit a la respuesta digital del sensor. Una vez que se caracteriza la respuesta, se puede utilizar una curva de transferencia para calibrar la respuesta total del sistema a un estado radiométrico absoluto. Esto generalmente se logra mediante la aplicación de una curva de transferencia RGGB entre los pasos de posprocesamiento de Debayer y Demosaic. Si tiene imágenes en un estado radiométrico conocido, puede reconstituirlas en cualquier otro espacio de color o apariencia que desee.

Este rigor de ingeniería se puede aproximar utilizando materiales más fácilmente disponibles. La iluminación en un día brillante y soleado al mediodía en una latitud moderada es bien conocida. Si se captura una imagen de un sujeto fiablemente uniforme y espectralmente equilibrado en estas condiciones, se puede realizar una caracterización razonable (con una precisión de alrededor del 3 %). Para garantizar la precisión de su calibración, asegúrese de verificar dos veces las características espectrales de su sujeto (por ejemplo, verifique sus propiedades de metamerismo) y también use una exposición variada para investigar la punta y el hombro de su curva de respuesta.

Recuerde que en las aplicaciones de teledetección preferimos imágenes que sean uniformes a las que sean bonitas. Utilice una calibración rigurosa, sea meticuloso con su realidad básica y las imágenes atractivas serán un subproducto natural.

Claro, no hay razón por la que no puedas tomar una imagen anterior, calcular el balance de blancos y aplicarlo a una imagen futura. Incluso puede volverse elegante e intentar predecir cuál será el balance de blancos, en función de los cambios en las últimas X imágenes.

Pero ¿por qué uno haría esto? Siempre obtendrá mejores resultados al examinar la imagen real que está balanceando en blanco. En video, probablemente desee algo de histéresis para evitar cambios abruptos y discordantes, pero en fotografía eso no es una preocupación.

Muchas gracias por las ideas, sin embargo, para nuestro proyecto, tomaremos una buena cantidad de imágenes de varias cámaras en un formato sin formato. Además, (se ha ampliado un poco en un comentario bajo mi OP), tenemos otro software y procesamiento posterior en ejecución, lo que significa que no tenemos tiempo ni recursos de sobra para procesar las imágenes. Pero lo que podemos hacer y deseamos es establecer una temperatura de color fija que se aplicará a cada disparo, ya que podemos ajustar fácilmente las ganancias de color, así como las ganancias de U/V.
Si establece una temperatura de color fija, a medida que cambie la luz, cambiará la apariencia de los objetos del mismo color. Cuando establece una temperatura de color, no está cambiando la luz real en la escena, está cambiando la cantidad de compensación necesaria para que ciertos objetos aparezcan de un color determinado. Si la luz cambia, su configuración de temperatura de color (y posiblemente otros factores de balance de blancos, como a lo largo del eje verde←→magenta) también deben cambiar para preservar colores consistentes de los objetos que está capturando.

Si quiere decir "cambiar la ganancia de tres colores primarios (al igual que ajustar la curva de tono) pero no la ganancia de los canales del CMOS para lograr el balance de blancos preestablecido"

Es imposible.

Porque el balance de blancos realmente cambia la "matriz de color" (convirtiendo las señales de los sensores/gama de colores a una cierta gama de colores (por ejemplo, Rec.709) al mezclar las señales de diferentes canales).

es como un proceso de "Mezclador de canales" en Photoshop (pero la matriz de color mezcla la señal lineal)

Y esa es la razón de ser imposible.

La canalización de la reproducción cromática

procedente de 'Por qué debería olvidarse de la conversión de luminancia y hacer algo mejor'

Lo primero es lo primero: la temperatura de color no es más que un eje único del balance de blancos bidimensional. El eje azul←→ámbar de la temperatura del color es aproximadamente perpendicular al eje de "tinte" verde←→magenta cuando se traza en una 'rueda de color'.

ingrese la descripción de la imagen aquí
El eje b es más o menos lo que llamamos 'temperatura de color' (el rango de color real de los radiadores de cuerpo negro sería una curva, comenzando en -b* y enganchando a la derecha para salir entre b* y a*) el eje a es lo que llamamos 'tinte'.

Pero cuando se traza en el espacio de color CIE xyY, ninguno de los "ejes" es un vector con una pendiente constante. El eje de la 'temperatura de color' tampoco es una simple línea entre el azul puro y el rojo puro.

ingrese la descripción de la imagen aquí

Aquí hay un primer plano del área por la que se mueve el rango de "temperatura de color" del cuerpo negro. Observe que a medida que cambia la temperatura del color, también lo hace el ángulo del rango verde←→magenta.

ingrese la descripción de la imagen aquí

Lo que esto significa es que es incluso peor de lo que pensabas. Podría tener dos condiciones de iluminación diferentes en las que el iluminante sea 5500K y una fuente podría ser más magenta y la otra fuente podría ser más verde. Necesitaría usar diferentes multiplicadores de rojo y azul para hacer que los objetos se vean del mismo color bajo cada fuente de luz de 5500K.

Su pregunta es múltiple, no puedo ver la tarea técnica detrás de ella, así que aclare todo lo que quiera en los comentarios.

¿Las cámaras modernas cuando ajustan la temperatura hacen esto o simplemente realizan un posprocesamiento?

Las cámaras no tienen ningún control sobre la salida del sensor excepto:

  • ganancia/ISO

  • obturador

  • modo de obturador (los obturadores electrónicos ya se usan desde hace años)

  • corrección del nivel de negro (en sensores Canon, por ejemplo)

    Por lo tanto:

Durante la captura, tome una imagen de muestra, calcule las correcciones de balance de blancos y aplíquelas como ganancias de color de la cámara (ganancia de rojo y ganancia de azul) o tal vez ajustando las ganancias cromáticas (U y V)?

Sí. Graba imágenes sin procesar y postprocesa todo. El archivo sin formato se puede cocer ligeramente (NR de Fuji, escalado de canales de Nikon, artefactos de compresión en Sony MILC), pero sigue siendo excesivamente excelente en la mayoría de los casos.

Lo que quiero crear es un sistema de balance de blancos automatizado que tome la temperatura deseada y, basándose en una imagen de muestra, calcule las ganancias rojas/azules "futuras" o las ganancias U/V. ¿Las cámaras modernas cuando ajustan la temperatura hacen esto o simplemente realizan un posprocesamiento?

Es posible dado que está de acuerdo con las limitaciones:

  • como dijo Clark, la temperatura del cuerpo negro no describe todas las fuentes de luz
  • siempre que pueda caracterizar la fuente de luz lo suficientemente bien, no puede haber ningún algoritmo exacto para aplicar el balance de blancos para compensar esa fuente de luz conocida a la imagen (es decir, obtener el mismo balance de color que en la imagen bajo la fuente de luz de referencia para cualquier objeto)

Eso es porque la imagen captura estos tres factores:

  • SPD de objeto
  • SPD de iluminante
  • curvas espectrales del sensor

Ya estás perdiendo información cada vez que usas una cámara triestímulo, y estás perdiendo aún más cuando haces el balance de blancos de una imagen de forma no óptica. No estoy hablando como si hubiera alternativas prácticas.