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:
- Realizar varias tomas dark (entre 5 y 15) con un tiempo de
exposición similar al de las tomas de luz (no más corto).
Intentar que temperatura sea similar a la de las tomas de luz.
- Realizar a continuación varias tomas offset con el tiempo
de exposición más corto que permita nuestra
cámara. Realizar el masteroffset como la mediana de todas las
tomas offset.
- Restar el masteroffset a cada una de las tomas dark individuales para eliminar el ruido de lectura.
- Integrar la secuencia de darks a los que se le ha restado
el
masteroffset para obtener el masterdark. Esto puede hacerse con un
simple promedio aritmético o todavía mejor con la mediana
ya que es un método más robusto para eliminar posibles
artefactos. El hecho de promediar varios darks es la clave para
obtener un masterdark lo más limpio posible. Este masterdark,
al igual que el masteroffset, puede considerarse como una
característica constante de cada cámara y utilizarse para
el calibrado de cualquier toma de luz. Pero es necesario realizar
revisiones periódicas para comprobar por ejemplo que no ha
aparecido nuevos píxeles calientes.
- Restar el masterdark a cada una de las tomas de luz. La
dificultad consiste en encontrar el coeficiente óptimo a aplicar
a la señal masterdark antes de realizar la sustracción.
Iris propone dos métodos para resolver el problema:
- El primer método consiste en minimizar el ruido en una
zona seleccionada de la imagen tras la sustracción del
masterdark. El cálculo se realiza analíticamente a partir
de un estudio estadístico de la zona seleccionada.
- El segundo método consiste en minimizar la entropía
de la imagen global y no es necesario por tanto seleccionar ninguna
zona de la imagen.
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