MANUAL IRIS 5.51

5- Guardar una imagen

5.1- Guardar una imagen en disco

Después de realizar cualquier proceso a una imagen es posible guardarla en nuestro disco duro. El comando simétrico a LOAD es el comando SAVE. La sintaxis del comando SAVE es muy simple, el único parámetro requerido es el nombre del fichero que vamos a guardar, precedido de su ruta de acceso en el caso de que deseemos guardarlo en otra carpeta que no sea la de trabajo. Por ejemplo:

>SAVE observatory

Iris asigna automáticamente la extensión del fichero. No debe indicarse la extensión en el comando.

También se puede guardar una imagen a través del comando Sauver (Save) del menú Fichier (File) (o clic en el icono Guardar  de la barra de herramientas). En el desplegable Tipo de la ventana Guardar como, podremos elegir la extensión. SI el formato elegido es TIFF o PNG cada pixel será codificado a 48 bits.



Existen otros comandos disponibles desde la consola para guardar imágenes con diferentes formatos. Por ejemplo:

 >SAVEPNG observatory

guarda en nuestra carpeta de trabajo el fichero de 48 bits “observatory.png”

Del mismo modo se puede guardar como JPEG, en ese caso será necesario indicar el nivel de compresión con un valor entre 1 y 5. El valor 1 nos indica la máxima calidad:

>SAVEJPG observatory 1

Y el valor 5 la máxima compresión:

>SAVEJPG observatory 5

Si se guarda una imagen en formato JPEG desde el menú de la barra de herramientas, Iris usa por defecto la máxima calidad.

También puede guardarse una imagen en formato PSD utilizado por Photoshop a través del comando SAVEPSD.

Una secuencia ordenada de imágenes PIC puede ser transformada a una secuencia de imágenes FIT con el comando PIC2FITS, por ejemplo:

>PIC2FITS entrada salida 37

convierte las imágenes entrada1, entrada2,… entrada37 en la secuencia de imágenes salida1, salida2,… salida37

El comando PIC2BMP realiza exactamente lo mismo pero con formato BMP

El comando EXPORT crea un fichero RAW (bruto) a partir de una imagen de 16 bits. La sintaxis es:

EXPORT [NOMBRE] [ENCABEZADO] [OCTETOS POR PIXEL] [INVERSO (0 ó 1)]

NOMBRE: nombre de la imagen que va a ser guardada. Es necesario añadir la extensión (por ejemplo .dat)
ENCABEZADO: tamaño del encabezado del fichero en octetos. Si no queremos encabezado, poner un 0
OCTETOS POR PIXEL: número de octetos utilizado para codificar cada pixel de la imagen (normalmente 2)
INVERSO: valor 0 para procesadores Intel (IBM PC) y valor 1 para procesadores Motorola (MAC Apple)

Ejemplo:

>EXPORT fichero.dat 0 2 0

Existe el comando equivalente para cargar ficheros RAW, el comando IMPORT con la misma sintaxis.

Nota: el comando EXPORT2 es similar al comando EXPORT, pero el código interno de Iris [-23768… 32767] se convierte en [0… 65535]

El comando EXPORT_ASC ofrece la posibilidad de guardar una imagen en formato de fichero de texto ASCII con tres columnas. El fichero es pues editable con un programa editor de textos. La primera columna contiene las coordenadas X de cada pixel, la segunda columna las coordenadas Y de cada pixel y la tercera columna el valor de la intensidad de cada pixel de coordenadas (X,Y). El comando equivalente para abrir una imagen en formato de texto ASCII es IMPORT_ASC.
 
5.2- El aspecto de mi imagen guardada en formato TIFF o PNG es muy extraña!?

Si la imagen guardada tiene este aspecto en vuestro programa de edición de gráficos…



… la razón es que contiene valores negativos que no son aceptados por nuestro programa. Es fácil darse cuenta de la presencia de valores negativos con el comando de la consola STAT

>STAT

El resultado aparece en la ventana Sortie (Output) de Iris:



