2009/07/30

Fotografía digital y Linux: flujo de trabajo

This article is also available in English: Digital Photography and Linux: my Workflow.

En este artículo, quisiera compartir en este artículo el flujo de trabajo que utilizo habitualmente para manejar las fotos que hago, utilizando exclusivamente Linux y software gratuito.

Preparar

Creo que no sigo ningún ritual especial en cuanto a preparación, no suelo formatear las tarjetas antes de empezar a fotografiar, excepto cuando voy de viaje y estoy varios días fuera. Seguramente, lo único que merece la pena comentar es que siempre disparo en RAW, nunca en JPEG.

Descargar

Para descargar las fotos utilizo gPhoto2: sólo con conectar la cámara al ordenador (antes usaba un lector de tarjetas, pero últimamente no funciona muy bién) aparece una ventana, donde puedo seleccionar las fotos que voy a descargar, y después el programa hace el resto. gPhoto2 descarga las fotos una carpeta dentro de "/home/eperez/Pictures", con nombres del tipo "2009-07-27--20:34:45" (con la fecha y la hora de la descarga).

Estas carpetas las uso como zonas de trabajo, y así tengo todos los ficheros de una "sesión" dentro de una misma carpeta; también me sirve para localizar rápidamente el trabajo que tengo pendiente, y saber cuanto tiempo lleva esperándome.

Visualizar

Por defecto, Nautilus (el gestor de ficheros de GNOME) no es capaz de mostrar iconos para los ficheros en formato RAW; esto era un grave inconveniente para mí, porque manejar las carpetas sin poder ver las fotos es bastante complicado. Pero siguiendo las instrucciones que hay en "GNOME integration of digital camera RAW format MINI HOWTO", se puede añadir esta funcionalidad de una manera relativamente fácil.

A veces necesito hacer una exportación rápida de las fotos, sea para enseñarselas a alguien, o bien para enviarlas por email. Entonces lo que hago es extraer el JPEG embebido que hay en los ficheros RAW (se trata de un pequeño fichero JPEG, de menor resolución, con los ajustes de la cámara aplicados). Utilizo el siguiente script (lo tengo asociado a una acción en Nautilus, para activarlo desde el menú contextual), que genera una subcarpeta llamada EXP y exporta allí una versión reducida de cada RAW:

#! /bin/sh

SELF=`basename $0`

DIR="$1"
PRE="$DIR"/"PRE"

echo "$SELF: `date`"

echo "$SELF: Options:"
echo "$SELF:  Input  = $DIR"
echo "$SELF:  Output = $PRE"

echo "$SELF: Creating output directory:"
mkdir "$PRE"

echo "$SELF: Extracting JPGs:"
ufraw-batch --out-type=jpeg --embedded-image --overwrite --out-path="$PRE" "$DIR"/IMG_????.CR2 "$DIR"/img_????.cr2

Clasificar

Suelo experimentar y jugar bastante, y es habitual que llegue a casa con varias panorámicas y HDRs en la tarjeta. Prefiero agrupar cada lote de fotos en una carpeta independiente, para tratarlos después de forma separada. Tengo otro script (también asociado al menú contextual de Nautilus), que genera una subcarpeta nueva (con nombres secuenciales "000", "001", ...) y mete allí los ficheros seleccionados:

#! /bin/sh
SELF=`basename $0`

DIR="$1"
shift

echo "$SELF: `date`"

for i in 0 1 2 3 4 5 6 7 8 9; do
 for j in 0 1 2 3 4 5 6 7 8 9; do
  for k in 0 1 2 3 4 5 6 7 8 9; do
   SUB="$DIR"/$i$j$k
   if [ ! -e "$SUB" ]; then
    break 3
   fi
  done
 done
done

echo "$SELF: Options:"
echo "$SELF:  Directory  = $DIR"
echo "$SELF:  Subdir     = $SUB"

echo "$SELF: Creating output directory"
mkdir "$SUB"

echo "$SELF: Moving files"
while [ "$1" != "" ]; do
 FILE="$1"

 echo "$SELF:  Moving file '$FILE'"
 mv "$DIR"/"$FILE" "$SUB"/

 shift
done

Seleccionar

Con el resto de las fotos (las normales) lo primero que hago es una selección de las que quiero conservar, borrando las repetidas y todas las que me parecen inservibles (las que están desenfocadas, movidas, ...). Utilizo Geeqie, proque puedo desplazarme rápidamente entre las fotos y borrar las que no me interesan, o comparar dos fotos muy parecidas y quedarme con la que más me convence (muy util para cuando disparo ráfagas, por ejemplo).

Revelar

Una vez que tengo la carpeta limpia de polvo y paja, toca la hora de revelarlas. Después de haber probado varios programas, el que más me convence para esta tarea es RawTherapee; el resultado tiene muy buena calidad, y es muy rápido para trabajar con muchas fotos, porque permite copiar y pegar parámetros de una foto a otra. Con el ordenador que tenía antes editaba primero todas las fotos, pero sin exportarlas, y después dejaba al programa trabajando; pero ahora que tengo uno más rápido, al mismo tiempo que voy editando las fotos el programa va haciendo las exportaciones, en segundo plano. En cualquiera de los dos casos, el resultado será una subcarpeta con todos los ficheros tratados.

