Procesado de imágenes astronómicas

Si tal como vimos en el número anterior de la revista, la obtención de imágenes astronómicas es compleja, el procesado no se queda atrás. Probablemente el  peso en la excelencia que tenga una astrofoto estará repartido entre un 50% en la obtención de la foto (técnica y calidad del equipo) y en un 50% en su procesado.

Hay varios programas que nos permiten procesar imágenes astronómicas. Entre los más usados están Pixinsight, StarTools e Iris. Aunque si hay que apostar por uno de calidad, con multitud de funciones y usado por los grandes profesionales del procesado, ese es, sin ninguna duda, Pixinsight. Su coste, cercano a los 200 euros, está más que justificado por la calidad del mismo y la cantidad de mejoras constantes que el equipo del programa desarrolla.

El aprendizaje del programa es complejo, pero por suerte cada vez hay más tutoriales en la red donde explican su manejo. Entre ellos los video tutoriales que realicé hace un tiempo y que son de los pocos que hay en lengua castellana (www.youtube.com/user/esmuysimple).

Mi propósito en este artículo no es hacer un tutorial sobre el funcionamiento del programa, sino que entiendan cuales son los procesos más comunes que se utilizan para procesar una imagen astronómica tomada con una cámara DSLR. Después quedará como trabajo pendiente para ustedes entender cada funcionalidad del programa y la manera de adecuar los parámetros en función de cada imagen astronómica y el objetivo a conseguir.

Voy a intentar ofrecer una explicación lo más sencilla y comprensible posible de como se realiza este tipo de trabajos. Así que, ¡empecemos!.

Apilado y calibrado

Como comentábamos en el anterior número de la revista, si hemos realizado correctamente el procedimiento de tomas fotográficas, debemos tener cerca de 30 fotos de nuestro objeto celeste, entre 15 y 30 darks, unos 50 bias y unas 50 tomas flats.

Los bias, darks y flats nos servirán para calibrar bien nuestra imagen y evitar, ruido, viñeteo, artefactos o manchas del sensor. Pixinsight tiene un script que nos realizará todo el proceso de calibración y apilado de manera automática. Para ello utilizaremos el script Batch-Pre-Processing de Pixinsight. 

Simplemente seleccionamos en las casillas correspondientes las tomas de nuestro objeto, los darks, bias y flats y algunos ajustes sencillos que van a depender del número de tomas que hayamos realizado.

El proceso de calibrado y apilado suele tardar entre 20 y 40 minutos dependiendo de la velocidad de nuestro procesador. Así que hay que tener paciencia.

Vamos a ver la diferencia entre nuestra imagen sin calibrar ni apilar; Nebulosa cabeza de caballo (fig. 1) y nuestra imagen apilada y calibrada (fig. 2).

Fig 1 toma sin apilar
fig 1
Fig2 toma con apilado
fig 2

Nótese como hemos eliminado las manchas del sensor, el viñeteo y el ruido. Todo ello nos permitirá empezar a procesar nuestra imagen con un archivo en bruto muy limpio que contiene la mayor información posible.

Recorte de los bordes

Es importante ahora realizar un recorte de los bordes, porque en el apilado se generan unos contornos que afean la imagen y pueden afectar al procesado posterior. Para ello usamos la función “Dynamic Crop”.

A partir de aquí vamos a realizar dos tipos de procesado; el primero se denomina lineal y de lo que se trata es de preparar nuestra imagen de manera que posteriormente podamos “jugar” con las herramientas de procesado (procesado no lineal) y extraer el máximo detalle de nuestra imagen.

Corrección de problemas de iluminación

El siguiente paso es corregir los problemas no uniformes en la iluminación de la imagen, generalmente provocados por la contaminación lumínica. Nos eliminará gradientes y restos de viñeteo. Para ello usaremos la función DBE (Dynamic Background Extraction). Seleccionamos unas muestras del fondo que no contengan nebulosidades. Lo podemos hacer de manera automática o manual. El programa realizará una serie de cálculos y nos dejará nuestra imagen preparada para la siguiente acción (fig. 3).

