jueves, 24 de abril de 2014

M109 - Procesado de una galaxia en monocromo

Acabo de finalizar el procesado de la imagen de M109, una galaxia en la Osa Mayor, bastante brillante, y al tratarse de una galaxia barrada es bastante espectacular.

La imagen la capturé en 2 sesiones, a finales de marzo y primero de abril, ya que la nubes no me dejaron hacerlo en una única sesión. En total he podido procesar 40 exposiciones de 180 segundos, tomadas con la Atik 314L+ y con el refractor SW 80ED, y como siempre bajo un cielo muy iluminado.

En esta ocasión y con la ayuda de PixelMath, he reducido mucho los pixels brillantes y oscuros, antes de aplicar la deconvolución, lo que ha permitido controlar mucho mejor el ruido, ya que en anteriores procesados, el ruido de la imagen se realza con la deconvolución. En esta ocasión lo he controlado mejor y se nota en el resultado final.

Como siempre, tras finalizar el procesado, veo que tal vez falta algo de exposición, pero con un total de 2 horas de exposición, doy la imagen por buena.

En un futuro añadiré color a la imagen, ya que tengo algunas tomas con la DSLR de esta misma galaxia, pero son pocas, y aumentan mucho el ruido, si en un futuro puedo capturar más imágenes, le daremos color a la imagen.

En esta ocasión utilizaré el formato PNG para guardar las imágenes, ya que el JPEG se degrada mucho al subirlo al blog.

La imagen finalizada

La imagen finalizada, así como los datos de la misma puede consultarse en la página web:
http://www.astrosurf.com/jcmoreno/galeria/gx/M109/M109.htm

La imagen completa final


Detalle de la galaxia



Aspecto de PixInsight tras el proceso de la imagen, he incluido el nombre de cada proceso en los correspondientes iconos.


Como siempre se realiza el preprocesado de las imágenes, para su calibración y registro, con el script BatchPreprocessing.

Recorte y corrección de gradientes

La imagen resultante del preprocesado, con darks, bias y flats.


Como puede verse existen unos gradientes y sobre todo unos defectos en los bordes de la imagen, debido a artefactos propios de la CCD, y que se repiten en todas las imágenes.

Para empezar, realizamos un recorte de la imagen para aislar los bordes. Para esta función utilizo DynamicCrop


Ahora aplicamos DBE a la imagen recortada para eliminar los gradientes.


Para aplicar el DBE, siempre genero de forma automática una red de puntos (20-30 por fila) y posteriormente corrigo la posición de los puntos que caen sobre la galaxia o sobre estrellas. este es un proceso de prueba y error, hasta conseguir una buena corrección de la imagen. Tras DBE, la imagen resultante queda así.


Ahora la imagen presenta un fondo de cielo plano, sin gradientes, y sin defectos en los bordes. Este es el punto de partida para iniciar el proceso de reducción de ruido.

Reducción de ruido

Para efectuar la reducción de ruido, primero creo una máscara de luminancia para proteger las áreas de mayor relación señal/ruido, de forma que el proceso se aplique al fondo de cielo principalmente.

Para crear la máscara, duplicamos la imagen y con HistogramTransformation, aplicamos los valores de estirado que nos da STF (ScreenTransferFunction).


De esta manera obtenemos una imagen con el histograma estirado. Debido a que en anteriores procesado, la máscara contiene el ruido inicial de la imagen, este ruido de la máscara se traslada a los procesos posteriores, principalmente a la deconvolución, por lo que en este procesado he optado por suavizar un poco la máscara antes de aplicarla, de forma que se elimine parte del ruido de la misma. Esto lo realizo con el proceso de Convolution, y los parámetros muy suaves, tal y como se muestran.

Puede verse el aspecto de la máscara antes y después de aplicar Convolution.


Ya tenemos la máscara preparada, por lo que podemos aplicarla a la imagen. Puede verse que la máscara protege la galaxia y las estrellas, y permite el tratamiento del ruido de fondo.