Se observa que el valor mínimo es -125. La solución es sencilla, sumar una constante a todos los píxeles con el comando OFFSET

>OFFSET 125

o con el comando Addition (Add) del menú Traitement (Processing) de la barra de herramientas:



Otro problema clásico cuando se exporta una imagen de Iris hacia otro programa de gráficos es que la imagen aparece muy oscura. Se pueden ajustar los niveles desde el programa de gráficos o se puede ajustar el rango dinámico con Iris antes de guardar la imagen. A menudo el problema está en que el rango dinámico está entre 0 y 255 (puede verse con el comando STAT). Estos 255 niveles sólo llenan una pequeña fracción de los 48 bits. Para obtener una correcta visualización de la imagen en nuestro programa de gráficos podemos multiplicar por una constante con el comando MULT para alcanzar el máximo rango dinámico. Por ejemplo:

>MULT 128

o con el comando Multiplication (Multiply) del menú Traitement (Processing) de la barra de herramientas:


 
5.3- Exportar una imagen “RAW” hacia Photoshop

Para exportar imágenes de 48 bits (16 bits por canal) hacia Photoshop puede utilizarse el comando SAVEPSD o guardar en FIFF o PNG. Un método alternativo es usar el comando EXPORT que soporta imágenes de 48 bits. Por ejemplo:

>EXPORT observatoryraw.raw 0 2 0

El primer parámetro es el nombre del fichero (es necesario indicar la extensión), el segundo parámetro es el tamaño del encabezado, el tercer parámetro indica el número de octetos por pixel (8 ó 16 bits) y el cuarto parámetro indica si el orden es compatible con Intel (valor 0) o con Motorola (valor 1).

Una vez exportado el archivo ya puede abrirse con el comando Abrir de Photoshop.



Nótese que hay que indicar el tamaño de la imagen (el comando INFO de Iris nos dará esa información). La imagen tiene 3 canales (Channels) de 16 bits, indicamos que nuestro procesador es, por ejemplo, Intel (IBM PC) y el tamaño del encabezado (Header).

Es posible que la imagen aparezca un poco oscura y deberemos usar los niveles de Photoshop para ajustar el histograma.

Nota: si  es necesario eliminar valores negativos, puesto que Photoshop no acepta esos valores, antes de exportar podemos usar el comando CLIPMIN:

>CLIPMIN 0 0

Otra solución es usar el comando OFFSET, por ejemplo:

>OFFSET 300

si el valor mínimo es -300, eso lo podemos saber con el comando STAT.

5.4- ¿Cómo extraer los canales R, G y B de una imagen de 48 bits?

Desde el menú Photo numérique (Digital photo) de la barra de herramientas, usar el comando Séparation RGB (RGB separation)



Al hacer clic en OK las imágenes r.pic, g.pic, b.pic se crearán en nuestra carpeta de trabajo. Son imágenes en escala de grises que contienen la información de cada canal. Podemos visualizarlas haciendo:

>LOAD r        (canal rojo)
>LOAD g       (canal verde)
>LOAD b       (canal azul)

Otra alternativa para separar los tres canales R, G y B es usar el comando SPLIT_RGB

>SPLIT_RGB r g b

La separación de canales es útil para determinadas funciones de Iris que sólo funcionan con imágenes de 16 bits.

Para reconstruir una imagen en color a partir de los tres canales R, G y B podemos usar el comando de la consola TRICHRO:

>TRICHRO r g b

 o en su forma compacta TR:

> TR r g b

o a través del comando (L)RGB… del menú Visualisation (View) de la barra de herramientas:



RESUMEN DE LOS COMANDOS DE ESTE TEMA

SAVE [NOMBRE]
Guarda la imagen en memoria en nuestra carpeta de trabajo con el formato especificado en el menú Réglages (Settings). Opcionalmente puede indicarse la ruta de acceso. Por ejemplo:
>SAVE observatory

SAVEPNG [NOMBRE]
Guarda la imagen en memoria en nuestra carpeta de trabajo con formato PNG de 48 bits