Fig3 DBE
fig 3

Calibrado de fondo y color

Ahora vamos a calibrar el color. Para ello neutralizamos antes el fondo, para que no haya demasiada dominante de ningún canal de color. Usaremos dos herramientas; Background Neutralization y Color Calibration.  Con ello conseguiremos una calibración de color adecuada. Pensemos que a nuestras tomas no le hemos aplicado ningún balance de blancos y, además, en el caso de la foto que nos compete, está tomada sin el filtro IR de la cámara, por lo que el color dominante es el rojo.

Ahora usamos una función denominada SCNR (Subtractive Chromatic Noise Reduction). Es una técnica de reducción de ruido de los píxeles verdes. Esto lo realizamos porque sabemos que en el cielo no “existen” objetos de color verde. (fig. 4, fondo neutralizado, calibrado de color y eliminación ruido verde).

Fig4 Calibración
fig 4

Eliminación del ruido por capas

Una de las grandes luchas en el procesado de nuestras imágenes es el control del ruido (grano) de la imagen. Tenemos que conseguir que sean lo más limpias posibles para poder extraer la máxima información. Es por ello que vamos a seguir eliminando ruido, esta vez usando la función Atrous Wavelet Transform (ATW). Con ello eliminaremos el ruido por capas. Tenemos que imaginar que nuestra imagen está compuesta como la piel de una cebolla, por varias capas. 

Normalmente de la 1 a la 6 ó 7. En la capa 1 y 2 no suele haber información, más bien es donde está la mayor parte del ruido de la imagen. En las capas 3, 4 y 5 suelen estar las estrellas y en las 6 y 7  las nebulosas o galaxias donde prácticamente no hay ruido. 

Con la función ATW indicamos el peso de eliminación de ruido para cada capa. Así, por ejemplo, le decimos que sea más agresivo en las capas 1 y 2, más moderado en las capas 3 y 4 y nada en el resto de capas, al considerar que prácticamente el ruido es despreciable y nos podría perjudicar más que beneficiar, provocando que nuestra imagen quede pastelosa y poco detallada.

Como sabemos que en las partes luminosas de la imagen no hay ruido, antes de proceder a aplicar la función ATW crearemos una máscara de luminancia, de manera que tape las zonas luminosas y deje al descubierto tan solo las oscuras, que es donde realmente queremos que actúe la eliminación de ruido (fig. 5, en parámetros especificamos el peso de eliminación de ruido para cada capa. Nótese como solo lo aplicamos a las primeras capas).

Fig5 ATW
fig 5

Estirado del histograma

Ahora ya tenemos nuestra imagen limpia y preparada para estirar el histograma y hacer una primera extracción de la información que contiene la imagen. Hasta ahora hemos trabajado con datos lineales y sin un estirado real del histograma, es decir, con la imagen “oscura”.

En el histograma toda la información está cercana al cero, que correspondería con el negro y esto es debido a que en las imágenes astronómicas el mayor peso de los píxeles tiende al negro, puesto que ese es el color aproximado del cielo nocturno.

Así que para extraer la información y que resalten los objetos fotografiados tenemos que estirar el histograma. Pixinsight tiene un script que permite fácilmente realizar dicho estirado. Dicha función se denomina Masked Strech. Lo que hace es estirar la imagen (subir los medios tonos) muy poco a poco, creando entre cada pequeño estirado una máscara que protege las estrellas y zonas muy luminosas y así evitamos que se quemen (sobre-exposición). (fig. 6, imagen estirada).

Fig6 Estirado
fig 6

 Una vez estirada nuestra imagen, cada maestrillo tendrá su librillo para procesar la foto y dejarla preparada para su presentación o publicación.

Como norma general, veremos que después del estirado por iteraciones  la imagen queda algo oscura y poco contrastada. También observaremos que hay estructuras (gases, polvo) donde podríamos extraer más detalle.

Para estirar un poquito más la imagen, utilizo el histograma (Histogram Transformation). Muevo la flechita de los medio tonos un poquito a la izquierda y recorto las sombras un poquito hasta donde empieza el histograma (flechas de la izquierda), (fig. 7, estirado del histograma).