Ahora con la ayuda del nuevo proceso MultiscaleLinearTransform (que sustituye a ATrousWaveletTransform), realizamos una reducción del ruido en las 4 primeras capas de la imagen. Utilizando los parámetros de Threshold y Iterations mostrados a continuación.

En la imagen puede verse el efecto de la reducción de ruido, sin afectar la galaxia ni las estrellas.


Después y con la ayuda de MultiMedianTransform, se acaba de reducir el ruido, para este proceso se utilizan unos parámetros similares a los aplicados en MultiscaleLinearTransform.


En este punto el ruido se ha reducido mucho, pero aún quedan algunos pixels brillantes y oscuros que se han de eliminar, sino estos se acentuarán en el momento de realizar el proceso de Convolución. Es importante dejar la imagen lo más suave posible, sin pixels que ensucien la imagen de la galaxia.

Primero eliminaremos los pixels brillantes. Para esto utilizaremos PixelMath, y el proceso definido por Manfred Schwarz (ver la entrada relativa a M87).


La imagen de la izquierda es antes de aplicar PixelMath, y a la derecha después del proceso. Puede apreciarse que se han eliminado los pixeles brillantes de la misma, manteniendo la imagen de la galaxia sin grandes cambios. Aún se aprecian en la imagen resultante los pixeles oscuros que trataremos en el siguiente paso.

La formula utilizada es:


A continuación eliminamos los pixeles oscuros, para lo cual, buscamos los pixeles que están rodeados por pixeles más brillantes, así se eliminan pixeles aislados.

Dado que en las pruebas realizadas, se ha detectado que los casos en que hay 2 pixeles oscuros juntos, se ejecuta el proceso 2 veces. Si el pixel cumple con la condición, se sustituye por el valor medio de los pixeles circundantes.

La formula PixelMath que he preparado, es:


Una vez se aplica 2 veces sobre la imagen, el aspecto mejora mucho, tal y como se ve en la imagen de la derecha.


En este momento, podemos dar por finalizado el proceso de reducción de ruido.

Deconvolución

Mientras tenemos la imagen de forma lineal, esto es, sin haber realizado un estirado del histograma, es el momento de aplicar una deconvolución para mejorar la definición de la imagen.

Uno de los principales riesgos del proceso de deconvolución, es que si se realiza de forma muy agresivo se aumentará el ruido de la imagen. También si la imagen de partida, contiene ruido en las zonas a tratar (galaxia o nebulosa), este ruido se hará más visible, motivo por el que es tan importante aplicar un buen tratamiento de reducción de ruido.

Preparar la imagen para el proceso de deconvolución, supone generar lo siguiente:

  1. Imagen de la PSF (PointSpreadFunction) de la imagen.
  2. Máscara de estrellas, para proteger las estrellas más brillantes de efector de Ringing (efecto Gibbs).
  3. Máscara de protección del fondo de cielo, ya que la deconvolución solo se aplicará al objeto de interés (galaxia o nebulosa).

Generar imagen PSF

Para este proceso utilizaremos el proceso DynamicPSF. En este proceso marcamos estrellas de la imagen que servirán de referencia para crear la PSF. Hay que seleccionar estrellas no saturadas y que tampoco sean muy débiles. Lo mejor es seleccionar estrellas que el campo 'A' esté entre 0.2 y 0.8, pero si hay pocas con esta condición, normalmente extiendo el rango entre 0.1 y 0.9.


 Una vez tenemos las estrellas seleccionadas, y que estén distribuidas sobre toda la imagen, procedemos a generar la PSF. Para ello seleccionamos todas las estrellas y con el botón 'Export a syntheticPSF', se genera la imagen de la PSF, y la guardamos para después.


Generar máscara de estrellas

A continuación hay que generar una máscara de estrellas para proteger las estrellas más brillantes de la imagen, ya que el proceso de deconvolución puede provocar Ringing en las mismas (efecto Gibbs).

Para generar la máscara de estrellas, utilizo el proceso StarMask, con las opciones indicadas funciona suficientemente bien. El objetivo no es proteger todas las estrellas, sino solo las más brillantes. Al igual que con la PSF, guardamos la imagen de la máscara.


