Inicio | Apuntes breves | Compilar nuestros propios perfiles de color ICC

Compilar nuestros propios perfiles de color ICC

Miércoles, 19 de Junio de 2013 12:08

sampleICC-matrixYa hace tiempo había hablado de la colección de herramientas y scripts SampleICC promovida por alguna gente del ICC para ayudar al diseño de perfiles de color.

SampleICC se puede descargar  y compilar fácilmente. En Linux, la librería libsampleicc2 suele estar disponible en los repositorios, por lo que se simplifica bastante la instalación.

Volviendo un poco sobre el tema, me he fijado en una serie de utilidades a modo de ejemplo bastante interesantes. Entre ellas se encuentra create_display_profile destinada a mostrarnos como compilar un perfil de color ICC basado en la típica estructura matrix-shaper o matrix-gamma, o lo que es lo mismo, un perfil basado en una estructura de transformación tipo matriz 3x3 y una curva de ajuste tonal o TRC.

Tras compilar dicha herramienta, esta se convierte en un ejecutable que recibe los siguientes parámetros:

create_display_profile datos.txt 256 "mi_perfil_experimental" "by jpereira.net" matrix_trc.icc

Donde “datos.txt” contiene la información necesaria para poblar nuestro perfil. La estructura de los datos se organiza secuencialmente por filas sin espacios ni etiquetas, nuestro archivo txt comienza de la siguiente forma:

  1. Las coordenadas los colorantes primarios para el ROJO en el espacio XYZ
  2. Las coordenadas los colorantes primarios para el Verde en el espacio XYZ
  3. Las coordenadas los colorantes primarios para el Azul en el espacio XYZ
  4. El punto negro en XYZ
  5. El punto blanco en XYZ
  6. Las coordenadas de la curva TRC en forma de triplete en el rango 0-1. Si queremos implementar una curva de gamma basta especificar la gamma. El número de pasos de nuestra TRC se indica en la línea de comandos, en este ejemplo 256, si usamos el valor gamma, este valor sería simplemente 1.

Así por ejemplo tendríamos:

0.43585205 0.22238159 0.01391602
0.14302063 0.06059265 0.71383667
0.38533020 0.71704102 0.09713745
0.03343201   0.03486633    0.02983093
0.86415100   0.89869690    0.72640991
0    0    0
0.000274662    0.000274662    0.000274662
0.001388571    0.001388571    0.001388571
0.002487221    0.002487221    0.002487221
....       ....       ....
0.989745937    0.989745937    0.989745937
1    1    1

Si fueramos a usar una curva de gamma sería:

0.43585205 0.22238159 0.01391602
0.14302063 0.06059265 0.71383667
0.38533020 0.71704102 0.09713745
0.03343201    0.03486633    0.02983093
0.86415100   0.89869690    0.72640991
2.2       2.2       2.2

EL ejemplo esta diseñado para crear perfiles de tipo Display, pero para crear uno del tipo Input, basta con cambiar la clase “icSigDisplayClass” por la “icSigInputClass” entorno a la línea 171 del archivo create_input_profile.cpp y volver a compilar.

Con estos sencillos pasos, podemos disponer de un interprete que nos ayude a compilar perfiles de entrada completamente a medida de nuestras necesidades o experimentos, basta con conocer las coordenadas de nuestros colorantes primarios, los puntos blancos y negro que suelen ser estándar y una curva TRC apropiada.

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