<Texto en Español al final>Australian planetary imager David Pretorius has published the raw data of one of his excellent Jupiter images:
http://www.iceinspace.com.au/forum/showthread.php?t=32254David has kindly given us permission to use his raw data to write a small tutorial on planetary image processing in PixInsight, which we present here. We hope you'll find it interesting and useful.
Here is the final image, processed with the procedures and techniques described herein:
1. Registration and Integration of Raw FramesThe FFTRegistration script comes in the default set of example JavaScript scripts of the latest PixInsight versions. This script can be used to perform the automatic registration (alignment) of a set of disk image files. As its name suggests, FFTRegistration uses Fourier-based image registration algorithms.
To run the FFTRegistration script, select
Script > Sample Scripts > FFTRegistration from the main menu.
On the FFTRegistration script dialog, click the Select button in the Reference Image section. The script will align a set of target images with respect to a reference image that we must select here.
In this example, we have selected as reference the first image of each set, which is supposed to be the best one in terms of relative quality.
Now we must select a set of images to be aligned. Click the Add button in the Target Images section:
On the Select Target Images dialog, we have selected all images of each set except the first one, which is the reference image. Obviously, including the reference image in the set of target images doesn't make any sense, although it doesn't hurt either.
Below you can see the FFTRegistration script dialog with the whole set of images selected for the red channel in this example.
The Registration Options section of the FFTRegistration script dialog allows you to select some parameters to control the image registration procedure. The rotation and scaling corrections are still experimental features that use development algorithms, so we don't recommend selecting these options for production work. Optionally, you can write the resulting registered images to a selected output directory in FITS format. You can also integrate (stack) all registered images by averaging them, which is just what we have done in this example.
When you are done, click the OK button and wait for the integrated image to appear. The Processing Console window will show you a lot of information about the ongoing processes. Here's a useful tip: the FFTRegistration script can run significantly faster if you hide the Processing Console window, by clicking on its Hide icon, as shown below. This is particularly useful if your computer isn't very fast.
When the script terminates its execution, it will create a new image window with the average of all registered images in 32-bit floating point format. It is convenient to change the identifier of this image, to facilitate its identification during the rest of our work.
After running the FFTRegistration script for each individual RGB channel, we have three grayscale images that correspond to the red, green and blue channels of the Jupiter image of our example. As we have said, each of these images is the average of all registered images for a single channel, and has been generated in 32-bit floating point format. In this example, we have renamed these images to Red, Green and Blue, respectively.
2. Mutual Alignment of Individual RGB ChannelsBefore continuing, we'll create working duplicates of the Red, Green and Blue images. This can be done very easily by dragging the corresponding view selectors with the mouse, or by selecting
Image > Duplicate from the main menu.
Now we'll apply a rough wavelet transformation to enhance details in the working duplicates. This enhancement will facilitate greatly the alignment procedure.
Note that we are not interested in these working duplicates; of course we'll do much better than these rough transforms. The purpose of the wavelet transformation applied here is to enhance local contrast of small-scale image structures that will be used as alignment references.
We'll begin by aligning the Green image with respect to the Red image. To this purpose, we'll use the DynamicAlignment tool in PixInsight. DynamicAlignment is a semi-automatic image registration process for high-precision registration of deep-sky images. Although this tool has been designed to use stellar images as registration references, with some care and a few tricks it can also be used to align high-resolution planetary images, provided that enough details are available.
With the DynamicAlignment interface opened, we select the reference image (Red in our example):
and then the target image, or the image that will be registered (Green):
To align planetary images, one must use small, high-contrast planet features as alignment references. DynamicAlignment allows you to use bright and dark features. Bright features (which are the equivalent to stars in deep-sky images) are selected by default. To select a dark feature, hold the Control key pressed while you click near a feature on the reference image, or click the
Invert icon at the top of the DynamicAlignment interface.
On the screenshot above, you can see how a Screen Transfer Function (STF) can be used to improve the visibility of details and alignment points. Also note the relatively small search radii (five pixels in the screenshot), necessary to use very small image structures as alignment references.
We have used seven alignment points. Two or three would suffice in this example, provided that they are not too close on the planetary disk. DynamicAlignment always performs a sub-pixel image registration. It is able to correct for arbitrary local distortions when three or more alignment points are defined. With less than three alignment points, DynamicAlignment applies an
affine transformation. With two alignment points, it can correct for translation (mutual displacement on the plane), rotation, and scaling in one direction. With just one alignment point, only translation can be corrected. Note that all registration points defined will be matched exactly in the registered image (labelled as
target image on DynamicAlignment), with respect to the reference image (
source image in DynamicAlignment).
Here you can see another screenshot taken while we were selecting alignment features for the Green image:
Recall that we have created duplicate working images, with the sole purpose of defining alignment points. What we really want is to align the original integrated images, that is, our Green and Blue images, with respect to the Red image. So we have to apply the DynamicAlignment instance to the Green image, as can be seen below:
This generates a Green_registered image:
A similar procedure has been applied to register the Blue image over the Red image, which has generated a Blue_registered image:
3. RGB Composite ImageAt this point the working duplicates are no longer necessary, and can be discarded.
Here are the three resulting images, namely Red, Green_registered, and Blue_registered, ready to be combined as a single RGB color composite image. The ChannelCombination tool can be used to carry out this simple task:
4. Detail Enhancement and Noise Reduction: ATrousWaveletTransform and GREYCstorationAfter applying ChannelCombination globally (F6), a RGB image is obtained. We have renamed it as RGB. You can see it here, while we were trying out some wavelet transformations:
Finally, here is the processed image, after a careful wavelet transformation, rotation, and additional noise reduction with the GREYCstoration algorithm:
We hope you'll like this small tutorial. Any comments or ideas will be welcome.
Thanks to Dave Pretorius for allowing us to work with his excellent raw images.
====================================================================================================================
====================================================================================================================
====================================================================================================================
El astrofotógrafo planetario australiano David Pretorius ha publicado los datos en bruto de una de sus excelentes imágenes de Júpiter:
http://www.iceinspace.com.au/forum/showthread.php?t=32254David nos ha dado permiso amablemente para utilizar sus datos en bruto con el fin de escribir un pequeño tutorial sobre procesamiento de imágenes planetarias en PixInsight, que presentamos aquí. Esperamos que os resulte interesante y útil.
Aquí está la imagen final procesada con los procedimientos y técnicas descritos en este tutorial:
1. Registro e Integración de Imágenes RawEl script FFTRegistration viene en el conjunto de scripts de ejemplo por defecto en las últimas versiones de PixInsight. Este script puede ser utilizado para llevar a cabo el registro (alineación) automático de un conjunto de imágenes almacenadas en archivos de disco. Como su nombre sugiere, FFTRegistration usa algoritmos basados en transformadas de Fourier.
Para ejecutar el script FFTRegistration, seleccione
Script > Sample Scripts > FFTRegistration desde el menú principal.
En el cuadro de diálogo del script FFTRegistration, haga clic en el botón
Select de la sección
Reference Image. El script alineará un conjunto de imágenes seleccionadas con respecto a la imagen de referencia, que debemos escoger aquí.
En este ejemplo hemos seleccionado como referencia la primera imagen de cada conjunto, que se supone que es la mejor en términos de calidad relativa.
Ahora debemos seleccionar un conjunto de imágenes para ser alineadas. Haga clic en el botón
Add de la sección
Target Images:En el diálogo
Select Target Images hemos seleccionado todas las imágenes de cada conjunto excepto la primera, que es la imagen de referencia. Obviamente, incluir la imagen de referencia en el conjunto de imágenes que serán registradas no tiene sentido, aunque tampoco causaría problema alguno.
En la captura de pantalla siguiente puede ver el diálogo del script FFTRegistration con el conjunto completo de imágenes seleccionadas para el canal rojo en este ejemplo.
La sección
Registration Options del diálogo del script FFTRegistration le permite cambiar algunos parámetros que controlan el proceso de registro de imágenes. Las correcciones por rotación y escala (
rotation y
scaling) son todavía funciones experimentales que emplean algoritmos en desarrollo, de manera que no le recomendamos seleccionar estas opciones para trabajos de producción. Opcionalmente, puede escribir las imágenes registradas resultantes en un directorio de salida (
output directory) seleccionable, en formato FITS. Puede también integrar todas las imágenes promediándolas, que es exactamente lo que hemos hecho en este ejemplo.
Cuando haya terminado, haga clic en el botón OK y espere hasta que aparezca la imagen integrada resultante. La ventana Processing Console se abrirá y le mostrará mucha información sobre el proceso en curso. Aquí tiene un consejo bastante útil: El script FFTRegistration puede ejecutarse significativamente más rápido si usted oculta la ventana Processing Console, haciendo clic en su icono
Hide (ocultar), como se muestra a continuación. Esto es particularmente útil si su computadora no es muy rápida.
Cuando el script termine su ejecución, creará una nueva ventana de imagen con el promedio de todas las imágenes registradas en formato de punto flotante de 32 bits. Es conveniente cambiar el identificador de esta imagen para facilitar su identificación durante el resto de nuestro trabajo.
Tras ejecutar el script FFTRegistration para cada canal RGB individual, tenemos tres imágenes en escala de grises que corresponden a los canales rojo, verde y azul de la imagen de Júpiter de nuestro ejemplo. Como hemos dicho, cada una de estas imágenes es el promedio de todas las imágenes registradas para un canal, y ha sido generada en formato de punto flotante de 32 bits. En este ejemplo hemos renombrado estas imágenes como Red, Green y Blue, respectivamente.
2. Alineación Mútua de Canales RGB IndividualesAntes de continuar crearemos duplicados de trabajo de las imágenes Red, Green y Blue. Esto se puede hacer muy fácilmente arrastrando los selectores de vista con el ratón, o seleccionando
Image > Duplicate desde el menú principal.
Ahora aplicaremos una transformación por wavelets bastante agresiva para potenciar los detalles en los duplicados de trabajo. Esta mejora de detalles facilitará mucho el proceso de alineación.
Tenga en cuenta que no estamos interesados en estos duplicados de trabajo; por supuesto, conseguiremos resultados mucho mejores que los que proporcionan estas transformaciones temporales. El propósito de la transformación por wavelets aplicada aquí es mejorar el contraste local para estructuras de la imagen de pequeña escala, que serán utilizadas como referencias de alineación.
Comenzaremos alineando la imagen Green con respecto a la imagen Red. Con este propósito, haremos uso de la herranmienta DynamicAlignment en PixInsight. DynamicAlignment es un proceso semiautomático para el registro de alta precisión de imágenes de cielo profundo. Aunque esta herramienta ha sido diseñada para utilizar imágenes estelares como referencias de alineación, con algún cuidado y usando unos pocos trucos también puede ser aplicada para alinear imágenes planetarias de alta resolución, siempre que existan suficientes detalles.
Con la interfaz de DynamicAlignment abierta, seleccionaremos la imagen de referenca (Red en nuestro ejemplo):
y a continuación la imagen destino (
target) que es la imagen a alinear (Green):
Para alinear imágenes planetarias se debe seleccionar características planetarias pequeñas y de alto contraste como referencias de alineación. DynamicAlignment le permite seleccionar características tanto brillantes como oscuras. Las características brillantes (que equivalen a estrellas en imágenes de cielo profundo) son seleccionadas por defecto. Para seleccionar una estructura oscura, mantenga la tecla Control pulsada mientras hace clic cerca de una característica sobre la imagen de referencia, o haga clic en el icono
Invert, en la parte superior de la interfaz de DynamicAlignment.
En la captura de pantalla de arriba puede ver cómo una función de transferencia de pantalla (
Screen Transfer Function) (STF) se puede usar para mejorar la visibilidad de detalles y puntos de alineación. Observe también los radios de búsqueda (
search radius) relativamente pequeños (cinco píxeles en la captura de pantalla), necesarios para usar estructuras de imagen muy pequeñas como referencias de alineación.
Hemos utilizado siete puntos de alineación. Dos o tres serían suficientes en este ejemplo, siempre que no se encuentren muy cercanos entre sí sobre el disco planetario. DynamicAlignment siempre realiza el registro de imágenes con precisión sub-píxel. Es capaz de corregir distorsiones locales arbitrarias cuando se definen tres o más puntos de alineación. Con menos de tres puntos de alineación, DynamicAlignment aplica una
transformación afín. Con dos puntos de alineación, puede corregir por traslación (desplazamiento mútuo sobre el plano), rotación, y cambio de escala en una dirección. Con sólo un punto de alineación, sólo es posible corregir por traslación. Tenga en cuenta que todos los puntos de alineación definidos coincidirán exactamente en la imagen registrada (etiquetada como
target image en DynamicAlignment), con respecto a la imagen de referencia (
source image en DynamicAlignment).
Aquí puede ver otra captura de pantalla tomada mientras estábamos seleccionando puntos de alineación para la imagen Green:
Recuerde que hemos creado imágenes duplicadas de trabajo, con el fin exclusivo de definir puntos de alineación. Lo que realmente queremos hacer es alinear las imágenes integradas originales, esto es nuestras imágenes Green y Blue, con respecto a la imagen Red. Por lo tanto, aplicaremos la instancia de DynamicAlignment a la imagen Green, como se puede ver a continuación:
Esto genera una imagen Green_registered:
Un procedimiento similar ha sido aplicado para registrar la imagen Blue sobre la imagen Red, lo cual ha producido una imagen Blue_registered:
3. Imagen Compuesta RGBEn este momento las imágenes duplicadas de trabajo ya no van a ser necesarias, y por lo tanto pueden ser descartadas.
Aquí puede ver las tres imágenes resultantes, Red, Green_registered, y Blue_registered, dispuestas para ser combinadas como una única imagen compuesta en color RGB. La herramienta ChannelCombination puede ser usada para llevar a cabo esta tarea simple:
4. Mejora de Detalles y Reducción de Ruido: ATrousWaveletTransform y GREYCstorationTras aplicar ChannelCombination globalmente (F6), se obtiene una imagen RGB. Nosotros hemos renombrado esta imagen como RGB. Puede verla aquí, mientras estábamos probando algunas transformaciones por wavelets:
Finalmente, aquí está la imagen procesada, tras una cuidadosa transformación por wavelets, rotación, y reducción de ruido adicional con el algoritmo GREYCstoration:
Esperamos que os guste este pequeño tutorial. Todos los comentarios e ideas serán bienvenidos.
Gracias a Dave Pretorius por permitirnos trabajar con sus imágenes en bruto.