Generar máscara de la imagen

Finalmente generamos una máscara para proteger el fondo de cielo del proceso de deconvolución, dejando expuesto solo el objeto de interés y las estrellas.

Para este proceso utilizo RangeMask, con los parámetros indicados, pero se debe ajustar la máscara por prueba y error, verificando que la galaxia, no quedará cubierta por la máscara. Para evitar transiciones bruscas en la imagen resultante, se suaviza un poco los limites de la máscara con Smoothness.


A continuación aplicamos la máscara a la imagen, y verificamos que solo cubre el fondo de cielo, y tanto la galaxia como las estrellas no quedan protegidas.


Aplicar deconvolución

Para aplicar la deconvolución se selecciona la PSF y en el apartado de Deringing, se selecciona la máscara de estrellas. Para el tratamiento de esta imagen, se han utilizado los parámetros indicados a continuación.

Para garantizar el correcto resultado, puede variarse el número de iteraciones, así como los valores de wavelets. También es necesario ajustar el parámetro GlobalDark del Deringing.


Una vez satisfechos con los parámetros se aplica a la imagen entera. En la siguiente imagen puede verse el resultado de aplicar la deconvolución con los parámetros indicados.


Puede verse que ha mejorado el tamaño de las estrellas, así como la definición de los brazos de la galaxia. Es importante no forzar en exceso el proceso de deconvolución, sino de lo contrario aumenta mucho el ruido en la imagen.

Estirado del histograma y mejorar el fondo de cielo

Ahora ya puede estirarse el histograma, y pasar a una imagen no lineal, para continuar con el tratamiento. Para este proceso utilizo StretchMask, que se ha introducido como proceso con la versión 1.8.

Se utilizan los parámetros por defecto, que generan un fondo de cielo con un valor de 0.125.


En este momento la imagen gana contraste a la vez que se oscurece el fondo de cielo. A partir de este momento se resetea la STF, para ver el resultado tal y como quedará.

En la imagen se perciben algunas áreas oscuras, que son pequeñas fluctuaciones en el fondo de cielo, que deben corregirse. para ello con PixelMath, aplicamos la formula descrita por Gerald Wechselberger (ver entrada de M87 en este blog).

A continuación se muestra el efecto de aplicar PixelMath y corregir las áreas oscuras, con lo que el fondo de cielo se ve más suave. Para aplicar PixelMath, hay que utilizar el valor de la mediana de la imagen, que puede obtenerse con Statistics.



Reducción de estrellas

Con la imagen en modo no lineal, podemos aplicar un proceso de reducción de estrellas, de forma que se mejore el tamaño y la forma de las estrellas. Para este proceso, es necesario crear una máscara de estrellas para proteger el fondo de cielo.

Para crear la máscara se utiliza StarMask, con los valores indicados.


Aplicamos la máscara de estrellas sobre la imagen, y a continuación se utiliza el proceso MorphologicalTransformation. Para la reducción de estrellas se utiliza el operador Erosion y un patron de 5x5 circular, con los parámetros indicados.

En la siguiente imagen puede verse el efecto de MorphologialTransformation.



Debido a que las estrellas han perdido algo de brillo, se intensifica un poco las mismas con MultiscaleLinearTransform, actuando sobre la capa 2.


Ajuste final

Finalmente se ajusta el brillo de fondo de cielo con CurvesTransformation. Este proceso se realiza por prueba y error, hasta conseguir un brillo de la imagen suficientemente bueno, así como un fondo de cielo oscuro. para esta imagen el fondo de cielo se mantiene en 0.05.


A continuación se orienta la imagen de acuerdo con su aspecto real, con el norte en la parte superior y el este a la izquierda. Este proceso tenía de haberse realizado al inicio del tratamiento, pero en esta ocasión lo he realizado al final, antes de dar por finalizada la imagen.


A continuación solo queda dar el nombre definitivo a la imagen, guardar y generar la imagen en formato JPEG y con las resoluciones requeridas para su publicación.

Espero que sea de utilidad.

Saludos,

No hay comentarios:

Publicar un comentario