2014
Tratamiento
Digital de
Imgenes
Facultad de Ingeniera U.N.R.C.
Alumno:
Toledo Matias
DNI:31925008
TDI 2014
Facultad de Ingeniera
U.N.R.C
Introduccin
El siguiente trabajo se realiz como exmen prefinal de la ctedra de Tratamiento
Digital de Imgenes. El objetivo del mismo es realizar en lenguaje Python un cdigo que
reciba una imgen satelital multiespectral desde un archivo de texto, separe las distintas
bandas espectrales y permita realizar combinaciones de capas para armar imgenes RGB.
Adems, deben mostrarse y almacenarse en formato de fotografa (.png .jpg).
La imagen satelital multiespectral proviene del satlite Terra, el cual tiene a bordo
un instrumento de imagen de alta complejidad llamado Aster. Este dispositivo contiene
distintos sensores, los cuales son los encargados de captar energa en distintas zonas del
espectro electromagntico(bandas).
TDI 2014
Facultad de Ingeniera
U.N.R.C
Desarrollo
Para comenzar hay que decir que en la actualidad las imgenes satelitales son cada
vez ms utilizadas y requeridas por diferentes areas de la ciencia que se muestran
interesadas en aprovechar esta valiossima informacin. Cada sensor es responsable de una
banda. Esto significa que cada sensor capta energa reflejada de distintas porciones del
espetro eletromagntico. Cada capa o banda aporta distinto tipo de informacin, que
combinadas en una imagen RGB pueden utilizarse para darle falso color a la imagen
satelital, permitiendo al usuario apreciar distintos detalles. Cabe aclarar que las imagenes
captadas por cada sensor son imgenes en escala de grises.
En lo que respecta a la programacin del script, el primer paso fue interiorizarme en
como trabajaba este dispositivo de imagen ASTER, para saber cuantas bandas espectrales
estaban representadas en el archivo de texto. A continuacin un resumen de las
caractersticas del mismo:
ASTER
Consiste de tres subsistemas pticos separados, con alta resolucin espectral y espacial.Los
radimetros miden en el visible e infrarrojo cercano (VNIR), en el infrarrojo de onda corta
(SWIR) y en el rango infrarrojo trmico (TIR).
El subsistema VNIR realiza observaciones con un telescopio en posicin nadir, en las
porciones del verde (banda 1) y rojo (banda 2) del espectro visible y en el infrarrojo de
onda corta (banda 3N), con una resolucin espacial de 15m. Adems tiene otro telescopio
que realiza vistas hacia atrs (banda 3B) lo que permite la visin estereoscpica en el
sentido de la rbita y la generacin de modelos digitales de elevaciones (MDE). El
subsistema SWIR tiene 6 bandas y el tamao del pxel es de 30m. El subsistema TIR tiene
5 bandas en el rango trmico y 90m de resolucin espacial.(ver anexo)
TDI 2014
Facultad de Ingeniera
U.N.R.C
capa tiene un total de 864 lneas y el archivo tiene un total de 14 capas. Cabe aclarar que se
trabajo solo con 8 porque parte del archivo estaba corrupto.
A continuacin dar una breve explicacin de las funciones que fueron desarrolladas en el
trabajo:
Funcion eliband: Se encarga de pedir al usuario el numero de banda individual que desea
visualizar. Retorna una variable en formato de string con el nombre de la banda que el
usuario escogi.
Funcin bda2matriz(bda): Se encarga de formar la matriz correspondiente a cada banda
espectral y convertirla a un formato numrico para que pueda ser representada
posteriormente como una imagen. Recibe como argumento de entrada la banda que se
desea convertir en matriz y retorna como argumento de salida una matriz numrica de 864
filas y 1380 columnas.
Funcin bdaimagen(I): Se encarga de mostrar la imagen correspondiente a determinada
banda espectral. Recibe como argumento de entrada una matriz numrica.
Funcion RGB: Se encarga de pedir al usuario que ingrese en forma de tupla los nmeros
ordenados de las 3 bandas que desea combinar para formar una imagen RGB. Forma una
matriz tridimensional con las 3 bandas que el usuario escoge y convierte todos sus valores
en enteros de 8 bits(uint8), ya que el mtodo importado fromarray que utiliza esta funcin
lo requiere asi. Finalmente almacena esta matriz en un archivo con formato PNG que
guarda en el mismo directorio que se encuentra el script principal ejecutado.
TDI 2014
Facultad de Ingeniera
U.N.R.C
TDI 2014
Facultad de Ingeniera
U.N.R.C
TDI 2014
Facultad de Ingeniera
U.N.R.C
TDI 2014
Facultad de Ingeniera
U.N.R.C
Conclusin
Con la realizacin del trabajo se repasaron y fijaron conceptos estudiados en la
materia, pudindoselos aplicar en una actividad prctica que es de mucha utilidad en el
campo del procesamiento de imagenes satelitales. Adems me interioric en un lenguaje de
programacin potente y muy utilizado en la actualidad como lo es Python.
Algunas propuestas de mejoras al trabajo realizado seran: optimizar el cdigo,
incorporar a las funciones realizadas las opciones de mejoras de la imagen como la de
aumento de brillo y contraste,entre otras.Tambin se podran realizar estas mejoras
independientemente en cada una de las componentes de las matrices tridimensionales RGB,
asi como tambien elaborar histogramas para comparar las imaganes antes y despues del
procesamiento.
TDI 2014
Facultad de Ingeniera
U.N.R.C
Anexos
Archivo prefinal.py
#! /usr/bin/python
from funciones import *
def main():
opcion=input ("Ingrese 1 para una sola banda y 2 para combinacion RGB: ")
if opcion !=1 and opcion !=2:
print 'opcion no valida'
main()
if opcion==1:
bdaimagen(bda2matriz(eliband()))
if opcion==2:
RGB()
if __name__ == "__main__":
main()
Archivo funciones.py
#! /usr/bin/python
from PIL import Image
import pylab as plt
import numpy as np
import sys
f=open('Imagen.txt','r')
TDI 2014
Facultad de Ingeniera
U.N.R.C
TDI 2014
Facultad de Ingeniera
U.N.R.C
if banda==[]:
print "coloque un valor entre 1 y 14"
a=eliband()
return a
return banda
TDI 2014
Facultad de Ingeniera
U.N.R.C