Calibrando el monitor en Linux

Hasta ahora no había calibrado mi monitor de forma seria, sino simplemente con alguna plantilla por software y sin aplicar siquiera un perfil de color. No le había dado más importancia pero ahora que empiezo a revelar en color me he dado cuenta de que para escanear correctamente las fotos es imprescindible tener el monitor calibrado correctamente.

Hasta ahora lo usaba con un calibrado manual por software, simplemente siguiendo uno por uno y en orden los pasos de esta web: http://www.lagom.nl/lcd-test/ en la habitación con la iluminación que tenemos cuando procesamos fotos.

Sin embargo, el calibrarlo a mano depende de la apreciación de los ojos de cada uno, que puede no ser perfecta siempre, así que llegó la hora de hacer un calibrado serio, utilizando un colorímetro en lugar de mis (imperfectos) ojos. Me prestaron un calibrador Spyder2Express de ColorVision, que se puede hacer funcionar sin problema en Linux, y estos son los pasos que seguí, que anoto aquí a modo de futura referencia:

Lo primero es descargar el software de Argyll: http://www.argyllcms.com/ que nos provee de las herramientas y librerías para manejar el calibrador. El paquete contiene muchos pequeños ejecutables para multitud de tareas, yo sólo usaré un puñado de ellos. Así que se baja y descomprime, y veremos todos los ejecutables en el directorio bin/. Además, es conveniente abrir con un navegador el directorio doc/, donde está toda la documentación general y de cada comando en particular. Todos los comandos están ejecutados desde el directorio bin/. Cualquiera de los comandos si se ejecuta sin parámetros nos dará una pequeña ayuda de cada posible parámetro.

Instalando y configurando todo lo necesario

Lo primero es instalar las reglas para udev, para poder acceder al dispositivo desde entorno de aplicación. Esto es muy sencillo ya que en el propio paquete vienen incluidas las reglas para udev, así como para versiones anteriores de este sistema. En mi equipo, con el SO actualizado, me basta con copiar el archivo de reglas y ni siquiera es necesario recargar udev (en sistemas más antiguos puede ser necesario recargar las reglas). Este proceso está perfectamente detallado en el documento doc/Installing_Linux.html:

$ sudo cp ../usb/55-Argyll.rules /etc/udev/rules.d

Ahora, conectar el aparato y hacer un lsusb para confirmar que está reconocido, y para asegurar es conveniente dar todos los permisos al dispositivo USB, por ejemplo, en mi sistema:

$ lsusb
Bus 010 Device 002: ID 0bda:0306 Realtek Semiconductor Corp.
Bus ....
Bus 006 Device 003: ID 085c:0200 ColorVision, Inc. Monitor Spyder
$ sudo chmod 777 /dev/bus/usb/006/003

Para que el software de Argyll pueda controlar el aparato hay que cargar el PLD, que es el controlador de dispositivo. En este calibrador en concreto está en el CD, dentro de los archivos para la instalación en Windows, pero Argyll nos proporciona una herramienta muy cómoda que automáticamente busca y extrae el archivo necesario: basta con meter el CD de instalación y ejecutar

$ sudo ./oeminst -v -S l
 Looking for OEM install files ..
 Looking for CDROM to install from ..
 found '/media/ColorVision'
 Looking for archive on volume '/media/ColorVision' .. found
 Loading file '/media/ColorVision/setup/setup.exe'..done
 Input file '/media/ColorVision/setup/setup.exe' is a VISE archive file base 0x10000
 Located driver entry 'CVSpyder.dll' at offset 0x8cd5d
 Located driver file 'CVSpyder.dll' at offset 0x17cb0c
 Located and decompressed file 'CVSpyder.dll' from VISE archive
 Returning 'CVSpyder.dll' length 73728 from '/media/ColorVision/setup/setup.exe'
 Returning 'spyd2PLD.bin' length 6817 from 'CVSpyder.dll'
 Wrote '/usr/local/share/ArgyllCMS/spyd2PLD.bin' 6817 bytes

como se puede ver este comando busca en el CD un archivo de controlador, lo extrae y lo copia en una ruta accesible para todo el sistema; en lugar de la opción -S l también se podría usar la opción -c para simplemente copiar el archivo requerido al directorio actual, o directamente pasar como parámetro el nombre del archivo setup.exe o la DLL requerida.

Calibrando el monitorCalibrando...

Para calibrar es conveniente antes de nada, si el monitor lo permite, configurar el menú OSD del monitor para que no aparezca en el centro de la pantalla sino en un lateral, para no interferir con el calibrado.

Tenemos un comando para lanzar la calibración que, una vez ejecutado, nos dejará el resultado en un archivo .cal que debemos pasar como parámetro:

$ ./dispcal -v -q m -y l LGFlatronW2242S

los parámetros son m = medium para la resolución del calibrado, l = LCD para el tipo de dispositivo (c = CRT), y el nombre del archivo que queremos generar (sin extensión); yo he usado el nombre LGFlatronW2242S porque es el modelo de mi monitor. Este comando pedirá cuándo colocar el calibrador en pantalla, lo colocamos sobre el monitor de forma que esté apoyado en plano sobre la superficie y centrado sobre el cuadrado de color que nos pinta en medio de la pantalla.

$ ./dispcal -v -q m -y l LGFlatronW2242S
Setting up the instrument
Instrument Type:   ColorVision Spyder2
Serial Number:     00802087
Hardware version:  0x0307
Place instrument on test window.
Hit Esc or Q to give up, any other key to continue:
Display type is 'l'
Target white = native white point
Target white brightness = native brightness
Target black brightness = native brightness
Target advertised gamma = 2.400000

