MANUAL IRIS 5.51

10- Preprocesado de imágenes en escala de grises (2/2)

10.1- Introducción

El comando Prétraitement 2 (Preprocessing 2) del menú Prétraitement (Preprocessing) de la barra de herramientas explicado en el TEMA9 realiza un preprocesado completo cuyo resultado es una secuencia de imágenes calibradas y alineadas. Pero en determinadas ocasiones es útil disponer de las imágenes calibradas sin alinear para poder alinearlas con métodos específicos. Por ejemplo cuando la imagen contiene muy pocas o muchas estrellas.

El comando Prétraitement 1 (Preprocessing 1) del menú Prétraitement (Preprocessing) de la barra de herramientas realiza un preprocesado calibrando las imágenes con los correspondientes dark, offset y flat; pero el resultado es una secuencia de imágenes sin alinear.

Consideremos tres imágenes en bruto de la región de la galaxia M105, con nombre m105_1, m105_2 y m105_3:



y las tres imágenes maestras asociadas: masteroffset, masterdark y masterflat que para simplificar llamamos simplemente offset, dark y flat



10.2- ¿Qué hacer si no disponemos de la imagen maestra offset?

Que no cunda el pánico, tenemos dos soluciones:

Método 1

Cargar en memoria una cualquiera de las imágenes en bruto

>LOAD m105_1

Dar a todos los píxeles de la imagen el valor típico de la imagen offset de nuestra cámara con el comando FILL. Por ejemplo:

>FILL 377

Guardar el resultado de este offset artificial

>SAVE offset

Método 2

Ver el tamaño de una cualquiera de nuestras imágenes en bruto con el comando INFO

>LOAD m105_1
>INFO

En nuestro ejemplo, observamos que el comando INFO nos devuelve en la ventana de salida que el tamaño de la imagen es de 384x256 píxeles.

Creamos una imagen virgen de ese tamaño con el comando NEW:

>NEW 384 256

asignamos a todos los píxeles el valor característico de offset de nuestra cámara con el comando FILL:

>FILL 377

y guardamos el resultado de este offset artificial

>SAVE offset

10.3- ¿Qué hacer si no disponemos de la imagen maestra flat?

Del mismo modo podemos crear un flat artificial, por ejemplo:

>LOAD m105_1
>FILL 10000
>SAVE flat

Pero éste es un simple recurso que nos crea un flat totalmente plano para poder realizar el preprocesado. Es altamente recomendable realizar un flat verdadero.

Nota: Del mismo modo podemos crear un dark artificial si no disponemos del verdadero, aunque es poco recomendable.

10.4- Preprocesado

Para empezar, cargamos en memoria la primera de las imágenes. Definimos un rectángulo con el ratón entre 100 y 200 píxeles de largo que contenga el mínimo de objetos brillantes. Este rectángulo será utilizado por Iris para efectuar el cálculo de minimización de ruido térmico.

Tras seleccionar la zona, abrimos el cuadro de diálogo del comando Prétraitement 1 (Preprocessing 1) del menú Prétraitement (Preprocessing) de la barra de herramientas con los siguientes parámetros:



Clic en OK y se crea la secuencia de imágenes preprocesadas i1, i2, i3 en nuestra carpeta de trabajo. En estas imágenes se ha restado el offset y el dark optimizado y se ha dividido el flat. Podemos observar cualquiera de estas imágenes preprocesadas, por ejemplo:

>LOAD i1



10.5- ¿Cómo ajustar los umbrales de visualización de una secuencia de imágenes?

Iris mantiene en los encabezados de los ficheros (PIC o FITS) los umbrales de visualización efectivos antes de guardarlos. ES posible modificar estos umbrales con el comando TH_CUT. Por ejemplo:

>TH_CUT i i 1600 500 3

En este ejemplo los umbrales de visualización de la secuencia i1, i2, i3 pasan a ser (1600, 500).

Lo mismo puede hacerse con el comando Seuils d'une séquence (Threshold of a sequence) del menú Visualisation (View) de la barra de herramientas:



10.6- Optimización del dark

Para largos tiempos de exposición, uno de los mayores problemas del preprocesado consiste en eliminar el ruido de corriente oscura. Esta señal parásita se añade a la señal útil y es mayor al aumentar la temperatura y al aumentar el tiempo de exposición.