Fig7
fig 7

Extracción de información del fondo

Podríamos aplicar una curva de contraste y también jugar con los medios tonos del histograma. Yo prefiero, antes de hacerlo, extraer más información del fondo de detalle de las pequeñas estructuras. Es por ello que utilizo el script Background Enhance y configuro los parámetros de manera que me extraiga la máxima información de las capas medianas, que es donde están las nebulosidades más débiles. (fig. 8, podemos ver la imagen antes de realzar las estructuras pequeñas y fig. 9, observamos que se aprecia mayor detalle de las nebulosidades más débiles).

Fig8 Background Enhance
fig 8
Fig9 Realce fondo
fig 9

Curva de contraste

Para mejorar el contraste podemos aplicar una curva de contraste en forma de S en el canal RGB con la función Curves Transformation (fig. 10).

Fig10 curva de contraste
fig 10

Prefiero seguir mejorando el contraste, pero usando una función más específica como es Local Histogram equalization.  Mejora el contraste local y visibilidad de las estructuras en la imagen. (fig. 11 y fig. 12, Imagen contrastada)

Fig11 Local Histogram
fig 11
Fig12 nebulosa contrastada

Saturación de color

Ahora es cuando yo le aplico saturación de color a la imagen. Hay varios sistemas para hacerlo. El más sencillo sería crear primero una máscara de luminancia para proteger las zonas oscuras de la imagen. Es decir, lo que queremos es saturar el color de las zonas luminosas pero no de las oscuras, ya que si lo hiciésemos sin máscara generaríamos ruido innecesario en el fondo negro.

Una vez hemos creado nuestra máscara, aplicamos una curva de saturación con la función Curves Transformatión y utilizando los iconos Saturation y Ciel Component (fig. 13).

Fig13 Saturación
fig 13

Resaltar estructuras oscuras

Ahora vamos a resaltar las estructuras oscuras de las nebulosas, sin afectar a las estructuras más luminosas. Es muy sencillo, simplemente utilizamos el script Dark Structure Enhance con los parámetros que vienen por defecto.

Enfoque

Nos quedan solamente dos pasos más para finalizar el procesado. Por un lado, debemos mejorar el enfoque de nuestra imagen. Para ello usaremos la función Deconvolution. Antes, aplicaremos una máscara de luminancia para proteger las zonas oscuras. Queremos enfocar solo las zonas visibles de la imagen, el fondo oscuro no es necesario y si lo hiciésemos generaríamos ruido. 

Hay que encontrar la configuración correcta para que el enfoque sea el adecuado. Esta es una acción algo compleja, pero hay varios tutoriales en la red que explican con detalle cómo podemos usar esta herramienta (fig. 14).

Fig14 enfoque
fig 14

Eliminación de ruido de luminancia y crominancia

Una vez hemos conseguido el enfoque adecuado jugando con las diferentes opciones del menú Deconvolution, solo nos queda volver a eliminar ruido de la imagen. Hay que tener en cuenta que cada proceso que efectuamos sobre nuestra imagen genera ruido.

Para eliminar sobre todo el ruido cromático, vamos a usar la función ACDNR, donde nos da la opción de configurar la eliminación de ruido en la luminancia y en la crominancia (ruido de color).  También nos da la opción de crear una máscara para proteger las zonas más luminosas donde se presupone que el ruido es casi inexistente (fig. 15).

Fig15 reducción de ruido
fig 15

 Ya tenemos nuestra imagen final, muy decente para ser mostrada. Se le podrían haber realizado multitud de procesos más y jugar con las capas. Podemos complicarlo mucho más según el grado de exigencia, conocimientos y calidad de las tomas.

Simplemente os he querido mostrar, sin entrar en muchos detalles, la complejidad que comporta realizar este tipo de fotos y que os hagáis una idea de cómo podemos pasar de una imagen como de la de la fígura 1 a nuestra imagen final, que es la que ilustra el principio de este artículo.

Fig16 imagen final

Raúl López

Comparte este artículo: