9- Preprocesado de imágenes en escala de grises (1/2)
9.1- Breves nociones teóricas
La señal registrada por una cámara CCD o por una
cámara digital es el resultado de la suma de 3 componentes:
- La señal proveniente del objeto observado (estrellas,
galaxias, nebulosas, fondo del cielo,…). Es la señal
útil o señal de luz
- La señal proveniente del ruido de lectura de la cámara, también llamada “bias” o señal de offset.
Esta señal indeseada está producida por los circuitos
electrónicos asociados a la decodificación de la imagen
captada por el sensor. Es, en una primera aproximación, una
característica de cada cámara independiente del tiempo de
exposición, de la temperatura o de cual sea el objeto
fotografiado. Se puede obtener una imagen del señal offset
haciendo una toma en absoluta oscuridad (objetivo tapado) con un tiempo
de exposición muy corto, el menor tiempo que nos permita la
cámara
- La señal proveniente del ruido térmico o de corriente oscura, también llamada dark.
Esta señal indeseada es debida al calor y tanto mayor al
aumentar la temperatura. También es proporcional al tiempo de
exposición (si doblamos el tiempo de exposición la
señal dark se multiplica por dos). Generalmente las
cámaras CCD son refrigeradas para reducir el ruido
térmico. Se puede obtener una imagen de la señal de ruido
térmico o dark efectuando una exposición larga en total
oscuridad (objetivo tapado). El ruido térmico aumenta el nivel
de intensidad de cada pixel de forma distinta y la toma dark presenta
un aspecto granulado y según las imperfecciones del sensor es
posible que se acumule en mayor medida en determinados píxeles
llamados píxeles calientes
o hot píxeles. Hay que tener en cuenta que la señal
oscura contiene implícita la señal offset. Para aislar la
señal oscura habrá que restar la señal de offset.
La finalidad del preprocesado es eliminar en la medida de lo posible
las señales indeseadas para extraer solamente la señal
útil con el mínimo ruido remanente. Debido a la
naturaleza aleatoria del ruido será imposible eliminarlo por
completo.
Una última operación que realizaremos en el preprocesado
consiste en corregir la no-uniformidad de la respuesta de los
píxeles, el viñeteo producido por las ópticas y
eliminar manchas y motas de polvo en el sensor. Para ello realizaremos
tomas sobre un fondo uniformemente iluminado a las que llamaremos
flats
(se pueden realizar al anochecer en una zona uniforme del cielo o sobre
una pantalla blanca uniformemente iluminada situada ante el objetivo
del telescopio. Los flats no deben realizarse con el mismo tiempo de
exposición que las tomas de luz sino que usaremos un tiempo de
modo que la intensidad de la señal quede hacia la mitad del
rango dinámico, ni muy claro ni muy oscuro. Hay también
que tener en cuenta que a esta señal flat habrá que
restarle su correspondiente señal dark (del mismo tiempo que la
señal flat) y señal offset. La señal flat pura
finalmente se divide de la toma de luz.
Para reducir el efecto aleatorio del ruido en estas tomas offset, dark
y flat, no se hace una sola toma sino que se hacen varias y se calcula
el promedio de todas ellas, obteniendo como resultado un masteroffset,
masterdark y masterflat. Este promedio puede realizarse de varios modos
(media, mediana,…) como ya veremos posteriormente.
Para resumir todo esto:
Señal de luz: toma del objeto que queremos fotografiar
Dark: toma oscura (objetivo tapado) generalmente del mismo tiempo de exposición que la toma de luz
Offset: toma oscura (objetivo tapado) del mínimo tiempo de exposición que permita la cámara
Flat: toma sobre un fondo uniformemente iluminado utilizando la misma cadena óptica que hemos usado en las tomas de luz
Dark del flat: toma oscura (objetivo tapado) del mismo tiempo de exposición que la toma flat
Masterdark: promedio de los dark
Masteroffset: promedio de los offset
Masterflat: promedio de los flats
Masterdark del flat: promedio de los dark del flat
La ecuación que resume todo el preprocesado es:
(señal de luz) – (masterdark) – (masteroffset)
Imagen preprocesada = ------------------------------------------------------------------------
(masterflat) – (masterdark del flat) – (masteroffset)
Nota: tal como está
expresada esta ecuación, hay que entender que el masterdark es
el promedio de los darks puros a los que previamente se ha restado el
masteroffset. De otro modo estaríamos restando dos veces el
masteroffset a la señal de luz y al masterflat lo cual
sería incorrecto
9.2- Preprocesado totalmente automático
Supongamos que tenemos los tres
masterframes
para la calibración de imágenes: masteroffset, masterdark
y masterflat, a los que para simplificar vamos a llamar simplemente
offset, dark y flat (para saber como se obtienen estos masterframes,
ver
TEMA11). Vamos a realizar el preprocesado de una secuencia de 6 imágenes de la galaxia NGC 4294.
offset:
dark:
flat:
Y una de las 6 imágenes que vamos a preprocesar o calibrar donde
se observa viñeteo, píxeles calientes, manchas del
sensor y numerosas sombras de motas de polvo.
Las imágenes en bruto las nombramos como n4294-1,
n4294-2,… n4294-6. El nombre genérico de la secuencia es
pues “n4294-“.
Nota: para determinar el número de imágenes de una secuencia podemos usar el comando
NUMBER de la consola, indicando como argumento el nombre genérico de la secuencia. Por ejemplo:
>NUMBER n4294-
Iris devuelve en la ventana de salida de datos el nº de
imágenes de la secuencia, la fecha de captura y carga en memoria
la primera imagen de la secuencia.
Abrir la ventana de diálogo del comando
Prétraitement 2 (Preprocessing 2) del menú
Prétraitement (Preprocessing) de la barra de herramientas.
Algunos campos son generados por defecto por Iris pero pueden modificarse.
De momento no usaremos el campo
Fichier cosmétique (Cosmetic file).
Clic en
OK.
A cada una de las imágenes de la secuencia
automáticamente se resta del dark y el offset y se divide por el
flat. Las imágenes son alineadas respecto a la primera imagen de
la secuencia (traslación simple). Las 6 imágenes
alineadas se suman y el resultado se visualiza en pantalla. Se
habrá creado en nuestra carpeta de trabajo una nueva secuencia
de imágenes calibradas y alineadas con el nombre genérico
“i” elegido: i1, i2,… i6.
Nota: al tener activada la casilla
Normalisation après addition (Normalize after add),
en realidad la suma es un promedio aritmético. Si no
activáramos esa casilla sobrepasaríamos el rango
dinámico y la imagen final quedaría excesivamente
saturada. En próximos capítulos veremos muchos más
métodos de alinear y promediar una secuencia de imágenes.
Este es el resultado de calibrar, alinear y sumar (promediar) las 6 imágenes:
9.3- Retoques finales
Recortar la zona común a las 6 imágenes, para ello
seleccionar un rectángulo arrastrando el ratón con el
botón izquierdo pulsado y usar la opción
Fenêtre (Crop) del menú que aparece al pinchar con el botón derecho (ver
TEMA8)
Se puede observar que el fondo del cielo no es uniforme debido a que
las imágenes han sido tomadas desde un cielo urbano. Este
problema puede corregirse usando el comando
Retrait du gradient (Remove gradient) del menú
Traitement (Processing) de la barra de herramientas.
Al hacer clic en
OK
Iris selecciona automáticamente puntos del fondo del cielo que
marca con cruces y ajusta una superficie definida por un polinomio de
grado elevado que pasa por todos esos puntos. Esta superficie es un
modelo numérico del fondo del cielo. Este fondo artificial es
restado automáticamente de la imagen.
El programa selecciona unos 2000 puntos del cielo evitando estrellas, galaxias y en general objetos brillantes.
Para ver el resultado, ajustar los umbrales de visualización
Ahora el fondo del cielo es mucho más uniforme, pero
todavía aparecen ciertos residuos de no-uniformidad a
pequeña escala. A pesar que la imagen ya está bastante
limpia, se puede intentar mejorar usando un filtro del tipo
“anneau médian” (ring median). Por ejemplo, guardamos el resultado obtenido en un fichero de nombre “temp” y aplicamos el comando
RING_MEDIAN desde la consola:
>SAVE temp
>RING_MEDIAN 25
El parámetro que requiere el comando
RING_MEDIAN indica la fuerza del filtro.
Guardamos este resultado con el nombre “ring” y lo restaremos de la imagen:
>SAVE ring
>LOAD temp
>SUB ring 150
El segundo parámetro del comando
SUB
es una constante que se añade al valor de cada pixel para
facilitar la visualización convirtiendo el resultado en una
imagen estrictamente positiva. Este es el resultado:
Si comparamos esta imagen con la imagen en bruto original se aprecia la gran mejora que aporta el preprocesado.
Invirtiendo los umbrales de visualización podemos observar la
imagen en negativo para una mejor detección de objetos
débiles:
RESUMEN DE LOS COMANDOS DE ESTE TEMA
NUMBER [NOMBRE SECUENCIA]
Devuelve el número de imágenes de la secuencia de imágenes NOMBRE SECUENCIA
RING_MEDIAN [RADIO]
Particular versión del “median filter” para eliminar
residuos de una imagen. El parámetro RADIO indica el
tamaño de los objetos que vamos a eliminar
SUB [NOMBRE] [OFFSET]
Resta a la imagen cargada en memoria la imagen NOMBRE. La constante OFFSET se suma al resultado