SAVEJPG [NOMBRE] [CALIDAD]
Guarda la imagen en memoria en nuestra carpeta de trabajo con formato JPEG. El parámetro CALIDAD, un número entre 1 y 5, indica el grado de compresión. 1 para máxima calidad y 5 para máxima compresión.

SAVEPSD [NOMBRE]
Guarda la imagen en memoria en nuestra carpeta de trabajo con formato PSD de Photoshop de 48 bits (16 bits por canal). La imagen en memoria no debe contener píxeles con valores negativos.

PIC2FITS [ENTRADA] [SALIDA] [NUMERO]
Convierte una secuencia de imágenes PIC en una secuencia de imágenes FITS
[ENTRADA]: nombre genérico de la secuencia de entrada
[SALIDA]: nombre genérico de la secuencia de salida
[NUMERO]: número de imágenes de la secuencia

PIC2BMP [ENTRADA] [SALIDA] [NUMERO]
Convierte una secuencia de imágenes PIC en una secuencia de imágenes BMP

EXPORT [NOMBRE] [ENCABEZADO] [OCTETOS POR PIXEL] [INVERSO (0 ó 1)]
Convierte una imagen en memoria en un fichero con formato no estándar
[NOMBRE]: nombre de la imagen que va a ser guardada. Es necesario añadir la extensión (por ejemplo .img)
[ENCABEZADO]: tamaño del encabezado del fichero en octetos. Si no queremos encabezado, poner un 0
[OCTETOS POR PIXEL]: número de octetos utilizado para codificar cada pixel de la imagen (normalmente 2)
[INVERSO]: valor 0 para procesadores Intel (IBM PC) y valor 1 para procesadores Motorola (MAC Apple)
Por ejemplo:
>EXPORT fichero.img 256 2 0

EXPORT2 [NOMBRE] [ENCABEZADO] [OCTETOS POR PIXEL] [INVERSO (0 ó 1)]
Igual que el comando EXPORT pero el código interno de Iris [-23768… 32767] se convierte en [0… 65535]

EXPORT_ASC [NOMBRE]
Guarda una imagen en formato ASCII en tres columnas. La primera columna contiene las coordenadas X de cada pixel, la segunda columna las coordenadas Y de cada pixel y la tercera columna el valor de la intensidad de cada pixel de coordenadas (X,Y)

IMPORT [NOMBRE] [X] [Y] [ENCABEZADO] [OCTETOS POR PIXEL] [INVERSO (0 ó 1)]
Carga en memoria una imagen en un fichero con formato no estándar
[NOMBRE]: nombre de la imagen. Es necesario añadir la extensión (por ejemplo .dat)
[X] [Y]: Tamaño de la imagen en píxeles
[ENCABEZADO]: tamaño del encabezado del fichero en octetos.
[OCTETOS POR PIXEL]: número de octetos utilizado para codificar cada pixel de la imagen (normalmente 2)
[INVERSO]: valor 0 para procesadores Intel (IBM PC) y valor 1 para procesadores Motorola (MAC Apple)
Por ejemplo:
>IMPORT file.dat 480 640 256 2 0

IMPORT_ASC [NOMBRE]
Carga en memoria una imagen en formato ASCII de tres columnas

STAT
Devuelve información en pantalla de las estadísticas de una imagen

OFFSET [VALOR]
Suma a cada pixel de la imagen el número VALOR que puede ser positivo o negativo

MULT [VALOR]
Multiplica cada pixel de la imagen por el número VALOR

CLIPMIN [VIEJO] [NUEVO]
Asigna el valor NUEVO a todos los píxeles de la imagen cuyo valor es inferior a VIEJO. Este comando es útil para forzar a una imagen a tener valores estrictamente positivos, por ejemplo:
>CLIPMIN 0 0

CLIPMAX [VIEJO] [NUEVO]
Asigna el valor NUEVO a todos los píxeles de la imagen cuyo valor es superior a VIEJO

SPLIT_RGB [R] [G] [B]
Separa una imagen a color en sus tres canales R, G y B

TRICHRO [R] [G] [B]
Carga tres imágenes R, G y B para componer una imagen a color.