Inicio | Artículos | Ajuste tonal automatizado en ACR con Colorchecker

Ajuste tonal automatizado en ACR con Colorchecker

Jueves, 18 de Abril de 2013 22:27

curvas de ajuste tonal en ACRYa en artículos pasados había profundizado sobre la importancia del ajuste tonal, como contribución a la precisión colorimétrica cuando trabajamos en entornos Adobe, y en particular con Adobe Camera Raw.

En el artículo “Perfiles de cámara DCP + ajuste tonal = precisión colorimétrica” hablaba de la importancia del ajuste tonal y como realizar dichos ajustes manualmente en ACR partiendo de unos valores de referencia para espacios ProphotoRGB o AdobeRGB.

Recordar sin embargo, que cuando trabajamos con perfiles de cámara DCP, estos sólo actúan en la parte cromática del color (tono) mientras que los ajustes acromáticos, derivados de errores de exposición o reproducción tonal, relativos a la luminosidad los tenemos que hacer con una curva de ajuste tonal. Por el mero hecho de cargar un perfil de cámara en nuestro ACR, no vamos a lograr una precisión colorimétrica adecuada, si no hacemos un ajuste tonal y balance de blancos simultáneamente. De una forma similar los perfiles de color ICC poseen estructuras de transformación del color, pero también incorporan TRCs para dar solución a los problemas de reproducción tonal.

ajuste tonal ACRAunque estos ajustes no son complejos, hacerlos por los 6 parches de nuestra Colorchecker, puede resultar francamente tedioso. Con lo cual, para evitar perder tiempo diseñando una curva tonal, o TRC (Tone Response Curve) he realizado un Script de Photoshop que permite automatizar dicho proceso obteniendo unos resultados bastante óptimos en cuanto a ajuste tonal el cual es una buena contribución para alcanzar un cierto grado de precisión colorimétrica en flujos de trabajo con Adobe Camera Raw.

Fundamento del script de diseño de curvas tonales

El principio de funcionamiento de dicho script es sencillo, y se puede resumir en los siguientes pasos:

  1. Primeramente calculamos los valores RGB de los parches neutros de nuestra Colorchecker a partir de las mediciones espectrales de la misma en el espacio CIELAB y con la ayuda de la herramienta ICCLU descrita en el artículo “ICCLU: Ayuda al control de la exposición y temperatura” podemos deducir los valores RGB equivalentes al espacio AdobeRGB, de forma que tenemos unos valores de referencia: 244, 200, 160, 118, 84, 53
  2. A través del propio script de Photoshop se obtiene el promedio RGB de los píxeles de los parches neutros de la Colorchecker.
  3. Tanto valores obtenidos, como valores de referencia se convierten a luminosidad (Y) por la fórmula habitual:
    Y = (0.2126*R) + (0.7152*G) + (0.0722*B)
  4. Posteriormente hayamos la diferencia entre valores de luminancia obtenidos y su referencia:
    ΔY = Ye - Ys
  5. A continuación creamos la curva generando los habituales valores de entrada y salida. De forma que los valores de salida estarán calculados a partir de la siguiente fórmula:
    Salida = 255*(10-d/1.01)1/2.2

    Donde d, es la densidad óptica de los parches neutros de la Colorchecker: 0.05, 0.23, 0.44, 0.7, 1.05, 1.5. Realmente como valores de salida también se podrían usar los valore RGB para el espacio AdobeRGB calculados con anterioridad, ya que estos se aproximan bastante. Sin embargo me pareció más elegante calcularlos a partir de la densidad óptica. Estos valores (pixel level) de salida van a coincidir gráficamente con los picos de la representación del histograma del fondo del panel de Curva de Tono de nuestro ACR. Si quieres saber más sobre la densidad óptica puedes consultar el pasado artículo "Rango dinámico y densidad óptica"

    Los valores de entrada vendrán dados por:

    Entrada = Salida - ΔY
  6. De esta forma ya obtenemos los valores de entrada-salida por cada parche de nuestra escala, y que a través del propio script se actualizan en el archivo .xmp anexo a nuestro ficheo raw en la forma de, por ejemplo:
     
      <crs:ToneCurve>
      <rdf:Seq>
      <rdf:li>0, 0</rdf:li>
      <rdf:li>44, 52</rdf:li>
      <rdf:li>66, 84</rdf:li>
      <rdf:li>92, 122</rdf:li>
      <rdf:li>119, 160</rdf:li>
      <rdf:li>146, 199</rdf:li>
      <rdf:li>177, 240</rdf:li>
      <rdf:li>255, 255</rdf:li>
      </rdf:Seq>
      </crs:ToneCurve>
      

Precisión colorimétrica y tonal

precisión ajuste tonal oecfLos umbrales de precisión pueden ser evaluados a través de herramientas como Imatest o FRAME a través de los test basados en la función de conversión optoelectrónica (OECF) contra una curva de referencia aportada por los valores colorimétricos de la escala o carta con la que estamos usando.

Precisión colorimetricaLa precisión colorimétrica puede ser evaluada con herramientas similares pero por las fórmulas de distancia o diferencia entre colores delta-e, recordando que el umbral para CIE76 por lo que dos colores no son diferenciables para nuestro sistema de visión se sitúa entorno a 2.8 por lo que cuanto más nos alejamos de este valor más diferentes serán nuestros colores entre sí.

¿Cómo usar el Script de diseño automatizado de curvas tonales?