Display adjustment menu:
Press 1 .. 7
1) Black level (CRT: Offset/Brightness)
2) White point (Color temperature, R,G,B, Gain/Contrast)
3) White level (CRT: Gain/Contrast, LCD: Brightness/Backlight)
4) Black point (R,G,B, Offset/Brightness)
5) Check all
6) Measure and set ambient for viewing condition adjustment
7) Continue on to calibration
8) Exit

Después de colocar el colorímetro se muestra un menú con varios pasos que hay que hacer en orden, del 1 al 5. El 6 es opcional sólo para calibradores con luz ambiente. En cada paso pedirá que ajustemos los niveles del monitor hasta conseguir igualarlos con los valores que nos da en pantalla, que se actualizan cada pocos segundos: primero aparece una línea con los valores que hay que conseguir, e información sobre qué valores tocar (brillo, contraste, gamma, o RGB) e inmediatamente debajo una línea con los valores actuales; en esta línea aparecen o bien un símbolo + o -, o bien tres valores RGB con un símbolo + o – a su lado, estos símbolos nos indican si tenemos que subir (+) o bajar (-) ese valor; a la vez, al inicio de la línea aparece una barra / o \ que cambia de sentido cada vez que se actualizan los valores; simplemente tenemos que ir variando los valores hasta que los tres aparezcan con un símbolo igual a su lado: R= G= B=; una vez igualados pulsamos espacio para volver al menú y lanzar el siguiente paso.

$ ./dispcal -v -q m -y l LGFlatronW2242S
...
...
Doing some initial measurements
Red   = XYZ 19.373  9.970  2.978
Green = XYZ 14.512 27.548 12.546
Blue  = XYZ  6.958  3.228 36.876
White = XYZ 40.802 40.710 52.354

Adjust R,G & B gain to desired white point. Press space when done.
  Initial Br 40.71, x 0.3048 , y 0.3041 , VDT 8219K DE 2K 10.3
\ Current Br 47.53, x 0.3114+, y 0.3278-  VDT 6583K DE 2K  0.1  R=  G=  B=

Por último se ejecuta el paso 7, que lo que hace es generar el archivo de calibración. Este paso tarda mucho así que hay que desactivar protectores de pantalla, apagado de pantalla, hibernación y esas cosas, ya que puede tardar un par de horas tranquilamente. La pantalla irá dando información de qué paso de la calibración lleva completado. Al finalizar nos informará de que ya podemos retirar el colorímetro del monitor.

Generar los patrones

El siguiente paso crea los patrones o parches que se usarán para crear el perfil de color, para generarlos basta con teclear la siguiente instrucción:

$ ./targen -v -d3 -f250 LGFlatronW2242S.cal

el parámetro d3 es para RGB y el -f250 para hacer 250 parches que es lo que recomienda la documentación. El último parámetro es el archivo que se generó en el paso anterior.

Procesando la información

Una vez nos devuelva el control tenemos que procesar todos esos parches para lo que se usa el comando dispread. Nos pedirá que situemos de nuevo el colorímetro para realizar los ajustes:

$ ./dispread -v -y l -k LGFlatronW2242S.cal LGFlatronW2242S.cal

como antes, el parámetro l = LCD, y pasamos el archivo de entrada y el nombre de salida; este último es el archivo .ti1 que generó el comando anterior, pero debe darse sin su extensión. Colocamos de nuevo el colorímetro en el monitor y empieza a hacer una pasada por los 250 parches que se generaron en el paso anterior; con esto termina la calibración.

Crear un perfil ICC

Ya tenemos hecha la calibración pero ahora hay que crear un perfil ICC que se pueda cargar después:

$ ./colprof -v -q m -as LGFlatronW2242S.cal

le damos el nombre del archivo .ti3 que generó el comando anterior, pero sin la extensión en calidad media que es como lo hicimos al principio. Esto generará un archivo ICC que ya podemos guardar bien y cargar en el sistema.

Cargando el perfil

Para cargar el perfil de color usamos la aplicación xcalib, que si no está instalada se puede instalar directamente de los repositorios oficiales:

$ xcalib LGFlatronW2242S.cal.icc

Este comando nos cargará el perfil de color, y veremos su efecto inmediatamente en los colores, contraste y brillo de la pantalla. Se puede ver bien el efecto descargando (xcalib -c) y volviendo a cargar el perfil.  Ya solo queda poner este comando en un script de inicio de la sesión de usuario para que se cargue siempre al arrancar y habremos terminado.

Es conveniente guardarnos los valores que pusimos en el propio monitor, por si en algún momento reseteamos el monitor poder volver a configurarlos exactamente igual.Niveles de colorBrillo y contraste

Conclusiones

Ciertamente, la diferencia entre cómo tenía configurado el monitor y cómo se ve con el perfil aplicado es bastante considerable, así que creo que he hecho bien en invertir unas horas en esta tarea. Me he guardado bien el perfil de mi monitor, para tenerlo para futuras ocasiones sin tener que hacer todo el proceso.

Fuentes

Antigua, algunas cosas ya no son iguales: http://fotux.es/calibrando-el-monitor-en-linux-con-spyder2express/

El software: http://www.argyllcms.com/

La documentación incluida en el directorio doc/

 

Artículo escrito por

Soy Álvaro Remesal, un aficionado a la fotografía, muy novato y con muchas ganas de aprender y divertirme en el camino. En este blog escribo mi día a día con la fotografía química: mis progresos, mis errores, mis descubrimientos... Lo que escribo tiene una intención de divulgación, pero también es una suerte de diario propio de mis avances y de lo que voy probando y aprendiendo.

Por favor, comenta con tu nombre real y con buenas maneras.

Dejar una respuesta