www.leandroruiz.com

Procesado de imágenes digitales

En este tutorial vamos a realizar el procesado de una serie de fotografías del cielo nocturno usando el software IRIS. Para ello partimos de un conjunto de imágenes de la zona del cielo deseada (lights) así como de una pequeña cantidad de tomas "dark". En la siguiente imagen se puede observar una de las tomas iniciales. Pasando el cursor por encima de ella veremos la imagen resultante.

Selección y pre-procesado de imágenes

Antes de comenzar es necesario seleccionar el conjunto de imágenes con el que se va a trabajar. En este caso se utilizarán únicamente las tomas "light" (fotografías normales) y los "dark" (fotos tomadas en las mismas condiciones que las "light" pero con el objetivo tapado).

En el caso de las imágenes de este tutorial han sido previamente procesadas para corregir la distorsión de barril producida por el objetivo de la cámara.

Configuración inicial del software IRIS

El software que vamos a usar para realizar el apilado y procesado de las imágenes es IRIS, un programa muy potente y totalmente gratuito. El primer paso consiste en configurar este programa. Hacemos click en "File->Settings" y aquí debemos establecer un directorio de trabajo (en mi caso c:\iris\), preferiblemente cercano a la raíz, para evitar posibles problemas. También debemos seleccionar el tipo de archivo a usar como PIC.

A continuación hacemos click en el icono señalado en la imagen, y cambiamos la configuración de los parámetros marcados en rojo.


Importar imágenes

Para importar nuestras imágenes al programa hacemos click en "Digital photo->Decode RAW files" y seleccionamos y arrastramos las imágenes "light" desde el explorador de archivos. Escribimos el nombre "light" y convertimos las imágenes a CFA. A continuación borramos la lista, y repetimos el proceso con los darks, usando el nombre "d".

Creación del offset, dark y flat. Calibrado

A continuación cargamos una imagen cualquiera, la rellenamos de negro y guardamos con el nombre offset. Esto lo hacemos con los siguientes comandos:

>load light1
>fill 0
>save offset

Para crear el dark, hacemos click en "Digital photo->Make a dark" con las siguientes opciones (el número de imágenes se debe corresponder con el número de darks que tenemos).

A continuación guardamos la imagen

>save dark

Crear el flat es tan sencillo como escribir el siguiente código

>fill 1
>save flat

Por último debemos crear una lista de píxeles malos, que serán eliminados de las imágenes en el procesado. Para ello escribimos

>load dark
>find_hot cosmetic 316

Este último comando deberemos ejecutarlo varias veces con diferentes valores hasta que el número de píxeles malos (calientes) encontrados esté entre 100 y 200

El calibrado es el paso en el que cada imagen individual es procesada junto con los datos proporcionados por el dark, flat y offset. El primer paso es ejecutar el comando "number", que recupera la información sobre las imágenes.

>number light

A continuación hacemos click en "Digital photo->Preprocessing", y sólo será necesario introducir el nombre del archivo de píxeles malos (cosmetic) y el archivo de salida, que llamaremos "i".

Por último, convertiremos estas imágenes a RGB para poder trabajar con ellas. Esto lo conseguimos haciendo click en "Digital photo->Sequence CFA conversion".

Alineado y apilado de las imágenes

Las imágenes han sido tomadas sin seguimiento alguno, por lo que antes de sumarlas es necesario alinearlas correctamente. Este es el punto más delicado y lento del procesado. Hay que considerar el tipo de alineado entre imágenes, determinado por el grado del polinomio de transformación utilizado. Este polinomio puede tener un grado comprendido entre 1 y 5 de modo que cuanto mayor sea el grado mas complejo (y en teoría preciso) es el ajuste entre imágenes. En este caso usaremos un polinomio de grado 3. Para alinear las imágenes usamos el código escrito a continuación

>setregister 2
>coregister2 j k 88

En caso de que estas instrucciones produzcan un error grave de alineado, modificaremos el número de estrellas utilizadas en el alineado, mediante el comando

>setfindstar 7

El valor usado por defecto es 7. Aumentando este valor disminuimos el número de estrellas usadas para calcular la transformación de coordenadas, quedando únicamente las más brillantes

A continuación vamos a recortar las imágenes. Para ello primero debemos saber qué zonas del cielo son comunes a todas las tomas. Para ello escribimos

>add_norm k 88

Después seleccionamos un pequeño recuadro sin estrellas en la zona central de la imagen, zona que sabemos con seguridad que es común a todas las tomas (esta operación debe hacerse con zoom x1). Escribimos el siguiente comando:

>black

Ahora ajustamos el contraste en modo Auto, y se verá claramente dónde se encuentran los márgenes de nuestra imagen, tal y como se ve a continuación.

Ahora recortamos y normalizamos las imágenes con los comandos

>window2 k m x1 y1 x2 y2 88
>noffset2 m mnorm 0 88

Donde (x1,y1) y (x2,y2) son las coordenadas de la esquinas superior izquierda e inferior derecha respectivamente.

Por último realizamos el apilado de las imágenes, haciendo click en "Processing->Add a sequence" y configuramos el menú tal y como aparece en la imagen.

Si aparece algún artefacto o destello en la imagen, probaremos con sigma=2.85 y 2 iteraciones.

Finalmente guardaremos la imagen, para no tener que repetir el proceso completo en caso de querer modificar algún parámetro del procesado en el futuro.

>save stack

Eliminación del gradiente y ajustes de color

Una vez hemos apilado todas las imágenes, el primer paso es restar el gradiente del cielo. Este gradiente se produce generalmente a causa de la contaminación lumínica, y es muy notorio en las tomas individuales.

>setsubsky 3 4
> subsky

Con estos comandos hemos definido un polinomio de orden 4 que se ajusta al color del cielo en diferentes puntos de la imagen, y que es sustraido de la imagen original. El resultado es el siguiente.

A continuación ajustamos el balance de colores de la imagen. Primero seleccionamos una zona sin estrellas de la imagen, y ejecutamos el comando

>black

A continuación realizamos el balance de colores RGB, que dependerá de la sensibilidad de cada sensor. Para sensores Canon, los siguientes valores funcionan correctamente

>rgbbalance 1 0.51 0.628

Por último aplicamos una función de estirado del color, que realza los colores de la imagen

>asinh 0.005 30
>visu 32767 -5000

Ya sólo queda exportar la imagen a Photoshop para poder ajustar los niveles

>savepsd2 stack_final

Ajuste de niveles con Photoshop

Tras un leve ajuste de niveles con Photoshop, el resultado final es el siguiente.

Todos los derechos reservados

Leandro Ruiz Lozano, Cartagena, 2013