Download Desarrollo de un Programa de Procesamiento Digital de
Document related concepts
no text concepts found
Transcript
Desarrollo de un Programa de Procesamiento Digital de Imágenes Lugo, Jorge O. - Sampallo, Guillermo M. - Gonzáles Thomas, Arturo Depto. de Física Fa.C.E.N.A. - U.N.N.E - Corrientes - Argentina E-mail: jolugo@exa.unne.edu.ar - sampallo@exa.unne.edu.ar - gtarturo@exa.unne.edu.ar ANTECEDENTES Los programas de procesamiento de imágenes son paquetes cerrados o semicerrados, en los cuales solo nos dejan incorporar algunos parámetros y en el mejor de los casos, alguna matriz máscara para realizar un filtro. También existen fuentes de programas de procesamiento digital de imágenes (Spider, Khoros, etc.), en lenguaje Fortran, Pascal, C, etc., que tenemos que agruparlos, compilarlos, ejecutarlos y al resultado numérico convertirlo en un formato de imagen (Gif, BMP, Jpeg, etc.) para visualizar las imágenes procesadas, resultando un forma impráctica de trabajar. Teniendo en cuenta, esto desarrollamos un software de procesamiento digital de imágenes amigable e interactivo. La idea principal del desarrollo de este software es la de un paquete abierto, con posibilidad de ampliación a nuevas aplicaciones ó modificaciones convenientes, es decir, que el software tiene la ventaja de poder ir agregando distintos algoritmos de tratamiento de imágenes, encargándose luego de mostrar en pantalla la imagen resultado. La tecnología de programación a objeto nos posibilitó el rápido desarrollo de este software con especial tratamiento para imágenes corrompidas por ruido speckle, su nombre es SpeckVisor 1.0, en él se encuentran todos los algoritmos que desarrollamos para ruido speckle y los de uso más común. M ATERIALES Y MÉTODOS Para la programación del software se utilizó el lenguaje Java ( Java Developer’s Kit 1.1.5 ), elegido por sus características de portabilidad, orientación a objeto, capacidad gráfica y facilidad para incorporarlo a Internet. De especial interés es su portabilidad; el desarrollo del software en Java lo hace independiente de la plataforma, (Macintosh, PC compatible, Unix, Linux, etc.) ,y la programación de objetos del lenguaje, tiene la ventaja de la modularidad con la cual los programas son más fáciles de modificar, actualizar versiones y sus códigos resultan reutilizables. En la Fig. 1 y 3 vemos la aplicación del programa bajo el entorno Windows 95 realizando un tratamiento de imagen específico. En él, se observan claramente cinco menús principales. Los formatos de imágenes que se puede visualizar y tratar con este programa son, GIF y JPEG (jpg) ya que son los más usados por Internet. ALGORITMOS USADOS Para el desarrollo de los algoritmos más conocidos que realizan tratamiento sobre imágenes, usamos Ajenjo[1] y Gonzalez[2], estos métodos que se encuentran dentro de la clase MiFiltro, que son los llamados filtros internos. Para los demás filtros desarrollamos distintas clases; estas tienen las ventajas de que pueden modificarse, compilarse y depurarse en forma independiente de la clase principal SpeckVisor, estos son los llamados filtros externos. La mayoría de los filtros incorporados son para el tratamiento de imágenes con speckle[5]. Ellos son : - Clase Fapril : define un método filtroapril que implementa el algoritmo de April-Harvey[3] - Clase Flee : define un método filtrolee que implementa el algoritmo de Lee[4] - Clase Wdaub4: define un método Fildaub4 que implementa la transformación wavelet Daubechie-4 - Clase Whaar : define un método filhaar que implementa la transformación wavelet Haar. - Clase Wline : define un método filline que implementa la transformación wavelet lineal. - Clase Wcubica : define un método filcubica que implementa la transformación wavelet cúbica. Fig. 1 Diagrama de funcionamiento del software Para una mejor comprensión del funcionamiento del software, realizamos, un diagrama en bloque de las clases más importantes, fig.2, él nos muestra cómo es la organización interna del programa. Clase Principal SpeckVisor - maneja todos los menús - graba la imagen - el método construyeventana - menú de filtro externo Clase Marco - crea ventana - visualiza la imagen en la pantalla Clase MiFiltro - todos sus métodos son filtros que se aplican sobre Ima[ ][ ] - llama a los filtros externos. Clase CargaMatriz - el método FilterRGB carga una matriz Ima[ ][ ] en la clase MiFiltro Fig. 2. Diagrama en bloque Clases externas - sus métodos son filtros externos por ej: Wline, Whaar, Wdaub4, Flee, etc. Esta disposición del programa tiene una ventaja; para incorporar un nuevo filtro, solamente se debe crear una clase que contenga el filtro que se quiere realizar, compilarlo, colocar una llamada al mismo desde la clase MiFiltro, e incorporar un ítem menú en la clase principal SpeckVisor. Fig. 3 REQUERIMIENTOS PARA SU USO Para poder usar SpeckVisor 1.0 es necesario instalar Java Developer’s Kit 1.1.5 , que se lo puede obtener en forma gratuita vía Internet. Todo el desarrollo de software se realizó en una computadora PC compatible, Pentium de 266 mhz. bajo el sistema operativo Windows 95. CONCLUSIÓN El programa actualmente proporciona un medio eficaz y rápido para realizar tratamiento y procesamineto imágenes digitales, él trae incorporado algoritmos como la transformada wavelet[5], el filtro Lee[3], etc., para el tratamiento específico de imágenes corruptas por ruido speckle y los algoritmos más comunes en procesamiento digital de imágenes, filtros, ecualización de histograma, media, visualización de histograma, etc. La modularidad de la programación de objetos nos amplia la posibilidad de ir incorporación nuevos los algoritmos en el programa. No en un programa que pueda competir con uno comercial, ya que no se hizo un estudio para optimizar los algoritmos empleados, ellos han sido escritos en forma práctica pues, su objetivo es didáctico. Este programa no solo es útil como apoyo a investigaciones, sino que también servir para introducirnos al apasionante mundo del procesamiento digital de imágenes. BIBLIOGRAFÍA [1] Tratamiento Digital de Imágenes. Alberto Domingo Ajenjo. Anaya Multimedia - 1994 [2] Digital Image Processing. Rafael C. Gonzalez - Paul Wintz. Addison-Wesley. 1987 [3] Speckle suppression and analysis for synthetic aperture radar, J.S. Lee - Optica Engineering. Vol. 25 No 5 / May 1986 [4] Speckle reduction in synthetic-aperture-radar imagery, E.R. Harvey- G.V. April - Opical Letters. Vol 15, No 13 / July 1990 [5] Trasformada Wavelet, Teoría y Aplicación - Jorge Osmar Lugo -Trabajo de Laboratorio IIFaCENA. 1999 [6] E. Castillo; Ángel Cobo; Patricia Gómez; Cristina Solares. JAVA. Un lenguaje de programación multiplataforma para Internet;. PARAINFO 1997. .