Antes de pasar a la siguiente etapa suelo hacer una última revisión del resultado: con Eye of GNOME abro la carpeta en modo "pase de diapositivas", a pantalla completa; principalmente se trata de detectar errores en el revelado.

Retocar

Algunas fotos merecen especial atención, bien porque es necesario corregir algún defecto, o bien porque me apetece hacer un tratamiento más laborioso. Estas fotos no las exporto a JPG sino a TIFF sin compresión, para evitar perdidas de calidad. Para el retoque uso casi exclusivamente GIMP, junto con algunos plug-ins y pinceles que he ido recopilando con el tiempo.

Panoramas

Una vez tengo tratadas todas las fotos individuales, es cuando empiezo con las panorámicas. El pograma que uso para hacer el montaje es Hugin; pero antes de comenzar, necesito convertir los ficheros RAW a un formato que pueda manejar el programa, y sin pérdida de información: TIFF de 16 bits. En este caso me basta con hacer una conversión directa, sin retoques ni ajustes, porque ese tratamiento lo haré después del montaje. El siguiente script se encarga de hacer esta parte del trabajo; crea una subcarpeta llamada EXP, y exporta allí todos los ficheros RAW a TIFF, usando UFRaw:

#! /bin/sh

SELF=`basename $0`

DIR="$1"
EXP="$DIR"/"EXP"

echo "$SELF: `date`"

echo "$SELF: Options:"
echo "$SELF:  Input  = $DIR"
echo "$SELF:  Output = $EXP"

echo "$SELF: Creating output directory:"
mkdir "$EXP"

echo "$SELF: Extracting TIFFs:"
ufraw-batch --gamma=0.45 --linearity=0.10 --exposure=0.0 --saturation=1.0 --wb=camera --out-type=tiff --out-depth=16 --overwrite --out-path="$EXP" "$DIR"/IMG_????.CR2 "$DIR"/img_????.cr2

Ahora es cuestión de abrir con Hugin los ficheros exportados, montar la panorámica (se dice fácil), y guardarla de nuevo en TIFF de 16 bits; ese fichero, con la panorámica ya montada, lo abro entonces con RawTherapee, hago los ajustes habituales de color, curvas, nitidez, etc, ..., y exporto el resultado a un JPEG.

HDRs

El tratamiento que hago de los HDRs está explicado en "HDR en Linux": básicamente se trata de ejecutar un script (está en "Un script para hacer HDR en Linux") y después hacer los ajustes por capas en GIMP; el resultado final lo exporto también a un JPG y lo doy por acabado.

Panoramas en HDR

En algunas ocasiones hago panorámicas en HDR, tomando varias exposiciones para cada posición de la cámara. Para hacer el tratamiento de estas panorámicas, mi método consiste montar primero una panorámica para cada exposición, de forma independiente, y después hacer el tratamiento HDR como si se tratara de una foto normal. Este proceso también está explicado en "Panorámica noctura de Barcelona, en HDR".

Almacenar

Una vez tengo todas las fotos de un mismo evento procesadas, las almaceno utilizando el siguiente esquema:

  • Dentro de la carpeta "Pictures" tengo una carpeta para cada año, y dentro otra subcarpeta para cada evento, usando un número secuencial y el nombre del evento; por ejemplo, "/home/eperez/Pictures/2009/19-Cerdanya".
  • Allí van los JPEGs, una subcarpeta con los RAW originales y los PP2 usados por RawTherapee, y otra subcarpeta con los XCF de GIMP (para las fotos retocadas); normalmente no guardo los ficheros intermedios de las panorámicas ni los HDRs, porque ocupan mucho espacio y son relativamente fáciles de volver a crear.
  • Los ficheros JPEGs los renombro (usando pyRenamer) a "nnn_mmm.jpg", donde "nnn" es un número secuencial único para cada evento, y "mmm" el número de foto dentro del evento; los ficheros RAW y PP2 mantienen sus nombres originales, mientras que los XCF tienen el mismo nombre que el RAW correspondiente.

Finalmente, para facilitar la búsqueda de la carpeta que contiene un determinado fichero, mantengo otra carpeta especial llamada "/home/eperez/Pictures/0000", donde tengo enlaces simbólicos a todas las carpetas de los eventos, usando el número global del evento; por ejemplo "/home/eperez/Pictures/0000/090" apunta a "/home/eperez/Pictures/2009/19-Cerdanya".

Catalogar

De momento, aún no tengo la costumbre de catalogar las fotos, porque el volumen de ficheros que tengo es suficientemente pequeño como para no necesitarlo. Pero últimamente está empezando a costarme un poco encontrar algunas fotos, y por eso he empezado a probar algunos programas: F-Spot, digiKam, y Picasa; todavía no he decidido con cual quedarme, pero el último es el que mejor pinta tiene por ahora.

2009/09/21: Vincent Tassy ha publicado una interesante alternativa a mi paso de clasificación: él tiene un script que automáticamente detecta los ficheros de una misma toma HDR, y los mueve a una carpeta. Está en Linux script to automatically sort bracketed images.

1 commentarios:

Anónimo dijo...

Increible, buen Howto!

Publicar un comentario en la entrada