La solución clásica para eliminar este ruido consiste en restar a la imagen de luz una señal tomada con el objetivo tapado (dark) a la misma temperatura y del mismo tiempo de exposición. El cálculo parece simple, no obstante en la práctica este procedimiento no es siempre aplicable o no se obtienen los resultados esperados. A no ser que tengamos una temperatura medida y regulada con gran precisión lo más cerca posible del sensor, siempre existe incertidumbre entre el valor de la temperatura del sensor en el momento de la toma de luz y de la toma oscura o dark. Además, la temperatura del sensor de una cámara digital no puede considerarse estable en el tiempo. Por ejemplo, los circuitos internos y el propio sensor se calientan en función de la periodicidad de las tomas y tampoco podemos considerar que la temperatura sea homogénea en todas las zonas del sensor.

El procedimiento más eficaz es adquirir la toma oscura (dark) en unas condiciones lo más similares posibles a las tomas de luz en cuanto a tiempo de exposición y temperatura, pero multiplicando el dark por un coeficiente de modo que después de restar el dark a las tomas de luz el ruido quede minimizado. Por ejemplo, para una misma temperatura, si las imágenes de luz son de 60 segundos y las tomas dark son de 120 segundos, el coeficiente será próximo a 0,5.

Hay que tener en cuenta que las tomas dark contienen su propio ruido y este ruido se hace patente al restar el dark de las tomas de luz. Es pues importante crear un masterdark lo más limpio posible.

Un buen método para eliminar el ruido de corriente oscura consiste en seguir la siguiente secuencia:
Iris propone dos métodos para resolver el problema:
Para probar cualquiera de estos dos métodos, cargamos en memoria una de las tomas de luz y usamos el comando Optimisation du noir (Dark optimisation) del menú Prétraitement (Preprocessing) de la barra de herramientas. Elegir la opción Réduction de l'entropie (Reduce entropy) e introducir el nombre de nuestra señal masterdark (dark). De momento no nos ocupamos del Fichero cosmético.


Al pulsar en OK Iris devuelve en la ventana de salida el valor del coeficiente óptimo a multiplicar al masterdark antes de la sustracción. En nuestro ejemplo el valor del coeficiente es 0.323

También puede hacerse desde la consola de comandos tecleando el comando OPTE

>OPTE dark

Si multiplicamos el dark por el coeficiente obtenido (0.323) y lo restamos a cada una de las tomas de luz, su entropía será mínima. Desde la consola de comandos podemos hacer:

>LOAD dark
>MULT 0.323
>SAVE tmp
>LOAD m105_1
>SUB tmp 0
>SAVE i1
>LOAD m105_2
>SUB tmp 0
>SAVE i2
>LOAD m105_3
>SUB tmp 0
>SAVE i3

o de un modo más compacto:

>LOAD dark
>MULT 0.323
>SAVE tmp
>SUB m105_ tmp i 0 3

Si seleccionamos la opción Soustraire (Substract), la resta del dark se realiza automáticamente con el coeficiente óptimo, lo que nos permite visualizar inmediatamente el resultado.

Si seleccionamos la opción Optimisation du noir (Dark optimization) de la ventana de diálogo del comando Prétraitement 2 (Preprocessing 2) del menú Prétraitement (Preprocessing) de la barra de herramientas, la optimización del dark se realiza automáticamente. Si no activamos esta opción, el coeficiente es la unidad y el dark es restado tal cual.

Hay otras alternativas posibles. Por ejemplo, separar en dos operaciones distintas el cálculo del coeficiente y el preprocesado:

>LOAD m105_1
>OPTE dark
>LOAD dark
>MULT 0.323
>SAVE n

y ahora realizar el preprocesado usando n como dark pero sin activar la opción de optimización del dark (que ya hemos hecho a través de comandos)



Si probamos la optimización del dark por reducción de ruido rms en una zona de la imagen:



Iris nos devuelve un coeficiente 0.319 (hay escasa diferencia con el valor obtenido con el método de reducción de la entropía). El comando equivalente desde la consola de comandos es OPT:

>OPT dark

Este es el método que se utiliza en la ventana de diálogo del comando Prétraitement 1 (Preprocessing 1) del menú Prétraitement (Preprocessing) de la barra de herramientas.

Las funciones de cálculo de optimización del dark son compatibles con imágenes en color (los canales R, G y B precisan una evaluación por separado). Por ejemplo:



A la izquierda una imagen de larga exposición realizada con una cámara digital color. A la derecha el dark

Resultado tras la optimización por reducción de entropía:



10.7- Corrección cosmética

La corrección cosmética consiste en tratar específicamente algunos píxeles o algunas columnas o lineas de la imagen. Iris puede realizar un tratamiento específico pixel a pixel, al que llamamos corrección cosmética. Por ejemplo un pixel caliente que satura la imagen es sustituido por el valor de los píxeles adyacentes.

Las zonas de la imagen (píxeles) que deben ser sometidas a un tratamiento cosmético están identificadas en un fichero llamado cosmético. Por ejemplo, éste seria el contenido de uno de estos ficheros:

P 120 310
P 9 501
P 232 140
L 100 0
C 20 0

Las coordenadas de los píxeles están precedidas de la letra P. En nuestro ejemplo (120, 310), (9, 501) y (232, 140). La linea 100 será considerada como defectuosa y también la columna 20. Estos píxeles, filas y/o columnas defectuosas serán sustituidas por sus adyacentes. El nombre del fichero cosmético debe tener obligatoriamente la extensión ".lst". Por ejemplo "cosme.lst" sería un nombre válido.

Iris puede detectar más o menos automáticamente los píxeles defectuosos o calientes con el comando de la consola FIND_HOT. Cargamos la imagen dark y aplicamos el comando FIND_HOT:

>LOAD dark
>FIND_HOT cosme 1000

En este ejemplo, todos los píxeles que tiene un valor de intensidad superior al umbral (1000) serán considerados defectuosos y se incluirán en el fichero cosme.lst que se visualiza en la ventana de salida

Podemos probar con distintos valores del umbral. El número de píxeles calientes dependerá del tamaño del sensor, de su tecnología de fabricación, de la temperatura,... Por ejemplo, con los sensores que equipan las cámaras reflex digitales, el número de píxeles calientes puede superar la centena, pero eso representa una fracción ínfima del número total de píxeles. El contenido del fichero cosmético es relativamente estable para un determinado sensor, pero es recomendable actualizarlo cada cierto tiempo.

Para tener en cuenta el fichero cosmético en el preprocesado, es suficiente indicar el nombre del fichero en la ventana de diálogo. Por ejemplo:



También puede usarse la optimización del dark con el fichero cosmético, pero en ese caso los píxeles marcados como defectuosos no son utilizados en el cálculo del coeficiente óptimo.

También es posible realizar un tratamiento cosmético de una imagen individual, fuera del preprocesado, utilizando el comando COSME. El parámetro de este comando es el fichero cosmético y el proceso se aplicará a la imagen cargada en memoria. Por ejemplo, si el fichero cosmético se llama cosme.lst, haremos:

>COSME cosme

si el fichero cosmético fuera bad.lst, haríamos:

>COSME bad

Podemos aplicar la corrección cosmética a una secuencia de imágenes. Abrimos la ventana de diálogo Correction cosmétique (Cosmetic correction) del menú Prétraitement (Preprocessing) de la barra de herramientas. Por ejemplo:



El cálculo se aplica a las imágenes i1, i2, i3. En este caso el resultado es una secuencia con el mismo nombre (las imágenes de la secuencia inicial son reemplazadas). Lo mismo puede hacerse desde la consola:

>COSME2 i i cosme 3

RESUMEN DE LOS COMANDOS DE ESTE TEMA

FILL [VALOR]
Rellena la imagen cargada en memoria con todos píxeles de igual intensidad VALOR

INFO
Devuelve información sobre la imagen cargada en memoria (tamaño, fecha y hora de adquisición, tiempo de exposición). En imágenes FITS devuelve también el valor de los parámetros del encabezado

NEW [X] [Y]
Crea una imagen llena de ceros de tamaño X por Y píxeles

TH_CUT [ENTRADA] [SALIDA] [VALOR ALTO] [VALOR BAJO] [NÚMERO]
Ajusta los umbrales de visualización a VALOR ALTO y VALOR BAJO de una secuencia de imágenes de nombre genérico ENTRADA generando una nueva secuencia SALIDA

OPTE [DARK]
Calcula el coeficiente óptimo a multiplicar a DARK para minimizar la entropía de la imagen cargada en memoria

OPT [DARK]
Calcula el coeficiente óptimo a multiplicar a DARK para minimizar el ruido rms de la imagen cargada en memoria. Requiere seleccionar previamente una zona de la imagen.

FIND_HOT [FICHERO COSMÉTICO] [UMBRAL]
Crea el fichero FICHERO COSMÉTICO.lst con las coordenadas de los píxeles de la imagen cargada en memoria que superan el valor UMBRAL 

COSME [FICHERO COSMÉTICO]
Sustituye los píxeles defectuosos de la imagen cargada en memoria indicados en FICHERO COSMÉTICO.lst por la media de los píxeles adyacentes

COSME2 [ENTRADA] [SALIDA] [FICHERO COSMÉTICO] [ NÚMERO]
Igual que COSME pero para una secuencia de NÚMERO imágenes ENTRADA y la convierte en una secuencia de imágenes SALIDA con los píxeles defectuosos indicados en FICHERO COSMÉTICO sustituidos por la media de los píxeles adyacentes