lunes, 6 de abril de 2009

El casco de Thor de Jim Misti

Bueno, pues recientemente Jim Misti publicó nuevos datos para procesar:
http://www.mistisoftware.com/Astronomy/index_fits.htm

Entre las nueve imágenes nuevas publicadas, he seleccionado la NGC 2359 (Thor's Helmet). Los datos contienen apiladas diez tomas de cinco minutos para la luminancia (unbinned) y otras cinco de cinco minutos para cada canal RGB (binning 3x3). Todo a través del telescopio RC de 32":


Hay una versión a mayor resolución disponible en el siguiente enlace:
http://www.wrunch.com/viewer.php?id=bwy1238864343l.jpg

Y como comparación, aquí tenéis los mismos datos procesados por Robert Gendler:
http://www.robgendlerastropics.com/NGC2359JM.html

domingo, 15 de marzo de 2009

Gran Campo en Sagitario

Qué os parece cómo está quedando el asunto? Necesito de nuevo una perpectiva exterior para ver si voy por el buen camino, así que podéis dejar aquí vuestros comentarios.

En el siguiente enlace aparece la imagen de partida:
http://pteam.pixinsight.com/sonnenstein/sagitario_raw.jpg

Como os comentaba, el procesado de esta imagen ha sido realizado siguiendo un criterio bastante distinto la resto de imágenes que llevo procesando estos días.

Y en este otro enlace se muestra el resultado previo del procesado:
http://pteam.pixinsight.com/sonnenstein/sagitario_test.jpg


El primer paso, antes de nada, consta de un único ajuste de medios tonos realmente agresivo en el canal RGB/K combinado (0.00001). Este ajuste entrega valores de píxel en toda la imagen en torno a 0.9995!!!

A continuación ajustando el rango dinámico (Autoclip en las sombras y las luces) el fondo del cielo pasa a tener valores en torno a 0.4 - 0.6, tal y como se muestra en el siguiente video:


Este primer ajuste no siempre suele funcionar en imágenes CCD, porque los datos RAW ya suelen ocupar todo el rango dinámico disponible, aunque eso sí, muy comprimidos en las sombras. Así que ajustar el rango dinámico después de aplicar esta función de transferencia de medios tonos tan agresiva no afectará al resultado. Sin embargo, para los que aún disponéis de imágenes tomadas con film, este método os va a permitir dar un aspecto mucho más lineal a toda la imagen, de forma que creo que se puede aproximar bastante a lo que se obtiene en condiciones óptimas con una DSLR y una sola toma de 10-15 minutos.

Pues bueno, en esta etapa tan temprana del procesado, creo es un buen momento para hacer una reducción de ruido, por dos motivos:

- Aplicar una función de transferencia de medios tonos tan agresiva ha dejado la campana del histograma con forma de sierra. Es decir, el ruido está ahora por todas partes, distribuido en todo el rango tonal de la imagen.


- El algoritmo de reducción de ruido y la protección de bordes de ACDNR se adapta mucho más fácilmente cuando los valores del fondo del cielo se encuentran como en este caso en una zona del rango elevada.

Por fortuna, el ruido de lectura que genera el escáner de film es relativamente fácil de remover mediante ATWT, ya que este tipo de ruido suele estar distribuido en frecuencias espaciales elevadas. Así que simplemente eliminé la primera capa de wavelets, seleccionando una función de escalado gaussiana y un kernel 3x3.


Si embargo el ruido generado por el grano de la película ya es 'harina de otro costal'. Aquí he tenido que aplicar dos reducciones de ruido:

- La primera reducción incluye un valor de desviación estándar en torno a 1.8 en la luminancia y 2.5 en crominancia, utilizando valores de umbral simétricos para la protección de bordes. Es obvio que, en estos casos, una máscara de luminancia invertida, ajustada con wavelets y curvas, ayuda siempre a definir de forma mucho más controlada las zonas de la imagen donde es necesario que actúe más o menos la reducción de ruido.

- La segunda reducción es solo para la luminancia, aplicando un valor de filtro más alto (StdDev= 6,5). Igualmente seleccioné valores simétricos para la protección de bordes, pero con umbrales mucho más bajos. Finalmente reajusté de nuevo el rango dinámico, porque como bien sabéis, la función del filtro en ACDNR tiende a reducir ligeramente el contraste, especialmente en las zonas de relación señal/ruido más pobre, que es donde la máscara permite al filtro actuar en mayor medida.

En este punto es buena idea reducir también el ruido cromático con SCNR en el canal verde. Nada novedoso aquí que contar, salvo que en este caso me funcionó mejor el método Maximum.

Ahora es cuando neutralizo el fondo del cielo. En esta imagen existen pocas regiones que puedan definirse propiamente como fondo, así que tuve que confiar en la interpolación que ejecuta DBE después de colocar algunas muestras en la zona superior de la imagen. Como simpre que se neutraliza correctamente el fondo del cielo, la zona izquierda de la campana del histograma se hace más recta y empinada, por lo que nos vuelve a dejar libre una pequeña porción del rango dinámico en las sombras. Así que con HistogramTransformation le doy de nuevo un ligero empujón al contraste en la imagen.

Hasta ahora la imagen está muy lejos de mostrar un equilibrio de color. Sin embargo, ya que no es posible disponer de una imagen lineal por culpa del fallo de reciprocidad que padece el film, es relativamente fácil calibrar el color modificando los medios tonos independientemente en cada canal RGB.

Por último, lo más divertido fue incrementar al máximo la saturación de color mediante una MTF en el canal C (espacio CIE L*c*h*) desde LRGBCombination, antes de pasar a la acción con el procesado multiescala, separando las estructuras de pequeña escala y sustrayéndolas de las escalas mayores, que es donde aparecen mejor definidas las estructuras de la Vía Láctea. Sobre estas estructuras aplico HDRWT usando ocho capas, una iteración. Como sabéis esta acción incrementa el contraste global a toda la imagen dentro de unas estructuras definidas. Luego reinserto el resultado junto con la imagen de pequeña escala y la original. Esta operación provoca en ocasiones un pequeño desequilibrio entre las estructuras pequeñas y el resto de la imagen. Así que he aproveché para añadir más peso en las pequeñas estructuras, mientras aplicaba iterativamente filtros morfológicos y wavelets a las estrellas.

Toca ahora un buen curro con CloneStamp.

lunes, 8 de diciembre de 2008

M45: Epsilon 180ED (procesado)

Estos días he tenido tiempo de finalizar el procesado de M45 con el Epsilon 180ED de Takahashi. Lo más complicado ha sido aplanar el fondo, ya que existían unos gradientes muy fuertes, especialmente en el margen inferior derecho.

Todos los datos de captura se encuentran en el siguiente enlace:
http://pteam.pixinsight.com/sonnenstein/gallery/m45.htm



martes, 18 de noviembre de 2008

DarkStructureEnhance JavaScript

Me complace anunciar que el nuevo script DarkStructureEnhance en PixInsight está ahora disponible:
http://pteam.pixinsight.com/sonnens...ctureEnhance.js

Es posible acceder también a la correspondiente documentación:
http://pteam.pixinsight.com/sonnenstein/dse/dse.htm

DarkStructureEnhance (DSE) realza las estructuras oscuras en los objetos de cielo profundo. Así mismo, el script permite también extraer una máscara para el perfecto aislado de dichas estructuras.

Para incluir DarkStructureEnhance dentro de las utilidades script de PixInsight, solo hay que incluir el código desde el menú Script>Feature Scripts…

miércoles, 29 de octubre de 2008

M45 - Epsilon 180ED (Primera luz)

Esta es la primera luz con el Epsilon 180ED de Takahashi. La foto aún está a medio procesar, únicamente tiene un ajuste inicial de histogramas y saturación de color. Son un total de 17 tomas de 10 minutos con la Canon EOS 350D a ISO 200, sin darks ni flats, desde Rassos de Peguera (Barcelona) y la temperatura ambiental fue de unos 2º durante la adquisición de las tomas


La imagen presenta dos problemas. En primer lugar el enfoque se realizó manualmente sin ayuda de ordenador, únicamente a través de la pantallita de la cámara. El punto de enfoque fue variando entre cada toma durante la noche, por lo que el resultado de la imagen combinada está ligeramente fuera de foco. Por otro lado, esta cámara impide correctamente la llegada de los rayos de luz del telescopio, el cual tiene una relación focal muy corta de F/2.8, lo que genera algunos gradientes muy molestos que solo pueden corregirse eficazmente mediante la adquisición de unos buenos flats. Este efecto provoca también una dispersión de la luz en las estrellas situadas en la parte inferior de la imagen, generando unos 'spikes' adicionales que no forman parte de la araña del espejo secundario. Lógicamente este problema no se produce con cámaras CCD.

martes, 7 de octubre de 2008

Transformaciones por wavelets

Bueno, pues me animé hace unos días a realizar con esta excelente imagen de Maximo Ruiz un pequeño experimento con wavelets a partir de los datos en bruto.


A diferencia de lo propuesto por Maxi en Procesado básico de una toma, en PixInsight , en la que nos muestra la descomposición de la imagen por capas, yo he aplicado sobre toda la imagen transformaciones por wavelets, pero a través de una máscara. Esta máscara es una combinación de la luminancia y una máscara de estrellas, utilizando la siguiente expresión en PixelMath:

mask * ~star_mask

Todos los ajustes de wavelets los he llevado a cabo de forma completamente lineal, antes de cualquier función de transferencia de medios tonos. Previamente he neutralizado el fondo mediante el script JavaScript Background Neutralization escrito por Oriol Lehmkuhl, el cual está disponible públicamente en: http://pixinsight.com/forum/viewtopic.php?t=799

Aquí podéis ver los resultados obtenidos en una comparación mouse-over. Por favor, situad el cursor del ratón sobre los enlaces de abajo y esperad hasta que carguen las imágenes:

http://astrosurf.com/astro35mm/tutorial/ngc253/mouseover_fa.htm

La primera transformación de wavelets es básicamente una técnica de restauración de imagen, en la que he realzado los detalles de pequeña escala y aumentado el contraste global en toda la galaxia, aplicando únicamente todos los parámetros sobre la luminancia.

La segunda transformación está pensada para realzar la crominancia de la imagen. Al incrementar el brillo y contraste de las pequeñas estructuras de la luminancia, casi siempre se produce una pérdida de saturación de color. En http://pixinsight.com/examples/deconvolution/Gemini-NGC5189/en.html Juan Conejero propone para el realce de saturación de color algo más elegante que un ajuste de color mediante curvas. Este procedimiento consiste en una función de transferencia hiperbólica. Y esto es precisamente lo que he hecho aquí. Esta función generalmente es aplicada sobre las componentes de gran escala sin afectar a las pequeñas, únicamente sobre aquellas estructuras representadas en la capa residual de una transformación por wavelets. Y por supuesto de forma completamente lineal.

Estos son los iconos de proceso utilizados en este ejemplo:


Para cargar los iconos de proceso en la plataforma de PixInsight Core 1.2 haced click con el botón derecho de ratón sobre el fondo de la aplicación y seleccionar Load Process Icons... Por último hay que hacer doble click sobre el icono de proceso y automáticamente PixInsight Core cargará los parámetros en la ventana de ATrousWaveletTransform.

Pues esta es mi pequeña aportación.

sábado, 13 de septiembre de 2008

Modelización del fondo del cielo

A partir de la extración del fondo de una imagen de cielo profundo podemos corregir los problemas no uniformes de la iluminación y del color, tales como los asociados al viñeteo. Este procedimiento forma parte de la propia calibración de la imagen, e idealmente debería aplicarse sobre los datos raw lineales.

PixInsight dispone de dos módulos de procesamiento con mecanismos de extracción de fondo dinámico y automático:
  • AutomaticBackgroundExtraction (ABE)
  • DynamicBackgroundExtraction (DBE)

En situaciones normales ABE obtiene una excelente modelización del fondo de la imagen, mientras DBE es más flexible y apropiado cuando se enfrenta a casos más complicados, especialmente cuando hay que refinar mucho más el procedimiento, y el usuario puede intervenir dinámicamente sobre la imagen.

Dependiendo de la naturaleza del problema en diferencias de iluminación y/o color, la corrección de la imagen debe hacerse mediante una resta o división. El viñeteo por ejemplo es un efecto multiplicativo, así que la división es lo más apropiado. Por otro lado, la polución lumínica y extinción atmosférica son efectos aditivos, por lo que se deben neutralizar restando.

Este es un caso de viñeteo fácil de corregir con ABE mediante una división. He utilizado la mayoría de parámetros incluidos por defecto, excepto los que corresponden a la generación y rechace global de muestras, evitando así que algunas de las cajas sean incluidas sobre el objeto fotografiado.

Figura 1.- Original con viñeteo

Figura 2.- Distribución de las muestras en ABE

Figura 3.- Extracción automática de fondo (pseudo-flat)

Figura 4.- Corrección con ABE mediante división

DBE en cambio es más adecuado en casos más complejos, como esta fotografía de gran campo afectada por la extinción atmosférica y polución lumínica. En esta prueba utilizo exclusivamente los parámetros por defecto, los cuales introducen ya una mejora considerable.


El hecho de poder intervenir dinámicamente sobre la imagen permite al usuario colocar manualmente las muestras sobre el fondo del cielo y forzar al mecanismo de modelización en situaciones difíciles, como pueden ser los propios gradientes de la Vía Láctea.