El flujo de trabajo es más o menos sencillo, pero para su eficacia debemos ser escrupulosos con diversos aspectos:

  1. Como lo que perseguimos es la precisión colorimétrica del proceso, primeramente diseñamos nuestro perfil de cámara DCP (Adobe Digital Camera Profile) a partir de nuestra Colorchecker y la herramienta de X-RITE o la de Adobe para tal fin.
  2. Abrimos nuestra imagen raw en Adobe Camera Raw y realizamos varios ajustes:
    • Cargamos el perfil de cámara
    • Hacemos un balance de blanco lo más preciso posible, verificando si fuese necesario el equilibrio de los canales RGB con la herramienta de muestras color de ACR.
    • En el menu Curva de Tono, elegir la opción "lineal" en caso de que alguna curva de contraste esté activada por defecto. Esto es importante ya que por la contra estaríamos introduciendo un ajuste tonal en nuestras mediciones.
    • Con la herramienta recortar seleccionamos el área de nuestra imagen correspondiente con la escala de parches neutros de nuestra Colorchecker. Realmente esto también lo podríamos hacer en PS pero así nos evitamos un paso dentro de esta herramienta.
    • Seleccionamos el espacio de color AdobeRGB o sRGB. Esto es muy importante porque el trabajo con la curva de ajuste tonal de ACR se hace en gamma 2.2, si escogiésemos ProPhotoRGB que tiene una gamma de 1.8 nos vamos a encontrar con una curva TRC incorrecta.
    • Algunas versiones de PS, al cargar una imagen por primera vez en ACR se cargan diversos ajustes como contraste, brillo, cuvas de tono, etc. Es muy importante que todos los ajustes de nuestro ACR esten a "cero" con el fin de no introducir variales no representativas de nuestra escena. Es conveniente crear un "preset" de ACR con todos estos controles desactivados, para asegurarnos que no introducimos variables no representativas en nuestras mediciones.
  3. Abrimos nuestra imagen en Photoshop, y desde ahí a través de menú Archivo > Secuencias de Comandos ya podemos localizar activar el script con el nombre TRC4ACR.
  4. Finalmente el script recorrerá los 6 parches neutros de la escala de grises, dibujando un círculo con el área muestreada con el fin de verificar si la ubicación de la muestra ha sido correcta. Una vez finalizado el proceso esta imagen puede ser descartada.

    El propio script va a localizar y actualizar el archivo .xmp asociado al archivo raw con el que estamos trabajando en función de la ruta y nombre de la imagen cargada.

  5. Por último, si volvemos a cargar nuestra imagen raw en ACR y vamos al menú de Curvas de Tonos, en la pestaña Puntos, podremos ver el resultado de la curva de ajuste tonal para dicha escena en función de los valores de referencia extraídos de nuestra Colorchecker

    Si tenemos que procesar más imágenes tomadas bajo las mismas circunstancias, podemos crear un preset de ACR para usar en el resto de imágenes.

Descarga e instalación

Puedes descargar el script para Photoshop para el diseño automatizado de curvas de ajuste tonal a partir de cartas Colorchecker en esta URL:

TRC4ACR

Para instalarlo debes pegarlo en el directorio que Adobe reserva para los “Presets” de Photoshop. Por ejemplo en los sistemas Mac Os X, se encuentra en la ruta:

/Applications/Adobe Photoshop CS4/Presets/

En Windows suele encontrarse en la ruta:

C:\Archivos de programa\Adobe\Photoshop CS4\Presets

Algunas preguntas frecuentes

¿Por qué un ajuste tonal?

El ajuste tonal nos permite ubicar cada registro tonal en su sitio, con la ayuda de unos unos valores de referencia determinados por una escala de grises o carta densitométrica.

¿Se puede usar otra carta que no sea una Colorchecker?

En un principio es posible usar cualquier escala densitométrica, sin embargo Adobe solo permite definir 16 puntos de ajuste en sus curvas de ajuste tonal, por lo que por ejemplo cartas como las Q13 con 20 muestras no podrían ser usadas. Sin embargo evidentemente, hay que cambiar los parámetros del script para adaptarlo a otro formato de carta y valores de referencia.

¿Qué indica el error: La escala de grises de tu Colorchecker no parece bien recortada?

En el script de ajuste, he incorporado una validación de las proporciones de la escala de color de nuestra Colorchecker con el fin de que el usuario no se despiste con la elección del recorte de dicha carta. Sin embargo puede ser que si el recorte no es muy preciso, salte dicha alerta, que en un principio podemos ignorar siempre y que comprobemos que la ubicación de las muestras de color se hace dentro del parche correcto.

escala_recortada

¿Qué indica el error: No estas usando AdobeRGB o sRGB?

Es imprescindible usar un espacio de color con gamma 2.2 como AdobeRGB o sRGB para realizar las mediciones. Esta situación no nos impide finalizar nuestro trabajo en otro espacio con más gamut tipo ProPhotoRGB, este paso solo necesario para el proceso de edición.

¿Qué indica el error: Error: XMP Exceptión: Indexing applied to non...?

Por ahora este error se produce cuando el script no es capaz de localizar el archivo .xmp de tu raw. Esto puede suceder cuando por ejemplo abrimos dos veces el mismo raw en PS, de forma que este los renombra.

¿Qué sucede con los DNGs?

Por el momento este script funciona solo con archivos raw, ya que los metadatos se definen en un archivo XMP externo. La dificultad de los DNG es que los metadatos, igualmente en formato XMP, se empaquetan en el propio DNG, por lo que su acceso es más complejo. Intentaré en brebre estudiar esta problemática.

x-rite Professional LED Lighting, DSLR Support and Accessories for Photo and Video BabelColor asociacion española de imagen cientifica y forense