Académique Documents
Professionnel Documents
Culture Documents
Proyecto Fin de Carrera Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite
-2-
UNIVERSIDAD DE EXTREMADURA
Escuela Politcnica Ingeniera Informtica Proyecto Fin de Carrera Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite
Autor: Sergio
CALIFICACIN: FECHA:
-3-
-4-
Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite AGRADECIMIENTOS
A mi tutor Antonio Plaza Miguel, el cual supervis el desarrollo del proyecto en todo momento, brindndome la oportunidad de recurrir a su capacidad y experiencia en un marco de confianza, afecto y amistad, fundamentales para la realizacin de este proyecto. A Gabriel Martn Hernndez por su compaerismo a la hora de compartir las grandes ideas aportadas, su colaboracin y su ayuda, que han servido para llevar a cabo un proyecto ms eficaz. Por otro lado, a Sergio Snchez Martnez por sus ganas de ayudar y sus sugerencias a lo largo de este ao. A mis compaeros de clase: David, Emilio, Jos Manuel, Alberto, Pablo, Jaime, Chema, lvaro, Jos Alberto, M Jos, Juan Carlos, etc Por todas las experiencias y momentos compartidos durante todos estos aos de carrera. Tambin a Fran, que aunque no pudo completar esta etapa con nosotros, siempre estar all donde est en nuestros recuerdos. A mis padres y hermanos que me han apoyado durante el proyecto y a lo largo de la carrera, y que en ningn momento han dejado de creer en m, quienes me han enseado que con esfuerzo y constancia se pueden lograr cualquier objetivo que me proponga. Y finalmente darle las gracias a mi novia Sheila, que siempre ha estado a mi lado aportndome todo su apoyo, cario y comprensin durante la realizacin del proyecto, que dar como finalizada mi carrera en Ingeniera Informtica.
-5-
ndice
1. Motivaciones y objetivos ............................................................................................... 14
1.1. Motivaciones .........................................................................................................................14 1.2. Objetivos ...............................................................................................................................17
2. Introduccin ................................................................................................................... 18
2.1. Concepto de imagen de satlite .............................................................................................18 2.2. Sensores de adquisicin de imgenes multiespectrales .........................................................20 2.3. Sistemas CBIR. Recuperacin de imgenes basada en contenidos .......................................21
2.3.1. Aspectos ms generales ................................................................................... 22 2.3.2. Ejemplos de Sistemas CBIR ............................................................................ 23 2.3.3. Arquitectura de los sistemas CBIR .................................................................. 24 2.3.4. Extraccin de caractersticas ............................................................................ 25 2.3.5. Mtricas y funciones de similitud .................................................................... 29 2.3.6. Evaluacin en los sistemas CBIR .................................................................... 29
2.4. Servidores de aplicaciones de mapas .....................................................................................30
2.4.1. Google Maps .................................................................................................... 32 2.4.2. Yahoo Maps ..................................................................................................... 33 2.4.3. OpenStreetMap ................................................................................................ 34 2.4.4. Comparativa ..................................................................................................... 36
2.5. Herramienta de referencia relativo a bsqueda por contenido: sistema KIM de la ESA .......36
3. Metodologa ................................................................................................................... 39
3.1. Primeros pasos .......................................................................................................................39 3.2. La librera SWINGX-WS ......................................................................................................40 3.3. Procesamiento. Tipos de clasificaciones: clustering ..............................................................45
3.3.1. Algoritmos de clasificacin no supervisados ................................................... 47 3.3.2. Algoritmos de clasificacin supervisados ........................................................ 55
3.4. Mtodos de post-procesado ...................................................................................................58 3.5. Integracin de los diferentes mdulos ...................................................................................60
4. Validacin ...................................................................................................................... 68
4.1. Validacin de los algoritmos de clasificacin no supervisados .............................................68
4.1.1. Ejemplo de uso 1: Poblacin de Guarea y sus alrededores ............................ 71 4.1.2. Ejemplo de uso 2: Las pirmides de Egipto ..................................................... 77 4.1.3. Ejemplo de uso 3: World Trade Center de New York ..................................... 83 4.1.4. Ejemplo de uso 4: El ro Nilo africano............................................................. 91
-6-
4.2.1. Ejemplo de uso 1: Poblacin de Guarea y sus alrededores ............................ 98 4.2.2. Ejemplo de uso 2: Las pirmides de Egipto ................................................... 105 4.2.3. Ejemplo de uso 3: World Trade Center de New York ................................... 112 4.2.4. Ejemplo de uso 4: El ro Nilo africano........................................................... 118 5. Conclusiones ................................................................................................................ 126
5.1. Conclusiones del proyecto ...................................................................................................126 5.2. Lneas futuras de trabajo......................................................................................................127
6. Bibliografa .................................................................................................................. 129 7. ANEXO I: Manual del Usuario ................................................................................... 135 8. ANEXO II: Manual del Programador .......................................................................... 166
8.1. Diagrama de clases ..............................................................................................................166 8.2. Clases utilizadas ..................................................................................................................166
8.2.1. Fichero ........................................................................................................... 166 8.2.2. Mapa .............................................................................................................. 168 8.2.3. Tratamiento .................................................................................................... 187 8.2.4. Isodata ............................................................................................................ 201 8.2.5. KMeans .......................................................................................................... 208 8.2.6. MLC ............................................................................................................... 212 8.2.7. Aplicacin ...................................................................................................... 217
ndice de Figuras
Figura 2.1. El espectro electromagntico. .............................................................................................19 Figura 2.2. Ejemplo ilustrativo de una imagen multi-dimensional de 3 bandas. ...................................20 Figura 2.3. Esquema de una consulta mediante ejemplo, en un sistema CBIR .....................................22 Figura 2.4. Esquema de la arquitectura de un servidor de mapas..........................................................31 Figura 2.5. Imagen satlite de la zona de Guarea y sus alrededores (fuente: Google Maps) ..............33 Figura 2.6. Imagen satlite de la zona de Guarea y sus alrededores (fuente: Yahoo! Maps) ..............34 Figura 2.7. Imagen vista de mapa de la zona de Guarea y sus alrededores (fuente: OpenStreetMap) 35 Figura 2.8. Modelacin jerrquica del contenido de una imagen y su uso semntico ..........................38 Figura 2.9. Resultado de una bsqueda cover structure city ..............................................................38 Figura 2.10. Resultado de una bsqueda cover-type riverbed ...........................................................38 Figura 3.1. El JXMapKit se compone de dos elementos JXMapViewer: el mapa principal y el otro
-7-
-8-
-9-
-10-
Figura 7.9. Opcin Abrir archivo de la barra de herramientas.........................................................141 Figura 7.10. Opcin Abrir del men Archivo. .................................................................................141 Figura 7.11. Ventana de seleccin para la apertura de una imagen. ....................................................142 Figura 7.12. Ventana de seleccin de ruta para la apertura de una imagen .........................................142 Figura 7.13. Ejemplo de ventana de seleccin para una apertura ........................................................143 Figura 7.14. Visualizacin de la carga de un resultado sobre el mapa ................................................144 Figura 7.15. Opcin Puntos Region de la barra de herramientas .....................................................144 Figura 7.16. Opcin Pintar Puntos del men Editar ........................................................................145 Figura 7.17. Opcin Limpiar Puntos de la barra de herramientas....................................................145 Figura 7.18. Opcin Limpiar Puntos del men Editar .....................................................................145 Figura 7.19. Opcin Guardar archivo de la barra de herramientas ..................................................146 Figura 7.20. Opcin Guardar del men Archivo .............................................................................146 Figura 7.21. Opcin Buscar zona de la barra de herramientas.........................................................146 Figura 7.22. Opcin Buscar Zona del men Ver .............................................................................147 Figura 7.23. Ventana de seleccin del tipo de procesamiento .............................................................147 Figura 7.24. Eleccin de un tipo de procesamiento no supervisado. ...................................................148 Figura 7.25. Ejemplo de configuracin para un procesamiento con Isodata .......................................148 Figura 7.26. Ejemplo de configuracin para un procesamiento con K-Means ....................................149 Figura 7.27. Ventana para aadir o quitar clases.................................................................................149 Figura 7.28. Opcin Pintar Imagen del men Ver ...........................................................................150 Figura 7.29. Ejemplo de procesamiento con K-Means pintado sobre el mapa en una zona cercana a la poblacin de Guarea .................................................................................................................150 Figura 7.30. Opcin Ventana 3x3 del men Procesamiento Post-procesado ..............................151
Figura 7.31. Ejemplo de post-procesado con una ventana 3x3 pintado sobre el mapa en una zona cercana a la poblacin de Guarea .............................................................................................152 Figura 7.32. Opcin Ventana 5x5 del men Procesamiento Post-procesado ..............................152
Figura 7.33. Ejemplo de post-procesado con una ventana 5x5 pintado sobre el mapa en una zona cercana a la poblacin de Guarea .............................................................................................153
-11-
Figura 7.35. Ejemplo de post-procesado con una ventana 7x7 pintado sobre el mapa en una zona cercana a la poblacin de Guarea .............................................................................................154 Figura 7.36. Opcin Deshacer del men Procesamiento Post-procesado ...................................155
Figura 7.37. Opcin Clasificador Maximum Likelihood de la barra de herramientas .....................155 Figura 7.38. Opcin Clasificador Maximum Likelihood del men Procesamiento Supervisado ................................................................................................................................156 Figura 7.39. Ejemplo de clasificacin por el mtodo de Maximum Likelihood sobre el mapa en una zona cercana a la poblacin de Guarea .....................................................................................156 Figura 7.40. Ventana para aadir o eliminar clases utilizando una clasificacin supervisada ............157 Figura 7.41. Opcin Clasificador Mnimas Distancias de la barra de herramientas ........................157 Figura 7.42. Opcin Clasificador Mnimas Distancias del men Procesamiento Supervisado.158
Figura 7.43. Ejemplo de clasificacin por el mtodo de Mnimas Distancias pintado sobre el mapa en una zona cercana a la poblacin de Guarea ..............................................................................158 Figura 7.44. Opcin Copiar resultados de la barra de herramientas ................................................159 Figura 7.45. Opcin Copiar Resultados del men archivo ..............................................................159 Figura 7.46. Ventana para copiar resultados .......................................................................................160 Figura 7.47. Ventana de seleccin de ruta para la copia de resultados................................................160 Figura 7.48. Ejemplo de ventana de seleccin para la copia de resultados. ........................................161 Figura 7.49. Opcin Anular cambios de la barra de herramientas ...................................................161 Figura 7.50. Opcin Anular Cambios del men Editar....................................................................161 Figura 7.51. Visualizacin de las coordenadas latitud y longitud .......................................................162 Figura 7.52. Error producido si no tenemos conexin a Internet ........................................................162 Figura 7.53. Opcin Recargar mapa de la barra de herramientas ....................................................163 Figura 7.54. Opcin Recargar del men Archivo ............................................................................163 Figura 7.55. Opcin Salir del men Archivo ...................................................................................163 Figura 7.56. Opcin para visualizar los datos del autor y cmo contactar desde el men Ayuda .......164 Figura 7.57. Ventana Acerca de GoogleCBIR.................................................................................164 Figura 7.58. Opcin para visualizar el manual de la aplicacin desde el men Ayuda .......................165
ndice de Tablas
Tabla 2.1. Mtricas utilizadas en sistemas CBIR para calcular la similitud de caractersticas..............29 Tabla 2.2. Tabla comparativa entre los servidores de aplicaciones de mapas .......................................36 Tabla 3.1. Ventajas e inconvenientes de la utilizacin del algoritmo K-Means ....................................49 Tabla 3.2. Ventajas e inconvenientes de la utilizacin del algoritmo Isodata .......................................54
-12-
-13-
1. Motivaciones y objetivos
1.1. Motivaciones
El trabajo objeto del presente Proyecto Fin de Carrera (PFC) consiste en el diseo, implementacin y validacin de una herramienta informtica (GoogleCBIR), capaz de realizar bsquedas por contenido (en ingls, content-based image retrieval CBIR) en grandes repositorios de imgenes, obtenidas a partir de satlites de observacin remota de la tierra. La disponibilidad de grandes cantidades de imgenes de la superficie terrestre en herramientas como Google Maps, de uso abierto y con la posibilidad de acceder a grandes cantidades de datos, ha motivado el desarrollo de una herramienta capaz de realizar tareas de anlisis y extraccin de informacin a partir de dichos datos ampliamente disponibles. He aqu la importancia de poder utilizar el sistema desarrollado en combinacin con una herramienta tan potente como Google Maps, capaz de permitir al usuario definir zonas de referencia sobre las que aplicar tcnicas de clasificacin de imgenes. La utilizacin de libreras que den acceso al servicio de Google Maps nos ofrece una perspectiva atractiva a la hora de poder clasificar y recuperar imgenes, expandiendo significativamente las funcionalidades de la herramienta y permitiendo al usuario final extraer informacin relevante a partir de una base de datos masiva y ampliamente disponible de imgenes de satlite (el servicio de Google Maps es gratuito para uso no comercial). En este sentido, el presente trabajo describe un nuevo sistema de clasificacin no supervisada y recuperacin basada en contenido de imgenes de satlite de Google Maps. El sistema ha sido desarrollado utilizando varias libreras que dan acceso a funcionalidades propias de Google Maps, e incorpora adems funciones no disponibles en dicha herramienta, tales como la clasificacin no supervisada de las porciones de imgenes seleccionada por el usuario (en un nivel de zoom mximo) utilizando algoritmos no supervisados ampliamente utilizados en la comunidad cientfica, tales como ISODATA y K-Means, seguido de un post-procesado espacial basado en majority voting. Estas zonas de referencia, se utilizarn para entrenar un
-14-
-15-
-16-
Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite 1.2. Objetivos
El principal objetivo del presente trabajo es sobre todo integrar la herramienta de Google Maps utilizando las imgenes de satlite con vista hbrida, teniendo todas las ventajas tanto de la vista de satlite como de la vista de mapa. Para ello se plantea el siguiente objetivo global: disear, implementar y validar una nueva herramienta que integre Google Maps, capaz de realizar bsqueda por contenido, con tcnicas de clasificacin supervisadas y no supervisadas, permitiendo la recuperacin de informacin y bsqueda por contenido en el repositorio de imgenes de satlite de Google Maps. Para la consecucin de este objetivo global, se han llevado a cabo los siguientes objetivos especficos: 1. Estudiar en profundidad los distintos servidores de aplicaciones de mapas, tales como Google Maps, y compararlo con otros similares, como Yahoo! Maps y OpenStreetMap. 2. Estudiar la posibilidad de utilizar las imgenes de satlite disponibles en la herramienta Google Maps. 3. Comparar las distintas tcnicas de clasificacin de imgenes a partir de las propiedades espectrales (color) de los objetos que pertenecen a dichas zonas, permitiendo extrapolar dichas propiedades en forma de vectores caractersticos. 4. Particularizar un caso de estudio utilizando la zona de Guarea y sus alrededores de la que el autor del proyecto es natural. 5. Comparar los resultados obtenidos con otras herramientas de referencia como ENVI y el sistema KIM de la Agencia Europea del Espacio (ESA).
-17-
2. Introduccin
El presente captulo se organiza de la siguiente forma: en primer lugar, empezaremos por el desglose del trmino que da nombre a la herramienta desarrollada. Para ello, describiremos primeramente el concepto de imagen de satlite, detallando las particularidades y caractersticas propias de este tipo de imgenes, as como algunas caractersticas genricas de los sensores de adquisicin de este tipo de datos. Despus pasaremos a describir en qu consisten los sistemas CBIR [1-3]. Adems mostraremos una visin general de los servidores de mapas ms representativos que actualmente existen, entre ellos Google Maps. El captulo concluir destacando un ejemplo de caso de uso, utilizando el sistema KIM de la Agencia Europea del Espacio (ESA).
http://es.wikipedia.org/wiki/Imagen_satelital
-18-
Rayos X Rayos
Microondas Radar
10-7
10-5
10-3
10-1
10
103
105
103
En la actualidad nos podemos encontrar con un amplio conjunto de instrumentos o sensores, cuya disponibilidad ha facilitado una redefinicin del concepto de imagen digital a travs de la extensin de la idea de pxel. Recordamos que el valor asociado a cada pxel viene definido por un valor numrico denominado nivel digital (ND). Se denomina de esta manera por tratarse de un valor numrico, no visual. As, en un esquema puramente espacial, un pxel estar constituido por un nico valor discreto, mientras que, en un esquema espectral, un pxel constar de un conjunto de valores. Estos valores dependiendo del tipo de imagen podrn ser entendidos como vectores N-dimensionales, siendo N el nmero de bandas espectrales en las que el sensor mide informacin (en nuestro caso utilizaremos 3 dimensiones). La ampliacin del concepto de pxel ha dado lugar a lo que se conoce como imagen multidimensional, como aparece en la figura 2.2. As dependiendo del orden de magnitud de N podremos realizar una distincin a la hora de hablar de imgenes
-19-
-20-
CBIR.
Recuperacin
de
imgenes
basada
en
El avance de los medios electrnicos y la informtica ha provocado que la utilizacin de imgenes (tales como las proporcionadas por satlites de observacin remota de la tierra) cobre un protagonismo en la vida diaria del ser humano. En la mayora de las reas de trabajo la utilizacin de imgenes es de gran importancia, ya sea en el arte, los medios de comunicacin, la medicina y la ciencia en general. Los avances en comunicacin y ms concretamente a travs de Internet ha generado un gran repositorio para que comunidades distintas puedan acceder a imgenes generadas por otras. Esta gran cantidad de imgenes son concentradas sobre todo por sitios webs dedicados a compartir este tipo de datos. El principal problema que surge, es la manera de manejar estas grandes colecciones de imgenes, de manera que se puedan gestionar y realizar bsquedas con cierta facilidad [5,6]. Para ello, se pens en manejar dichas colecciones a partir de los paradigmas convencionales orientados a documentos de texto. De esta forma, se necesitar etiquetar las imgenes mediante palabras clave, que realizarn una
2 3
http://landsat.gsfc.nasa.gov/ http://www.digitalglobe.com/
-21-
-22-
Con respecto a lo anterior, Eakins clasifica las consultas en tres niveles distintos: Nivel 1: recuperaciones por caractersticas primitivas, ya sean por color, textura o forma. Nivel 2: recuperaciones por caractersticas derivadas (o lgicas), que implican algn tipo de inferencia lgica sobre la entidad, a su vez las divide en dos: recuperacin por objetos de un tipo dado, o de un objeto o persona en particular. Nivel 3: recuperaciones por atributos abstractos. Las divide en dos a su vez: recuperacin por eventos o actividades conocidas, y recuperacin por imgenes con contenido emocional.
-23-
-24-
-25-
En [32] se propone unas caractersticas que denomina momentos de cromaticidad (chromaticity moments), permitiendo capturar el contenido espectral de una imagen en una representacin ms compacta.
En [33] se propone utilizar la indexacin mediante Hashing de caractersticas de color (Color-card) invariantes a iluminacin y puntos
-26-
En [34] se propone agrupar por regiones de color como una alternativa a la utilizacin de histogramas.
A parte de los espacios de color comentados anteriormente, se utilizan otros espacios de color, que parecen corresponder mejor a la percepcin humana de la similaridad entre colores. Estos espacios de color son los HSI y HSV (Hue, saturation, intensity/value) que son habitualmente utilizados [35], [36], [37], debido a tres motivos: 1. La intensidad puede ser separada de la informacin del color en una imagen. 2. Los componentes de intensidad y saturacin se relacionan con facilidad con la percepcin humana del color. 3. Por las propiedades de invarianza frente a iluminacin y orientacin de la cmara. Muy factible para sistemas CBIR [1]. Tambin existen otros espacios de color utilizados tambin en sistemas de recuperacin de imgenes, son el espacio CIE XYZ [32], CIELUV [34] y el CIELAB [38]. Caractersticas de formas Tambin es verdad que los objetos pueden ser vistos primeramente segn su forma, aunque la segmentacin automtica de objetos es un problema an no solucionado en imgenes. En sistemas CBIR donde se utilizan la caracterizacin de formas, van a dar un buen rendimiento si los objetos son fcilmente identificables. Aunque esta condicin no se da siempre (debido a los problemas de solapamiento de objetos). En [15] se realiza una clasificacin de caracterizar las formas en tres categoras: Las basadas en el contorno del objeto. Se calcula una firma del contorno de la imagen, usada como caracterstica o a partir de ella calcularse otras
-27-
-28-
NOMBRE
Distancia Manhatan Distancia Eucldea Distancia Minkowsky Distancia Mahalanobis Distancia Canberra Distancia Chebyshev
EXPRESIN
d (va, vb) = | | d (va, vb) =
d (va, vb) = (
d (va, vb) =
d (va, vb) = | ||
| | |
d (va, vb) = , | |
Tabla 2.1. Mtricas utilizadas en sistemas CBIR para calcular la similitud de caractersticas.
-29-
-30-
En el esquema anterior anter (ver figura 2.4), se muestra un posible ejemplo de la arquitectura de un servidor de mapas. Por un lado, nos encontramos el cliente, browser o navegador de internet/intranet. El cliente podr ser de dos tipos: el primero, universal, capaz de leer documentos HTML estndar; y el segundo, en el que es necesario o aadir un plug-in plug in para poder aumentar las prestaciones del cliente HTML. El cliente inicia la peticin que llegar al servidor de e mapas, a travs de internet/intranet y que recibe en primera instancia el servidor de web. Se atiende la peticin y se extrae rae la informacin del servidor de datos, presentndola al servidor de web, que la enva a travs de internet/intranet hasta el cliente.
-31-
-32-
Figura 2.5. Imagen satlite de la zona de Guarea y sus alrededores (Fuente: Google Maps).
-33-
Figura 2.6. Imagen satlite de la zona de Guarea y sus alrededores (Fuente: Yahoo! Maps).
-34-
Figura 2.7. Imagen vista de mapa de la zona de Guarea y sus alrededores (Fuente: OpenStreetMap).
El principal inconveniente respecto a sus competidores es el no incluir de momento imgenes de satlite (principal problema si queremos incluir esta cartografa en este proyecto). proyecto). Pero que seguro en un futuro cercano podr ser un proyecto bastante robusto y con una gran cantidad de ventajas, ya que la comunidad que est frente al proyecto estn continuamente investigando para seguir seg avanzando.
-35-
Sin restriccin de uso Vista satlite hbrida Imgenes de alta resolucin Satisfaccin niveles de zoom Correccin de errores Fluidez en la navegacin Adaptabilidad en aplicaciones Desktop
No, pero hasta un cierto lmite S S Muy Alta Baja Muy Alta
Alta
Alta
Alta
Tabla 2.2. Tabla comparativa entre los servidores de aplicaciones de mapas. mapas
2.5. Herramienta de referencia relativo a bsqueda por contenido: sistema KIM de la ESA
Para concluir este captulo, describimos uno de los poco sistemas CBIR que han sido utilizados en el contexto de recuperacin de informacin a partir de imgenes de
-36-
Con este sistema se pretende proporcionar los recursos necesarios para realizar un proceso automtico de extraccin de informacin de una manera eficiente y menos compleja, con el apoyo de un sistema inteligente de aprendizaje. KIM tiene por objeto aplicar una tcnica de minera de informacin nueva, diferente de los mtodos tradicionales de extraccin de caractersticas (ver figura 2.8). La extraccin y el almacenamiento de caractersticas bsicas (caractersticas primitivas) procedente de los pxeles de imgenes y reas, son seleccionadas por el usuario como representante de la funcin de bsqueda de alto nivel. La combinacin resultante con las caractersticas primitivas de dicho entrenamiento puede ser asociado por el usuario a un significado semntico especfico, estrechamente relacionado a su dominio y conocimiento. Las figuras 2.9 y 2.10 muestran ejemplos de resultado de dos bsquedas semnticas realizadas por KIM a partir de un conjunto de imgenes Landsat y ERS-1
4
http://earth.eo.esa.int/rtd/Projects/KIM/
-37-
un- supervised
un- supervised
Figura 2.8. Modelacin jerrquica del contenido de una imagen y su uso semntico.
que cubren la totalidad de Mozambique. Las escenas se han dividido en sub-escenas de 2000x2000 pxeles, con todos los datos geo-codificados y co-registrados tras un paso de tratamiento previo. Al final del proceso, el usuario tiene a su disposicin una lista de catlogo con estructuras de suelo semnticamente validas.
-38-
3. Metodologa
Este apartado describimos las tcnicas y herramientas utilizadas para llevar a cabo la primera versin de un sistema automatizado de bsqueda por contenido en las imgenes de satlite disponibles a travs de la herramienta Google Maps. De nuevo, destacamos que los desarrollos realizados con motivo del presente proyecto se han planteado como un primer paso hacia el desarrollo de dicha herramienta, por lo que las funcionalidades descritas en el presente apartado se centran principalmente en las tcnicas utilizadas para acceder y manipular las imgenes disponibles en Google Maps, as como en los algoritmos de clasificacin no supervisada y supervisada que se han empleado para interpretar dichas imgenes. Estos desarrollos constituyen el primer paso a la interpretacin posterior de dichas imgenes en un entorno CBIR, el cual espera abordarse en desarrollos posteriores. Por este motivo, el presente apartado tratar sobre la investigacin llevada a cabo para el diseo y elaboracin de la versin actual del proyecto, las herramientas utilizadas junto con las libreras sobre las que sienta sus bases, y el desarrollo de la aplicacin.
-39-
-40-
-41-
Figura 3.1. .1. El JXMapKit se compone de dos elementos JXMapViewer: el mapa principal y el otro mapa de menor dimensin en la parte inferior derecha. derecha
Hereda de la clase JXPanel, perteneciente a la librera SwingX, que consiste en una extensin de un elemento JPanel simple (panel Swing de Java) que aade propiedades de transparencia. En concreto, este componente y todo su contenido pueden visualizarse con un valor alpha especificado previamente por el usuario. Adems de estas funciones de las que hereda de la clase JXPanel y de otras clases de Java, tambin se han utilizado algunos mtodos mtodos propios del componente. Los ms destacados son: Obtencin de la coordenada central del mapa determinado por latitud y longitud. Obtencin del mapa principal (componente JXMapViewer). Obtencin del mapa de menor dimensin (componente JXMapViewer). Centrar ar el mapa en unas coordenadas determinadas. Establecimiento de las caractersticas del mapa. Ajustar el nivel de zoom.
-42-
-43-
TileFactoryInfo, especificando as sus caractersticas y el servidor de mapas a utilizar (en este caso, Google Maps). Entre los mtodos ms destacados de esta clase se encuentran: Convertir un punto geogrfico a pxel, y viceversa. Obtener la informacin el objeto. Obtener el tamao del mapa de bits segn el zoom actual, en casillas (partes del mapa que se cargar por separado y que en conjunto forman el mapa). Obtener las caractersticas de las casillas del mapa.
GeoPosition Un GeoPosition representa una coordenada geogrfica (del mundo real), compuesta por un valor de latitud y otro de longitud. Este objeto slo consta de cuatro mtodos (menos en comparacin con los anteriores), pero todos ellos son de gran utilidad: Comparar las coordenadas de dos GeoPositions diferentes.
-44-
Adems de estas cinco clases pertenecientes a la librera SwingX-WS, se han utilizado otras dos, incluidas en la librera SwingX, de vital importancia para el desarrollo de la aplicacin: Painter Se trata en realidad de una interfaz, que implementa un nico mtodo utilizado para pintar. Se usa en situaciones en las que el desarrollador quiere modificar este mtodo de un componente, sin necesidad de recurrir a las subclases del mismo. Los Painters consisten simplemente en encapsulaciones de cdigo Java2D (API de Java para dibujar grficos en dos dimensiones). Son reutilizables, adems de permitir una combinacin entre varios de ellos. CompoundPainter Es una implementacin de la interfaz Painter compuesta de un array de Painters. Proporciona una manera de combinar varios Painters individuales, o un grupo de ellos, dentro de una lgica. Cada uno de los Painters se ejecuta en orden. A continuacin se presentan algunos de los mtodos de este objeto: Obtener los Painters utilizados. Aadir Painters. Limpiar la cach del objeto y todos sus hijos. Fijar los elementos pintados.
-45-
-46-
Paso 1/4
De una forma arbritaria se deben de elegir k centros de cluster m1(0), m2(0), , mk(0) (Por ejemplo, podra ser las k primero muestras del conjunto. Siendo Conjunto l=0).
Paso 2/4
Asignar cada una de las muestras {xi, i = 1, , N} a uno de los grupos de acuerdo a la distancia ncia entre la muestra y el centro de agrupacin: x wj if DL(x, mj(l)) = min {DL(x, mi(l)), i = 1, , k} (3.1)
-47-
= 1, ,
(3.2)
(3.3)
De este modo la suma de las distancias desde todos los puntos wj(l) al nuevo centro se reduce al mnimo, es decir,
, .
= 1, ,
(3.4)
Paso 4/4
Se terminara si el algoritmo converge (es decir, el nmero de miembros de cada modelo no se cambia por el paso 2):
= 1, ,
(3.5)
o tambin si se ha llegado a un nmero mximo predeterminado de iteraciones. De lo contrario, se pasara a la siguiente iteracin y se volvera al paso dos. Cmo hemos podido comprobar, este mtodo es simple, pero tiene algunos inconvenientes (ver tabla 3.1). La figura 3.2 muestra un ejemplo grfico de funcionamiento del algoritmo en un espacio de dos dimensiones.
-48-
VENTAJAS
Sencillo y eficiente
INCONVENIENTES
Limitado por el orden de presentacin de los patrones (el resultado depende de la configuracin inicial de los agrupamientos).
Un nico parmetro
Necesidad de conocer el nmero de clusters k: su comportamiento depende enormemente del valor elegido para el parmetro k.
Por otra parte, el mtodo ISODATA (Iterative Self-Organizing Data Analysis Techniques) tambin requiere la inicializacin de un parmetro K relativo al nmero de clases deseadas, de forma previa a la ejecucin del algoritmo. Adems, este mtodo necesita informacin relativa al nmero mnimo de firmas pertenecientes a una clase. Si el valor inicial de K es bajo, la dispersin entre clases diferentes puede ser muy alta. Por el contrario, si el valor inicial de K es alto, la distancia entre clases puede ser muy pequea, provocando el particionamiento de una misma clase en varios clases similares entre s. Antes de empezar con el funcionamiento de dicho algoritmo, es necesario conocer el significado de algunos parmetros que el algoritmo toma como entrada:
-49-
Paso 1/14
De una forma arbitraria se deben de elegir k (no necesariamente igual a K) centros de cluster iniciales: m1, m2, , mk procedentes del conjunto de datos {xi, i = 1, 2, , N}.
Paso 2/14
Asignar cada una de las N muestras al centro de cluster ms cercano: x wj if DL(x, mj(l)) = min {DL(x, mi), i = 1, , k} (3.6)
Paso 3/14
Desechar aquellos grupos cuyo nmero de muestras sea menor al valor de n, es decir, si por cualquier j, Nj < n, entonces desechar wj y decrementar el nmero de
-50-
Paso 4/14
= 1, ,
(3.7)
Paso 5/14
(3.8) = 1, ,
Paso 6/14
Calcular la media de la distancia total de las muestras a sus respectivos centros de cluster: 1 =
(3.9)
Paso 7/14 Si k K/2 (nos encontramos con pocos clusters), habra que ir al paso 8. Si por el contrario k > 2K (nos encontramos con demasiados clusters), habra que ir al paso
-51-
Paso 8/14
Nos encontramos con el primer paso para realizar la divisin de clusters. Para ello, habr que encontrar el vector de desviacin estndar = [ , , ]T para cada grupo: donde muestras en wj.
= ,
(i = 1, ,n, j = 1, , k)
(3.10)
Paso 9/14 Encontrar el componente mximo de cada y lo denotaremos por . Habr que hacer esto para todos j = 1, , k.
Paso 10/14 Si por cualquier , (j = 1, .., k), encontramos verdadero lo siguiente: > s , > D, > 2 N (3.11)
-52-
, para algunos > 0. A continuacin, se eliminar mj e incrementar el nmero de clusters, k k + 1. Despus ir al paso dos. Paso 11/14
Es el primer paso para combinar. Hay que calcular las distancias pares Dij entre cada dos centros de cluster: = , , Paso 12/14 (3.12)
Encontrar no ms de P ms pequeo que Dij y que tambin sean ms pequeos que c y mantenerlos en orden ascendente: Paso 13/14 (3.13)
Realizar la fusin dos a dos: por l = 1, , P. Hay que tener en cuenta lo siguiente: si ninguno de los dos mjl ni mjl se ha utilizado en esta iteracin, se utilizarn para formar un nuevo centro:
m=
(3.14)
Despus habr que borrar mil, mjl y decrementar el nmero de clusters k k 1. A continuacin, ir al paso dos.
-53-
Finalizar si el nmero mximo de iteraciones se ha alcanzado. De lo contrario, ir al paso dos. Cmo hemos podido comprobar, este mtodo es ms flexible que el mtodo K-Means, pero tiene algunos inconvenientes (ver tabla 3.2). La figura 3.3 muestra un ejemplo grfico de funcionamiento del algoritmo en un espacio de dos dimensiones.
VENTAJAS
Flexibilidad: su comportamiento puede ajustarse gracias a su amplio conjunto de parmetros. No est limitado por el orden de presentacin de los patrones.
INCONVENIENTES
Utilizacin: los valores adecuados para los parmetros son difciles de establecer a priori, por lo que se suele emplear un proceso de prueba y error.
Finalmente, tras la aplicacin de cualquiera de las dos tcnicas no supervisadas mencionadas anteriormente, y con carcter opcional, los datos resultantes de la clasificacin pueden ser post-procesados (por ejemplo, utilizando tcnicas espaciales) para mejorar la coherencia de los mismos.
-54-
-55-
VENTAJAS
Algoritmo sencillo encillo y rpido
INCONVENIENTES
Necesidad de un conjunto de entrenamiento.
Utilizacin de la desviacin estndar: no clasificar todos los pxeles sino hay garantas de que pertenezca a la clase.
Tabla 3.3. .3. Ventajas e inconvenientes de la utilizacin del algoritmo Mnima Distancia. Distancia
Por otra parte, el mtodo ML (Maximum Likelihood) es un algoritmo paramtrico que asume alguna distribucin estadstica particular para las clases consideradas. Es un algoritmo bastante utilizado en la clasificacin supervisada y utiliza un modelo probabilstico, comnmente la distribucin gaussiana para formular sus reglas de decisin en la categorizacin de los pxeles. Para definir dicho algoritmo es necesario conocer la media y la matriz de covarianza que se podrn obtener de los datos de las reas de entrenamiento.
-56-
PASO 1/3
En primer lugar habr que calcular la media y la matriz varianza-covarianza para cada clase. El tamao de la matriz va a depender de las bandas que se utilicen, en nuestro caso utilizaremos las bandas R, G y B, adems introduciremos el valor de transparencia, en total tendremos una matriz de dimensin 4x4.
PASO 2/3
En segundo lugar habr que clasificar cada uno de los pxeles de la imagen final, de tal modo que tendremos que aplicar la siguiente ecuacin: = log (3.15)
siendo g, la probabilidad del pxel en una clase determinada. Z es la matriz de varianza-covarianza. X es el pxel a clasificar. Y es la media RGB de la clase que se est calculando la probabilidad.
PASO 3/3
En tercer lugar habr que obtener la mayor probabilidad de cada pxel calculado en el paso anterior, para asignar dicho pxel a la clase que mayor probabilidad tiene de pertenecer. Al final tendremos una matriz de tamao la imagen final en donde cada pxel estar clasificado en aquella clase donde la probabilidad es mxima de pertenecer. Desde el punto estadstico, el mtodo de mxima verosimilitud se considera bastante slido, verstil y aplicable a la mayora de tipos de datos. La tabla 3.4 resume las ventajas e inconvenientes de dicho algoritmo. Por su parte, la figura 3.5
-57-
VENTAJAS
Clasificador robusto y estndar.
INCONVENIENTES
Necesidad de un conjunto de entrenamiento.
Si las clases estn bien definidas se asegura de que el pxel se clasificar correspondientemente (clase con mayor probabilidad de pertenencia). pertenencia)
Figura 3.5. .5. Ejemplo grfico del algoritmo Maximum Likelihood. Likelihood
-58-
0.11
0.33
0.55
En la figura 3.6 se muestra un ejemplo de post-procesamiento aplicando una ventana cuadrada de 3x3. En este caso el pxel correspondiente al centro de la ventana, cambiar su valor asociado por aquel que sea mayoritario segn su vecindad (en este caso la clase 4 no vara al ser el pxel mayoritario dentro de la ventana). Para elegir el mejor tamao de ventana tendremos la posibilidad de elegir entre 3x3, 5x5 y
-59-
3 3 1 2
3 1 2
4 2 2
4 2 2
Aplicacin de la tcnica Mirroring. Se ha utilizado una ventana 3x3 cuyo centro se encuentra marcado.
-60-
Algoritmos de Clasificacin
Figura 3.8. La integracin de los mapas de Google, la visualizacin de resultados a partir de ficheros con formatos PNG y TXT, junto con las tcnicas de clasificacin y post-procesado, procesado, utilizando la tecnologa Java, constituye GoogleCBIR. GoogleCBIR
-61-
-62-
Por defecto, esta librera carga los mapas de Yahoo. Por tanto, para poder obtener los de Google se ha tenido que crear un elemento TileFactoryInfo que se conecte con el servidor de mapas de Google. Si este proceso se realiza correctamente, asignaremos al elemento JXMapKit el TileFactoryInfo anterior que carga los mapas. Adems, para el correcto funcionamiento, ha sido necesario cambiar algunas propiedades por defecto, como el nivel mximo de zoom permitido, puesto que a partir de un cierto valor, las imgenes del mapa no estn soportadas y no es posible cargar nada. Por ltimo, para completar la integracin de estos mapas en la aplicacin, se aade el JXMapKit creado a un panel para poder visualizar y trabajar con la cartografa obtenida del servidor de Google.
-63-
-64-
-65-
Alpha
(transparencia)
Clase
Visualizacin de resultados En muchas ocasiones nos va a poder interesar cargar resultados para compararlos visualmente. Por ello, se ha creado un mtodo que cada vez que se realice una ejecucin pueda almacenar en disco un fichero log en formato .txt, que contenga una serie de parmetros parmetros perteneciente a las distintas imgenes obtenidas. A continuacin, vemos en la figura 3.11 un ejemplo de un fichero log obtenido en una ejecucin:
-66-
-67-
4. Validacin
En este apartado presentaremos algunos ejemplos de funcionamiento de la aplicacin diseada, para verificar su correcto funcionamiento al utilizar distintos tipos de clasificaciones y as poder validar los mismos comparando los resultados con herramientas de anlisis y procesado de imgenes como es el caso de ENVI5. Para ello en primer lugar, realizaremos para la validacin un primer anlisis de las imgenes obtenidas para despus obtener unos resultados estadsticos, que de otra manera sera bastante complicado ya que no disponemos de las medidas verdadterreno sobre las distintas imgenes que seleccionaremos. Tambin en este apartado mostraremos varios casos de estudio en diferentes ubicaciones seleccionadas, ilustrando las posibilidades de la herramienta a la hora de procesar imgenes en diferentes zonas. Llegados a este punto, reiteramos que los resultados de validacin deben interpretarse ms desde el punto de vista de cuantificar la similitud entre los resultados proporcionados por la herramienta y los resultados obtenidos utilizando otros paquetes informticos de amplia aceptacin en la comunidad cientfica (como es el caso de ENVI). La dificultad de obtener informacin verdad-terreno en los casos de estudios analizados hacen que la validacin propuesta en el presente proyecto sea ms cualitativa que cuantitativa, si bien es cierto que en futuros desarrollos se tiene previsto incluir resultados con imgenes de satlite disponibles en Google Maps con verdad terreno para validad con mayor facilidad los resultados obtenidos por la herramienta. A la hora de realizar la validacin del proyecto dichas imgenes no se encontraban disponibles, por lo que optamos por validad los resultados de clasificacin obtenidos con aquellos proporcionados por una herramienta competitiva disponible en el mercado como es ENVI.
http://www.ittvis.com/ProductServices/ENVI.aspx
-68-
http://www.innovanet.com.ar/gis/TELEDETE/TELEDETE/maneENVI.htm
-69-
anteriores consideraciones, la figura 4.1 muestra un ejemplo del proceso de construccin de una matriz de confusin. En la figura, se muestra el mapa temtico asociado a la imagen a clasificar, el resultado de clasificacin proporcionado por un determinado algoritmo para dicha imagen, y la matriz de confusin que cuantifica la precisin del algoritmo en la tarea de clasificacin. Como puede apreciarse, las entradas de la matriz vienen expresadas en forma a jk , siendo a jk = cardinalC j R k
, el nmero de pxeles de la regin resultante al efectuar la interseccin entre una clase Cj obtenida por el algoritmo y una clase etiquetada Rk.
Mapa temtico (verdad terreno)
Lago (R0) Carretera (R1) rboles (R2) Suelo (R3)
Clasificacin (Algoritmo)
Lago (C0) Carretera (C1) rboles (C2) Suelo (C3)
Matriz de confusin
R0 C0 C1 C2 C3
a00=|C0R0| a10=|C1R0| a20=|C2R0| a30=|C3R0|
R1
a01=|C0R1| a11=|C1R1| a21=|C2R1| a31=|C3R1|
R2
a02=|C0R2| a12=|C1R2| a22=|C2R2| a32=|C3R2|
R3
a03=|C0R3| a13=|C1R3| a23=|C2R3| a33=|C3R3|
A partir de la matriz de confusin pueden derivarse algunas medidas de precisin genricas [55] como el porcentaje de acierto global: tanto por ciento de pxeles clasificados de forma correcta en todas las clases, calculado de la siguiente forma:
OA =
Proyecto fin de carrera
i N ij
aii a ij
100
(4.1)
-70-
Figura 4.2. Ubicacin del municipio de Guarea (Badajoz), (Badajoz), situado en las coordenadas: 38.85, -6.083333.
Una vez situados en esas coordenadas dentro de la aplicacin GoogleCBIR, seleccionaremos por ejemplo, una zona zona de vegetacin (ver figura 4.3). 4.3
Figura 4.3. Seleccin de una zona situada cerca de la poblacin poblacin de Guarea de la que escogeremos las zonas con vegetacin.
7
http://es.wikipedia.org/wiki/Guare%C3%B1a_(Badajoz)
-71-
Figura 4.4. Segmentacin de la zona seleccionada situada cerca de la poblacin de Guarea utilizando el algoritmo K-Means.
Figura 4.5. Segmentacin de las zonas con vegetacin situado cerca de la poblacin de Guarea utilizando el algoritmo K-Means.
-72-
Figura 4.6. Segmentacin de la zona seleccionada situada cerca de la poblacin de Guarea utilizando el algoritmo Isodata.
Figura 4.7. Segmentacin de las zonas con vegetacin situado cerca de la poblacin de Guarea utilizando el algoritmo Isodata.
-73-
Figura 4.8. Segmentacin de la zona seleccionada situada cerca de la poblacin de Guarea utilizando el algoritmo K-Means de la herramienta ENVI.
En segundo lugar seleccionaremos el algoritmo de clasificacin no supervisado Isodata con la misma configuracin que en la aplicacin GoogleCBIR (ver figura 4.9). Como hemos podido comprobar de forma visual la segmentacin realizada por nuestra aplicacin no es muy distinta a la realizada por la herramienta ENVI. Ahora nos quedara demostrarlo a travs de la comparacin de los distintos pxeles clasificados por nuestra herramienta calculando un porcentaje de acierto. Ya que no
-74-
Figura 4.9. Segmentacin de la zona seleccionada situada cerca de la poblacin de Guarea utilizando el algoritmo Isodata de la herramienta ENVI.
Para la obtencin de dichas estadsticas, se ha elaborado un pequeo programa capaz de ir comparando los pxeles de una imagen y otra, atendiendo de que los colores asignados por nuestra herramienta y por la de ENVI no son iguales. Por ello, es necesario tenerlos en cuenta para ofrecer unos resultados correctos. La tabla 4.1 muestra una comparativa (en trminos de porcentaje de acierto) entre la imagen mostrada en la figura 4.4 (correspondiente al mtodo K-Means implementado en nuestra herramienta) y la imagen mostrada en la figura 4.8 (correspondiente al mtodo K-Means implementado en ENVI). Los cdigos de color indicados en la tabla corresponden a los colores asociados a cada clase en nuestra herramienta. Las celdas que se encuentran sombreadas corresponden a las clases con las que el usuario ha querido conservar, de las que se han obtenido una media de valores por encima del 80% de acierto. Como puede apreciarse en la tabla 4.1, la
-75-
Tabla 4.1. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado K-Means con la imagen de Guarea.
A continuacin mostraremos los resultados obtenidos sobre las mismas zonas de entrenamiento pero ahora utilizando un algoritmo de clasificacin no supervisado Isodata. En concreto, la tabla 4.2 muestra una comparativa (en trminos de porcentaje de acierto) entre la imagen mostrada en la figura 4.6 (correspondiente al mtodo Isodata implementado en nuestra herramienta) y la imagen mostrada en la figura 4.9 (correspondiente al mtodo Isodata implementado en ENVI). De nuevo, los cdigos de color indicados en la tabla corresponden a colores asociados a cada clase en nuestra herramienta. Las celdas que se encuentran sombreadas corresponden a clases con las que el usuario ha querido conservar, de las que se han obtenido una media de valores por encima del 80% de acierto. Rojo Verde Azul Amarillo (Hierba1) 90.11 % Naranja (Pasto) 71.93 % Media Global 83.54 %
Tabla 4.2. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado Isodata en la imagen de Guarea.
-76-
Figura 4.10. Ubicacin de las pirmides de Egipto, situado en las coordenadas: coordenada 29.9782, 31.1334.
8 9
-77-
Figura 4.11. Seleccin de una zona cubierta por la pirmide de Quefrn (Egipto). (Egipto)
Figura 4.12. Segmentacin de la zona seleccionada situada en Egipto utilizando el algoritmo K-Means.
A continuacin ejecutaremos el segundo algoritmo de clasificacin no supervisada Isodata (los resultados los obtendremos en la figura 4.14), al que
-78-
Figura 4.13. Segmentacin de las zonas con pirmide situado en Egipto utilizando el algoritmo K-Means.
Figura 4.14. Segmentacin de la zona seleccionada situada en Egipto utilizando el algoritmo Isodata.
Como podemos observar, la utilizacin del algoritmo Isodata, nos permite clasificar una imagen cuyas clases tengan como mnimo un porcentaje de acierto (o calidad visual) determinado por el usuario, si no se cumplen dichas condiciones la
-79-
Figura 4.15. Segmentacin de las zonas con pirmide situado en Egipto utilizando el algoritmo Isodata.
A continuacin y una vez realizada la ejecucin de los dos algoritmos anteriores sobre una misma zona a partir de nuestra herramienta, , procesaremos dicha zona con la herramienta ENVI. ENVI Para ello, en primer lugar aplicamos el algoritmo de clasificacin no supervisado K-Means Means con la misma configuracin que en la aplicacin GoogleCBIR, GoogleCBIR obteniendo el resultado do que se muestra en la figura 4.16. 4.16
Figura 4.16. Segmentacin de las zonas con pirmide situado en Egipto utilizando el algoritmo K-Means de la herramienta ENVI.
-80-
Figura 4.17. Segmentacin de las zonas con pirmide situado en Egipto utilizando el algoritmo Isodata de la herramienta ENVI.
Como hemos podido comprobar de forma visual la segmentacin realizada por nuestra aplicacin no es muy distinta a la realizada por la herramienta ENVI. Ahora nos quedara demostrarlo a travs de la comparacin de los distintos pxeles clasificados por nuestra herramienta calculando un porcentaje de acierto. Ya que no se disponen de medidas verdad-terreno, se ha decidido utilizar las imgenes de la herramienta ENVI cmo nuestra medida de referencia para evaluar las imgenes obtenidas por nuestra herramienta. De esta manera, es necesario conocer cuntos pxeles de la imagen clasificada generada por nuestra herramienta se clasifican correctamente por clase. As tendremos unas estadsticas que nos ayudarn a valorar positivamente o negativamente nuestros resultados tras la aplicacin de algn algoritmo de clasificacin no supervisada. Para la obtencin de dichas estadsticas, se ha elaborado un pequeo programa capaz de ir comparando los pxeles de una imagen y otra, atendiendo de que los colores asignados por nuestra herramienta y por la de ENVI no son iguales. Por ello, es necesario tenerlos en cuenta para ofrecer unos resultados correctos. La tabla 4.3 muestra una comparativa (en trminos de porcentaje de acierto) entre la imagen mostrada en la figura 4.12 (correspondiente al mtodo K-Means
-81-
Tabla 4.3. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado K-Means con la imagen de las pirmides de Egipto.
A continuacin mostraremos los resultados obtenidos sobre las mismas zonas de entrenamiento pero ahora utilizando un algoritmo de clasificacin no supervisado Isodata. En concreto, la tabla 4.4 muestra una comparativa (en trminos de porcentaje de acierto) entre la imagen mostrada en la figura 4.14 (correspondiente al mtodo Isodata implementado en nuestra herramienta) y la imagen mostrada en la figura 4.17 (correspondiente al mtodo Isodata implementado en ENVI). De nuevo, los cdigos de color indicados en la tabla corresponden a colores asociados a cada clase en nuestra herramienta. Las celdas que se encuentran sombreadas corresponden a clases con las que el usuario ha querido conservar, de las que se han obtenido una media de valores por encima del 80% de acierto.
-82-
Tabla 4.4. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado Isodata en la imagen de Egipto.
Tal y como se observa, la evaluacin de los resultados obtenidos se encuentra por encima del rango de valores considerados como adecuados (en torno al 70-80% en global), con resultados altamente similares en las clases asociadas a pirmides que predominan en la escena de Egipto. Por lo que la aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Como conclusin global se puede obtener que la utilizacin de cualquiera de los dos algoritmos implementados puede ser aplicado al procesamiento de cualquier imagen disponible en la herramienta, ya que ambos algoritmos nos proporcionan una media de porcentajes superiores al 80% de acierto al comparar su salida con la obtenida por una implementacin del mismo algoritmo en un paquete comercial y de gran aceptacin en la comunidad cientfica como ENVI.
http://es.wikipedia.org/wiki/World_Trade_Center
-83-
Figura 4.18. Ubicacin del WTC de New York, situado en las coordenadas: coordenadas 40.713, -74.0135.
Figura 4.19. Seleccin de una zona urbana perteneciente al WTC de New York (Estados Unidos).
-84-
Figura 4.20. Segmentacin de la zona seleccionada del de WTC (New York) utilizando el algoritmo K-Means.
A continuacin ejecutaremos el segundo algoritmo de clasificacin no supervisada Isodata (los resultados los obtendremos en la figura 4.22), 4.22) al que tambin aplicaremos los siguientes parmetros: Nmero de clases: 5. Mximo nmero de iteraciones: 100. Mnimo nmero de muestras (%): 5. Los dems parmetros a su valor por defecto.
-85-
Figura 4.21. Segmentacin de las zonas identificadas como urbanas situado en el WTC ( (New York) utilizando el algoritmo K-Means.
Figura 4.22. Segmentacin de la zona seleccionada del de WTC (New York) utilizando el algoritmo Isodata.
Como podemos observar, la utilizacin del algoritmo Isodata, nos permite clasificar una imagen cuyas clases tengan como mnimo un porcentaje de acierto (o
-86-
Figura 4.23. Segmentacin de las zonas identificadas como urbanas situado en el WTC (New York) utilizando el algoritmo Isodata.
Figura 4.24. Segmentacin de la zona seleccionada del WTC (New York) utilizando el algoritmo K-Means con la herramienta ENVI.
-87-
Figura 4.25. Segmentacin de la zona seleccionada del WTC (New York) utilizando el algoritmo Isodata con la herramienta ENVI.
Como hemos podido comprobar de forma visual la segmentacin realizada por nuestra aplicacin no es muy distinta a la realizada por la herramienta ENVI. Ahora nos quedara demostrarlo a travs de la comparacin de los distintos pxeles clasificados por nuestra herramienta calculando un porcentaje de acierto. Ya que no se disponen de medidas verdad-terreno, se ha decidido utilizar las imgenes de la herramienta ENVI cmo nuestra medida de referencia para evaluar las imgenes obtenidas por nuestra herramienta. De esta manera, es necesario conocer cuntos pxeles de la imagen clasificada generada por nuestra herramienta se clasifican correctamente por clase. As tendremos unas estadsticas que nos ayudarn a valorar
-88-
Tabla 4.5. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado K-Means con la imagen del World Trade Center.
-89-
Tabla 4.6. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado Isodata en la imagen del World Trade Center.
Tal y como se observa, la evaluacin de los resultados obtenidos se encuentra por encima del rango de valores considerados como adecuados (en torno al 70-80% en global), con resultados altamente similares en las clases asociadas a zonas urbanas que predominan en la escena del World Trade Center. Por lo que la aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Como conclusin global se puede obtener que la utilizacin de cualquiera de los dos algoritmos implementados puede ser aplicado al procesamiento de cualquier imagen disponible en la herramienta, ya que ambos algoritmos nos proporcionan una media de porcentajes superiores al 80% de acierto al comparar su salida con la obtenida por una implementacin del mismo algoritmo en un paquete comercial y de gran aceptacin en la comunidad cientfica como ENVI.
-90-
Figura 4.26. Ubicacin del ro Nilo (frica), ), situado en las coordenadas: coordenadas 29.89, 31.28
Una vez situados en esas coordenadas dentro de la aplicacin GoogleCBIR, seleccionaremos por ejemplo, algn tramo del ro Nilo (ver figura 4.27). 4.27 A dicha seleccin una vez almacenada en disco, ejecutaremos en primer lugar el algoritmo de clasificacin no supervisada K-Means, K Means, al que aplicaremos 5 clases para segmentar la imagen. Los resultados se muestran en la figura 4.28, 4.28 que en un
11
http://es.wikipedia.org/wiki/Nilo
-91-
Figura 4.28. Segmentacin de la zona seleccionada del ro Nilo (frica) utilizando el algoritmo K-Means.
A continuacin ejecutaremos el segundo algoritmo de clasificacin no supervisado Isodata (los resultados los obtendremos en la figura 4.30), al que
-92-
Figura 4.29. Segmentacin de las zonas identificadas como agua situadas en el ro Nilo (frica) utilizando el algoritmo K-Means.
Figura 4.30. . Segmentacin de la zona seleccionada del ro Nilo (frica) utilizando utili el algoritmo Isodata.
-93-
Figura 4.31. Segmentacin de las zonas identificadas como agua situadas en el ro Nilo (frica) utilizando el algoritmo Isodata.
Figura 4.32. Segmentacin de las zonas identificadas como agua situadas en el ro Nilo (frica) utilizando el algoritmo K-Means K Means con la herramienta ENVI. ENVI
-94-
Figura 4.33. Segmentacin de las zonas identificadas como agua situadas en el ro Nilo (frica) utilizando el algoritmo Isodata con la herramienta ENVI.
Como hemos podido comprobar de forma visual la segmentacin realizada por nuestra aplicacin no es muy distinta a la realizada por la herramienta ENVI. Ahora nos quedara demostrarlo a travs de la comparacin de los distintos pxeles clasificados por nuestra herramienta calculando un porcentaje de acierto. Ya que no se disponen de medidas verdad-terreno, se ha decidido utilizar las imgenes de la herramienta ENVI cmo nuestra medida de referencia para evaluar las imgenes obtenidas por nuestra herramienta. De esta manera, es necesario conocer cuntos pxeles de la imagen clasificada generada por nuestra herramienta se clasifican correctamente por clase. As tendremos unas estadsticas que nos ayudarn a valorar
-95-
Tabla 4.7. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado K-Means con la imagen del ro Nilo.
-96-
Tabla 4.8. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin no supervisado Isodata en la imagen del ro Nilo.
Tal y como se observa, la evaluacin de los resultados obtenidos se encuentra por encima del rango de valores considerados como adecuados (en torno al 70-80% en global), con resultados altamente similares en las clases asociadas a zonas de agua que predominan en la escena del ro Nilo. Por lo que la aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Como conclusin global se puede obtener que la utilizacin de cualquiera de los dos algoritmos implementados puede ser aplicado al procesamiento de cualquier imagen disponible en la herramienta, ya que ambos algoritmos nos proporcionan una media de porcentajes superiores al 80% de acierto al comparar su salida con la obtenida por una implementacin del mismo algoritmo en un paquete comercial y de gran aceptacin en la comunidad cientfica como ENVI.
-97-
Figura 4.34. Seleccin de una zona amplia situada cerca de la poblacin de Guarea de la que escogeremos las zonas de vegetacin en comn con la zona de entrenamiento. entrenamiento
-98-
Figura 4.35. Algoritmo Mnimas Distancias ejecutado tras haber aplicado el alg. K-Means.
A continuacin ejecutaremos el segundo algoritmo de clasificacin supervisada Maximum Likelihood. Los resultados los obtendremos en la figura 4.37, que en un principio muestra todas las clases obtenidas ya que tendremos la oportunidad de que el usuario seleccione eleccione las que ms le interesen. En la figura 4.38 mostraremos slo las clases cuya superficie es vegetacin.
-99-
Figura 4.36. Seleccin de las zonas de vegetacin en comn del alg. Mnimas Distancias con el alg. K-Means.
Figura 4.37. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg. K-Means.
-100-
Figura 4.38. Seleccin de las zonas de vegetacin en comn del alg. Maximum Likelihood con el alg. K-Means.
Al igual que sucedi con la ejecucin del algoritmo Mnimas Distancias, en la figura 4.37, , podemos observar que no se ha desechado ninguna zona, es decir, todos los pxeles pertenecen a alguna clase determinada. determinada. Sin embargo en la figura 4.38 observamos que hay zonas sin vegetacin y evidentemente la parte urbana se ha quedado sin seleccionar. leccionar. En este caso slo se va a probar con el algoritmo K-Means K Means las posteriores clasificaciones supervisadas ya que en los prximos ejemplos iremos probando tambin que es lo que pasara al aplicar el algoritmo Isodata. Una vez ejecutados los dos algoritmos algo anteriores sobre una misma zona, procesaremos dicha zona con la herramienta ENVI. Para ello, en primer lugar seleccionaremos el algoritmo de clasificacin supervisada Mnimas Mnimas Distancias (ver figura 4.39). En segundo lugar seleccionaremos el algoritmo algoritmo de clasificacin supervisado Maximum Likelihood ejecutado sobre la herramienta de procesamiento y anlisis
-101-
Figura 4.39. Algoritmo Mnimas Distancias ejecutado tras haber aplicado el alg. K-Means en la herramienta ENVI.
Figura 4.40. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg. K-Means en la herramienta ENVI.
-102-
-103-
(Hierba1) (Vegetacion1) (ZUrbana) (Hierba2) (Vegetacin2) 95.55 % 89.98 % 77.31 % 93.89 % 89.74 %
Tabla 4.9. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Mnimas Distancias con la imagen de Guarea.
A continuacin mostraremos los resultados obtenidos utilizando un algoritmo de clasificacin supervisado Maximum Likelihood. En concreto, la tabla 4.10 muestra una comparativa (en trminos de porcentaje de acierto) entre la imagen mostrada en la figura 4.37 (correspondiente al mtodo Maximum Likelihood implementado en nuestra herramienta) y la imagen mostrada en la figura 4.40 (correspondiente al mtodo Maximum Likelihood implementado en ENVI). De nuevo, los cdigos de color indicados en la tabla corresponden a colores asociados a cada clase en nuestra herramienta. Las celdas que se encuentran sombreadas corresponden a clases con las que el usuario ha querido conservar, de las que se han obtenido una media de valores por encima del 80% de acierto. Rojo Verde Azul Amarillo Naranja Media Global 91.18 %
(Vegetacin2) (Hierba1) (ZUrbana) (Hierba2) (Vegetacin1) 95.16 % 90.70 % 99.26 % 95.73 % 75.05 %
Tabla 4.10. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Maximum Likelihood en la imagen de Guarea.
Tal y como se observa, la evaluacin de los resultados obtenidos se encuentra por encima del rango de valores considerados como adecuados (en torno al 70-80% en global), con resultados altamente similares en las clases asociadas a hierba que predominan en la escena de Guarea. Por lo que la aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Como conclusin global se puede obtener que la utilizacin de cualquiera de los dos algoritmos implementados puede
-104-
Figura 4.41. Seleccin de una zona z amplia con varias pirmides situadas situada en Egipto de la que escogeremos las zonas en comn con la zona de entrenamiento. entrenamiento
-105-
Figura 4.42. Algoritmo Mnimas Distancias ejecutado tras haber haber aplicado el alg. Isodata.
Figura 4.43. Seleccin de zonas piramidales en comn del alg. Mnimas Distancias con el alg. Isodata.
-106-
Figura 4.44. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg. Isodata.
Al igual que sucedi con la ejecucin e del algoritmo Mnimas as Distancias, en la figura 4.44, , podemos observar que no se ha desechado ninguna zona, es decir, todos los pxeles pertenecen a alguna clase determinada. determinada. Sin embargo en la figura 4.45 observamos que hay zonas de arena que no pertenecen rtenecen a ninguna pirmide y por tanto no se necesitan seleccionar. seleccionar
-107-
Figura 4.45. Seleccin de las zonas piramidales en comn del alg. Maximum Likelihood con el alg. Isodata.
Figura 4.46. Algoritmo Mnimas Distancias ejecutado tras haber aplicado el alg. Isodata en la herramienta ENVI.
-108-
Figura 4.47. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg. Isodata en la herramienta ENVI.
Como hemos podido comprobar de forma visual la clasificacin realizada por nuestra aplicacin no es muy distinta a la realizada por la herramienta ENVI. Ahora nos quedara demostrarlo a travs de la comparacin de los distintos pxeles clasificados por nuestra herramienta calculando un porcentaje de acierto. Ya que no se disponen de medidas verdad-terreno, se ha decidido utilizar las imgenes de la herramienta ENVI cmo nuestra medida de referencia para evaluar las imgenes obtenidas por nuestra herramienta. De esta manera, es necesario conocer cuntos
-109-
Tabla 4.11. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Mnimas Distancias con la imagen de las pirmides de Egipto.
-110-
Tabla 4.12. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Maximum Likelihood con la imagen de las pirmides de Egipto.
Tal y como se observa, la evaluacin de los resultados obtenidos se encuentra por encima del rango de valores considerados como adecuados (en torno al 70-80% en global), con resultados altamente similares en las clases asociadas a pirmides que predominan en la escena de Egipto. Por lo que la aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Como conclusin global se puede obtener que la utilizacin de cualquiera de los dos algoritmos implementados puede ser aplicado al procesamiento de cualquier imagen disponible en la herramienta, ya que ambos algoritmos nos proporcionan una media de porcentajes superiores al 80% de acierto al comparar su salida con la obtenida por una implementacin del mismo algoritmo en un paquete comercial y de gran aceptacin en la comunidad cientfica como ENVI.
-111-
Figura 4.48. Seleccin de una zona amplia amplia situada cerca del World Trade Trad Center de New York de la que escogeremos las zonas urbanas. urbanas
Cmo podemos observar obse en la figura 4.50, se han seleccionado los elementos en comn con la zona de entrenamiento, es decir, dichos elementos mencionados son en este caso las distintas zonas urbanas.
-112-
Figura 4.49. Algoritmo Mnimas Distancias ejecutado tras haber aplicado a el alg. K-Means.
Figura 4.50. Seleccin de zonas urbanas en comn del alg. Mnimas Distancias con el alg. K-Means.
-113-
Figura 4.51. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg. K-Means.
Figura 4.52. Seleccin de zonas urbanas en comn del alg. Maximum Likelihood con el alg. K-Means.
-114-
Figura 4.53. Algoritmo Mnimas Distancias ejecutado tras haber aplicado el alg. K-Means en la herramienta ENVI.
Una vez ejecutados los dos algoritmos anteriores sobre una misma zona, procesaremos dicha zona con la herramienta ENVI. Para ello, en primer lugar seleccionaremos el algoritmo de clasificacin supervisada Mnimas Distancias (ver figura 4.53).
-115-
Figura 4.54. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg. K-Means en la herramienta ENVI.
Como hemos podido comprobar de forma visual la clasificacin realizada por nuestra aplicacin no difiere de la realizada por la herramienta ENVI. Ahora nos quedara demostrarlo a travs de la comparacin de los distintos pxeles clasificados por nuestra herramienta calculando un porcentaje de acierto. Ya que no se disponen de medidas verdad-terreno, se ha decidido utilizar las imgenes de la herramienta ENVI cmo nuestra medida de referencia para evaluar las imgenes obtenidas por nuestra herramienta. De esta manera, es necesario conocer cuntos pxeles de la imagen clasificada generada por nuestra herramienta se clasifican correctamente por clase. As tendremos unas estadsticas que nos ayudarn a valorar positivamente o negativamente nuestros resultados tras la aplicacin de algn algoritmo de clasificacin supervisado.
-116-
71.71 %
Tabla 4.13. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Mnimas Distancias con la imagen del World Trade Center.
A continuacin mostraremos los resultados obtenidos utilizando un algoritmo de clasificacin supervisado Maximum Likelihood. En concreto, la tabla 4.14 muestra una comparativa (en trminos de porcentaje de acierto) entre la imagen mostrada en
-117-
74.31 %
Tabla 4.14. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Maximum Likelihood con la imagen del World Trade Center.
Tal y como se observa, la evaluacin de los resultados obtenidos se encuentra por encima del rango de valores considerados como adecuados (en torno al 70-80% en global), con resultados altamente similares en las clases asociadas a zonas urbanas que predominan en la escena del World Trade Center. Por lo que la aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Como conclusin global se puede obtener que la utilizacin de cualquiera de los dos algoritmos implementados puede ser aplicado al procesamiento de cualquier imagen disponible en la herramienta, ya que ambos algoritmos nos proporcionan una media de porcentajes superiores al 80% de acierto al comparar su salida con la obtenida por una implementacin del mismo algoritmo en un paquete comercial y de gran aceptacin en la comunidad cientfica como ENVI.
-118-
A dicha seleccin una vez almacenada en disco, ejecutaremos en primer lugar el algoritmo de clasificacin supervisado Mnimas Distancias. Los resultados se muestran en la figura 4.56, en donde el usuario tambin tendr la oportunidad de seleccionar las clases que ms le interesen. En la figura 4.57 mostraremos slo las clases cuya superficie pertenecen a zonas de agua.
Figura 4.56. Algoritmo Mnimas Distancias ejecutado tras haber aplicado el alg. Isodata.
-119-
Figura 4.57. Seleccin de zonas con agua en comn del alg. Mnimas Distancias con el alg. Isodata.
Cmo podemos observar en la figura 4.57, se han seleccionado los elementos en comn con la zona de entrenamiento, es decir, dichos elementos mencionados son en este caso las distintas zonas de agua.
Figura 4.58. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg. Isodata.
-120-
Figura 4.59. Seleccin de zonas con agua en comn del alg. Maximum Likelihood con el alg. Isodata.
Al igual que sucedi con la ejecucin del algoritmo Mnimas Distancias, en la figura 4.58, podemos observar que no se ha desechado ninguna zona, es decir, todos los pxeles pertenecen a alguna clase determinada. Sin embargo en la figura 4.59 observamos que hay zonas que no pertenecen a zonas de agua (por ejemplo, zonas urbanas) y por tanto no se necesitan seleccionar. Una vez ejecutados los dos algoritmos anteriores sobre una misma zona, procesaremos dicha zona con la herramienta ENVI. Para ello, en primer lugar seleccionaremos el algoritmo de clasificacin supervisado Mnimas Distancias (ver figura 4.60).
-121-
Figura 4.60. Algoritmo Mnimas Distancias ejecutado tras haber aplicado el alg. Isodata en la herramienta ENVI.
Figura 4.61. Algoritmo Maximum Likelihood ejecutado tras haber aplicado el alg. Isodata en la herramienta ENVI.
-122-
-123-
Tabla 4.15. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Mnimas Distancias con la imagen del ro Nilo.
A continuacin mostraremos los resultados obtenidos utilizando un algoritmo de clasificacin supervisado Maximum Likelihood. En concreto, la tabla 4.16 muestra una comparativa (en trminos de porcentaje de acierto) entre la imagen mostrada en la figura 4.58 (correspondiente al mtodo Maximum Likelihood implementado en nuestra herramienta) y la imagen mostrada en la figura 4.61 (correspondiente al mtodo Maximum Likelihood implementado en ENVI). De nuevo, los cdigos de color indicados en la tabla corresponden a colores asociados a cada clase en nuestra herramienta. Las celdas que se encuentran sombreadas corresponden a clases con las que el usuario ha querido conservar, de las que se han obtenido una media de valores por encima del 80% de acierto. Azul (ZUrbana) 79.19 % Verde (Vegetacin3) 99.68 % Naranja (Vegetacin1) 75.58 % Rojo (Agua) 99.99 % Amarillo (Vegetacin2) 98.18 % Media Global 90.52 %
Tabla 4.16. Resultados estadsticos tras la ejecucin del algoritmo de clasificacin supervisado Maximum Likelihood con la imagen del ro Nilo.
Tal y como se observa, la evaluacin de los resultados obtenidos se encuentra por encima del rango de valores considerados como adecuados (en torno al 70-80% en global), con resultados altamente similares en las clases asociadas a zonas de agua que predominan en la escena del ro Nilo. Por lo que la aplicacin se comporta de forma correcta con las imgenes que han sido procesadas. Como conclusin global se
-124-
-125-
5. Conclusiones
En este apartado enumeramos las principales conclusiones que se han obtenido tras la realizacin del proyecto, as como la previsin de los posibles futuros trabajos que se podran desarrollar para ampliar o mejorar esta primera aplicacin.
-126-
-127-
-128-
6. Bibliografa
[1] Smeulders, A.W.M., Worring, M., Santini, S., Gupta, A., Jain, R.: Contentbased image retrieval at the end of the early years. IEEE Transactions on Pattern Analysis and Machine Intelligence 22 (2000) 13491380. [2] Vogel, J., Schiele, B.: Performance evaluation and optimization for contentbased image retrieval. Pattern Recognition 39 (2006) 897909. [3] Yoo, H.-W., Park, H.-S., Jang, D.-S.: Expert system for color image retrieval. Expert systems with applications 28 (2005) 347357. [4] Plaza, A., Martinez, P., Perez, R., Plaza, J.: A quantitative and comparative analysis of endmember extraction algorithms from hyperspectral data. IEEE Transactions on Geoscience and Remote Sensing 42 (2004) 650663. [5] Bosque, J.L., Robles, O., Pastor, L., Rodriguez, A.: Parallel CBIR implementations with load balancing algorithms. International Journal of Parallel and Distributed Systems 66 (2006) 10621075. [6] Plaza, A., Plaza, J., Paz, A., Blzquez, S.: Parallel CBIR system for efficient hyperspectral image retrieval from heterogeneous networks of workstations. Workshop on Grid Computing Applications Development 1 (2007) 23-45. [7] John Eakins and Margaret Graham. Content-based image retrieval. Technical report, University of Northumbria at Newcastle, 1999. [8] M. Flickner, W. Sawhney, H. ND Niblack, J. Ashley, Qian Huang, B. Dom, M. Gorkani, J. Hafner, D. Lee, D. Petkovic, D. Steele, and P. Yanker. Query by image and video content: the qbic system. Computer, 28(9): 23-32, Sep 1995. [9] Arun Hampapur, Amarnath Gupta, Bradley Horowitz, Chiao-Fe Shu, Charles Fuller, Jeffrey R. Bach, Monika Gorkani, and Ramesh C. Jain. Virage video engine. Volume 3022, pages 188-198. SPIE, 1997. [10] V.E. Ogle and M. Stonebraker. Chabot: retrieval from a relational databases of
-129-
-130-
-131-
-132-
-133-
-134-
Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite 7. ANEXO I: Manual del Usuario
Descripcin general: GoogleCBIR es una aplicacin desarrollada para el tratamiento y visualizacin de imgenes de satlite procedentes de Google Maps, as como la carga de resultados ya realizados previamente. A travs de esta herramienta se podr realizar bsquedas por contenido en grandes repositorios de imgenes, obtenidas a partir de satlites de observacin remota de la tierra. Los formatos que soporta este programa son: PNG (Portable Network Graphics), ser el formato de las imgenes que se almacenarn en disco y de las que se cargarn desde disco. TXT (archivo de texto plano), que ser un fichero log que contendr los valores de ancho y altura de las imgenes, adems de las coordenadas de seleccin. Con este manual, se pretende ayudar al usuario a la instalacin de GoogleCBIR y ensearle a utilizar de forma rpida y sencilla este programa sin ningn tipo de problemas.
Instalacin: A continuacin, se explican los pasos a seguir para instalar GoogleCBIR en nuestro sistema, ya sea Windows o Linux. Para que GoogleCBIR pueda funcionar, es requisito indispensable tener instalada la Mquina Virtual de Java. Se puede descargar gratuitamente en la siguiente URL12. En la carpeta Programas Windows del CD se incluye la versin
http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US//USD/VerifyItem-Start/jdk-6u20-windowsi586.exe?BundledLineItemUUID=oNiJ_hCwpnEAAAEo2kJsaq0R&OrderID=22OJ_hCwx.sAAAEozUJsaq 0R&ProductID=YolIBe.o5iAAAAEnUTJHqPYe&FileName=/jdk-6u20-windows-i586.exe
12
-135-
siguiendo los pasos que se indican. Una vez instalado en nuestro equipo, podemos ejecutar la aplicacin, o bien desde el acceso directo GoogleCBIR que se crea en el Escritorio, o a travs de Inicio Programas GoogleCBIR GoogleCBIR.
Linux: Creamos una carpeta en nuestro sistema y copiamos el contenido del directorio Programas Linux del CD.
Una vez realizado esto, abriremos una consola situndonos en el directorio que acabamos de crear. Para instalar GoogleCBIR escribimos en el terminal la siguiente instruccin: sh install.sh. Para ejecutar la aplicacin, abriremos un terminal, accederemos al directorio creado anteriormente, y escribiremos sh GoogleCBIR.sh.
-136-
Como hemos podido comprobar, la pantalla pant principal est formada por cinco elementos en la barra de men, adems de una serie de botones para facilitar el manejo de la aplicacin y el mapa. Iremos explicando cada uno de ellos a media que los vayamos necesitando.
Movimientos por el mapa Podemos desplazarnos por el mapa de dos maneras: Mediante las teclas de direccin. Pinchando con el ratn sobre el mapa y arrastrando hacia donde queramos
-137-
Figura 7.2. Opcin Arrastrar Mapa Mapa seleccionada en la barra de herramientas. herramientas
Figura 7.3. Opcin Arrastrar Mapa apa del men Editar. Editar
Control de zoom Para ajustar el zoom al nivel que deseemos, tenemos dos opciones: Mediante la rueda del ratn. Hacia arriba obtendremos mayor nivel de zoom, y hacia abajo, menor. A travs del men: Ver Zoom Zoom + (figura igura 7.4), en este caso Zoom obtendremos mayor nivel de zoom. Si utilizamos la opcin: Ver Zoom (figura igura 7.5), .5), en este caso obtendremos menor nivel de zoom.
-138-
Zoom Zoom.
Zoom Zoom.
Vistas de mapa
Aunque por defecto se use la vista hbrida de Google Maps, al usuario se le da la opcin de poder utilizar tanto la vista Satlite como la vista Mapa, Mapa segn se adapte mejor a sus necesidades. Pasamos ahora a describir brevemente la informacin que nos puede ofrecer cada una de las vistas: Vista hbrida: permite de forma hbrida a detalles demogrficos del terreno a la par que las calles o las carreteras. carreteras Vista satlite: nos permitir ver el mundo con imgenes tomadas desde satlite. Vista mapa: nos permitir ver un mapa poltico, con los nombres de localizaciones. Para poder activar ivar cada una de las vistas descriptas anteriormente, necesitaremos activarla a travs del men. Para cada una de ellas la opcin del men ser distinta:
-139-
Vistas Vistas.
Vistas Vistas.
-140-
Vistas Vistas.
Apertura de ficheros Para abrir un archivo (en este caso, una imagen en formato .png), podemos hacerlo mediante el botn Abrir archivo de la barra de herramientas (figura ( 7.9):
-141-
Figura 7.11 .11. Ventana de seleccin para la apertura de una imagen. imagen
En primer lugar se tendr que seleccionar la ruta donde se encuentre el fichero con formato .png, para ello habr que seleccionar sobre el botn botn De esta manera, saldr la siguiente ventana (figura 7.12): primero.
Figura 7.12. Ventana de seleccin de ruta para la apertura de una imagen. imagen
-142-
ventana de seleccin y nos aparecer una ventana parecida como en la figura 7.12, pero ahora tendremos que seleccionar en Archivos de tipo, archivos generados (.txt). Una vez que tengamos hecho todo esto, al final tendremos algo parecido como en la figura 7.13: .13:
Figura 7.13 .13. Ejemplo de ventana de seleccin para una apertura. apertura
Es necesario conocer tambin tambin la funcionalidad de seleccionar la opcin de Imagen muestra, ya que nos puede interesar seleccionar la imagen muestra de una prueba (en este caso habr que seleccionarlo imagen final (en este caso no tendremos que seleccionarlo la lectura del fichero .txt de una manera u otra. Como ya hemos comentado anteriormente, GoogleCBIR soporta archivos .png y .txt. Despus de seleccionar el archivo en cuestin junto al fichero .txt asociado, ) o seleccionar la ). Es
muy importante tenerlo en cuenta, ya que de esta seleccin depender que se realice
-143-
Como hemos podido observar se ha cargado cargado una imagen ya clasificada, donde cada color corresponde a una clase donde todos los pxeles tienen en comn caractersticas similares. similares Insercin de puntos Para poder seleccionar una zona sobre el mapa necesitaremos pintar dos puntos que corresponden con la esquina superior izquierda y con la esquina inferior derecha para definir una regin de seleccin. Para ello tendremos que seleccionar esta opcin, o bien pinchando en el botn Puntos Region (figura 7.15):
-144-
Una vez seleccionada esta opcin ya tendremos la imagen seleccionada para poder realizar un n volcado a disco. disco. Todos estos pasos sern necesarios para efectuar un posterior procesado. Borrado de puntos Nos permite eliminar los puntos pintados anteriormente (figura 7.17): 7
-145-
Buscar zonas Esta opcin nos permite centrar el mapa de forma rpida a una zona cuyo punto central sea el par de coordenadas introducido por el usuario, a un zoom mximo para observarlo todo al mximo detalle. Para ello, debemos pulsar el botn Buscar zona de la barra de herramientas (figura 7.21):
-146-
Procesamiento No supervisado Despus de haber guardado en disco la imagen im gen el prximo paso ser procesarla. Tendremos la posibilidad de elegir entre dos tipos de procesamiento miento no supervisado (Isodata o K-means). means). La diferencia de elegir uno u otro ya la conocemos, por tanto, la eleccin queda en el usuario. Recordar que si elegimos un procesamiento con Isodata tendremos varias mejoras respecto a un procesamiento K-means, K como la particin y combinacin de grupos, adems permite diferentes nmeros de grupos, mientras que el K-means means se supone que se conoce el nmero de grupos a priori. Para poder elegir un tipo u otro debemos pulsar el botn Procesamiento Proces de la barra de herramientas se muestra en la a figura 7.23: , a continuacin saldr una ventana de dilogo
para utilizar uno de los dos tipos de procesamientos que se le ofrece al usuario, como
-147-
Si elegimos la opcin de procesamiento con Isodata ahora nos saldr saldr otra ventana para poder configurar configura los distintos parmetros de configuracin de dicho algoritmo, como se muestran muestra en la figura 7.25:
Si por el contrario elegimos la opcin de procesamiento con K-Means K nos saldr otra ventana para poder configurar los distintos parmetros de configuracin de dicho algoritmo, como se muestran en la figura 7.26:
-148-
Pintar Imagen Despus de haber hecho un procesamiento sea del tipo que sea necesitaremos poder visualizar el resultado sobre el mapa, para ello necesitaremos necesitaremos pulsar el botn Pintar Imagen de la barra de herramientas , a continuacin nos
aparecer parecer una ventana donde tendremos la oportunidad de poder aadir y quitar clases segn necesitemos obtener un resultado determinado (figura figura 7.27):
Otra forma de pintar una imagen sobre el mapa lo podremos hacer a travs del
-149-
A parte de lo que hemos dicho antes el usuario podr aadir transparencia a la imagen pintada, para ello, tendremos que activar la transparencia dejarlo sin in ningn tipo de transparencia o
la transparencia se aplicar a todas las las clases mostradas sobre el mapa. Un ejemplo de todo esto lo tenemos a continuacin utilizando utilizando un procesamiento con K-Means aplicando 5 clases. clases La zona escogida est cercana a la localidad de Guarea, exactamente en las coordenadas (38.88503,-6.116294), (38.88503, 6.116294), mostrado en la figura 7.29:
Figura 7.29. Ejemplo de procesamiento con K-Means K pintado sobre el mapa en una zona cercana a la poblacin de Guarea.
-150-
Post-procesado.
A continuacin mostraremos los resultados de utilizar un post-procesado con una ventana 3x3, mostrado en la figura 7.31. Para cada pxel de la imagen clasificada, se crea una ventana considerando los pxeles vecinos. De tal manera que el pxel central va a ser igual a la clase mayoritaria de sus vecinos, es decir, igual a la clase que mayor porcentaje tenga. De esta manera nos aseguraremos de que no queden pxeles sueltos que no nos den informacin o una posible informacin errnea.
-151-
Figura 7.31. Ejemplo de post-procesado post procesado con una ventana 3x3 pintado sobre el mapa en una zona cercana a la poblacin de Guarea. Guarea
Si queremos utilizar para el post-procesado post procesado una ventana de 5x5 lo podremos hacer a travs del men: Procesamiento muestra la siguiente figura 7.32: Post-procesado Ventana 5x5, como
Figura 7.32. Opcin Ventana 5x5 del men Procesamiento procesado. Post-
A continuacin mostraremos los resultados de utilizar un post-procesado post con una ventana 5x5, mostrado en la figura 7.33. Para cada pxel p de la imagen clasificada, se crea una ventana considerando los pxeles vecinos.
-152-
Figura 7.33. Ejemplo de post-procesado post procesado con una ventana 5x5 pintado sobre el mapa en una zona cercana a la poblacin de Guarea. Guarea
Si queremos utilizar para el post-procesado p procesado una ventana de 7x7 lo podremos hacer a travs del men: Procesamiento muestra la siguiente figura 7.34: Post-procesado Ventana 7x7, como
Post-procesado.
A continuacin mostraremos los resultados de utilizar un post-procesado post con una ventana 7x7, mostrado en la figura 7.35. .35. Para cada pxel p de la imagen
-153-
Figura 7.35. Ejemplo de post-procesado post o con una ventana 7x7 pintado sobre el mapa en una zona cercana a la poblacin de Guarea. Guarea
Deshacer Post-procesado procesado Hay veces que nos van a interesar probar varios post-procesado post procesados y otras veces que no. Por ello se permite al usuario poder deshacer un post-procesado post procesado para quedar slo el resultado tras un procesado. Si queremos utilizar el deshacer post-procesado post procesado lo podremos hacer a travs del men: Procesamiento figura 7.36: Post-procesado Deshacer, como muestra la l siguiente
-154-
El resultado de aplicar un deshacer post-procesado post procesado tras cualquier post-procesado post anterior, sera similar a la figura 7.29.
Clasificacin Supervisada Despus de haber guardado en disco la imagen final a clasificar (supuestamente ms grande que la que se guard antes del procesamiento no supervisado) el prximo paso ser clasificarla. Tendremos la posibilidad de elegir entre dos tipos de clasificaciones supervisadas (Clasificador Maximum Likelihood o Clasificador de Mnimas Distancias). La diferencia de elegir uno u otro ya la conocemos, por tanto, la eleccin queda en el usuario. Recordar que si elegimos un clasificador M.Likelihood estaremos utilizando un clasificador muy robusto ya que utiliza la estadstica para clasificar los pxeles, , aunque es un poco complejo. En cambio la utilizacin de un clasificador de M.Distancias nos proporcionar un criterio ms sencillo para clasificar un pxel en una categora categora para incluirlo en la ms cercana a l, siempre y cuando esta distancia sea menor que la desviacin estndar de la clase. Para poder elegir una clasificacin supervisada mediante el mtodo M. Likelihood tendremos que pulsar el botn Clasificador Maximum Maximum Likelihood de la barra de herramientas (figura 7.37):
Figura 7.37. .37. Opcin Clasificador Maximum Likelihood de la barra de herramientas. herramientas
-155-
Figura 7.38. Opcin Clasificador Maximum Likelihood Likelihood del men Procesamiento Supervisado.
A continuacin mostraremos los resultados de utilizar un clasificador M. Likelihood (tras haber hecho un procesado con el algoritmo de clasificacin no supervisada K-Means, Means, figura 7.29), mostrado en la figura 7.39:
Figura 7.39. Ejemplo de clasificacin por el mtodo de Maximum Likelihood sobre el mapa en una zona cercana a la poblacin de Guarea. Guarea
Una vez obtenido el resultado tambin tendremos la posibilidad de ir quitando clases o aadindolas dependiendo del resultado que el usuario necesite obtener. La
-156-
Figura 7.40. Ventana para aadir o eliminar clases utilizando una clasificacin supervisada.
Como mo podemos comprobar en los resultados la utilizacin del mtodo por Maximum Likelihood, Likelihood quedan todos los pxeles clasificados, al contrario que pasar con el mtodo de Mnimas Mn Distancias que utiliza una discriminacin a la hora de clasificarlos. Los resultados son bastantes buenos ya que cmo se ha explicado anteriormente utiliza un sistema bastante robusto que nos proporcionar un resultado eficaz, ya que realizar bastantes es clculos estadsticos antes de clasificar un pxel xel en una categora u otra. Si por el contrario elegimos una clasificacin supervisada mediante el mtodo M. Distancias tendremos que pulsar el botn Clasificador Mnimas Distancias de la barra rra de herramientas (figura 7.41):
-157-
Figura 7.42. Opcin Clasificador Mnimas Distancias Distancias del men Procesamiento Supervisado.
A continuacin mostraremos los resultados de utilizar un clasificador M. Distancias as utilizando la misma zona que se utiliz para los resultados del mtodo anterior (zona cercana a la poblacin de Guarea), Guarea), ya que de esta manera se podr realizar una comparacin visual, visual, ms fcil para el usuario final. final La figura 7.43 ilustrar el resultado:
Figura 7.43. Ejemplo de clasificacin por el mtodo de Mnimas Distancias Distanci pintado sobre el mapa en una zona cercana a la poblacin de Guarea. Guarea
-158-
Copiar Resultados Despus de la clasificacin nos va a interesar salvar todos los resultados en algn directorio donde tengamos todas las pruebas realizadas. Por ello surge la necesidad de utilizar algn mtodo de copiado de resultados de un directorio a otro. Para utilizar dicho mtodo slo tendremos que pulsar el botn Copiar resultados de la barra rra de herramientas (figura 7.44):
-159-
En primer lugar, , se tendr que seleccionar si queremos que el directorio tenga diferente nombre , o se quede con el nombre por defecto . A continuacin, tendremos que seleccionar el destino donde tendremos el directorio cuyo contenido ser ser los resultados obtenidos, para ello habr que pulsar sobre el botn ventana (figura 7.47): ): . De esta manera nos saldr la siguiente
-160-
Anular cambios Esta opcin nos permite resetear todos los cambios hechos hasta el momento, momento quedando la aplicacin como estaba al principio. Para ello tendremos que pinchar en el botn Anular cambios de la barra ba de herramientas (figura 7.49 .49):
-161-
Recargar mapa Si mientras estamos utilizando GoogleCBIR, o cuando comenzamos a utilizarlo, perdemos la conexin a internet (7.52), ( ), es posible volver a cargar los mapas sin tender que reiniciar de nuevo la aplicacin. aplicacin
-162-
Salir de la aplicacin Para salir de la aplicacin GoogleCBIR, tenemos dos opciones: Mediante el cierre de la aplicacin normal A travs del men: Archivo Salir (figura 7.55): .
-163-
Figura 7.56. . Opcin para visualizar los datos del autor y cmo contactar desde el men Ayuda.
A continuacin nuacin nos saldr una ventana con todos los datos citados (figura 7.57):
Para acceder al manual de la aplicacin, seleccionamos desde el men la siguiente opcin: Ayuda Manual (figura 7.58):
-164-
Figura 7.58. Opcin para visualizar el manual de la aplicacin desde el men Ayuda. Ayuda
Se abrir en nuestro navegador el manual con toda la informacin acerca del funcionamiento de GoogleCBIR.
-165-
Desarrollo de un sistema automtico para bsqueda por contenido en imgenes de satlite 8. ANEXO II: : Manual del Programador
En este manual veremos cada una de las clases utilizadas, explicando sus mtodos y atributos.
Aplicacin
Mapa
Tratamiento
Fichero
MLC
Isodata
KMeans
La aplicacin se compone de 7 clases, como vemos vemos en el diagrama de la figura 8.1: .1: la clase aplicacin ser la principal, Mapa, Fichero, Tratamiento, que a su vez gestionar la informacin de las clases MLC, Isodata y KMeans.
-166-
Mtodo Fichero Tipo: pblico. Parmetros: description (String). Descripcin del filtro. extension (String). Extensin del filtro. tipo (int). Tipo del filtro. Descripcin: Constructor de la clase Fichero. Mtodo accept Tipo: pblico. Parmetros: file (File). Fichero de entrada. Descripcin: Mtodo abstracto que indica si el archivo dado es aceptado por este filtro. Retorna: boolean. Mtodo getDescription Tipo: pblico. Descripcin: Devuelve la descripcin del filtro. Retorna: String. Mtodo getTipo Tipo: pblico. Descripcin: Devuelve el tipo del filtro. Retorna: int.
-167-
-168-
-169-
-170-
Mtodo inicializarMapa Tipo: pblico. Parmetros: gp (GeoPosition). Contiene las coordenadas en donde inicializar el mapa. Zoom (int). Contiene el valor zoom en el que estar el mapa al inicializarse. Descripcin: funcin que inicializa el mapa a un zoom y a unas coordenadas determinadas. Mtodo hayInternet Tipo: pblico. Descripcin: funcin que devuelve true si hay conexin a internet y false en el caso contrario. Retorna: un booleano true o false dependiendo de la especificacin anterior. Mtodo setPintarPunto Tipo: pblico. Parmetros: valor (boolean). Es un valor booleano que ser true o false dependiendo de si se puede pintar un punto o no. Descripcin: funcin que almacena valor en la variable pintarPunto y determina si se puede pintar sobre el mapa. Mtodo getContadorPuntosRegion Tipo: pblico.
-171-
Mtodo setContadorPuntosRegion Tipo: pblico. Parmetros: valor (int). Es un entero que contendr el nmero de puntos de la regin. Descripcin: funcin que almacena valor en la variable contadorPuntosRegion, para indicar el nmero de puntos que hay pintados para determinar la regin.
Mtodo mapaMouseClicked Tipo: pblico. Parmetros: evt (java.awt.event.MouseEvent). Es un evento de ratn. Descripcin: funcin que devuelve las coordenadas del mapa donde se pinch con el ratn. Retorna: Una coordenada compuesta por latitud y longitud.
Mtodo mapaMouseMoved Tipo: pblico. Parmetros: evt (java.awt.event.MouseEvent). Es un evento de ratn. Descripcin: funcin que devuelve las coordenadas de la posicin del puntero del ratn al moverse por el mapa. Retorna: Una coordenada compuesta por latitud y longitud.
-172-
Mtodo mapaMousePressed Tipo: pblico. Parmetros: evt (java.awt.event.MouseEvent). Es un evento de ratn. Descripcin: funcin que pinta puntos para delimitar la regin al pinchar sobre el mapa.
Mtodo pintarRegion Tipo: pblico. Descripcin: funcin que se encarga de pintar la regin delimitada por 4 puntos formando un polgono regular.
Mtodo pintar Tipo: pblico. Descripcin: funcin que se encarga de pintar cada uno de los puntos de los cuales se compone la regin.
Mtodo setImagen Tipo: pblico. Parmetros: img (Image). Almacena los valores RGB de una imagen. Descripcin: muestra. Mtodo getImagen Tipo: pblico. funcin que almacena en una variable tipo Image imagenMuestra los valores RGB de los pxeles de la imagen inicial o
-173-
Mtodo setImagenFin Tipo: pblico. Parmetros: img (Image). Almacena los valores RGB de una imagen. Descripcin: funcin que almacena en una variable tipo Image imagenFin los valores RGB de los pxeles de la imagen final.
Mtodo getImagenFin Tipo: pblico. Descripcin: funcin que devuelve un Image con los valores RGB de la imagen final. Retorna: un tipo Image que contendr los valores RGB de la imagen final.
Mtodo setImagenCargar Tipo: pblico. Parmetros: img (Image). Almacena los valores RGB de una imagen. Descripcin: funcin que almacena en una variable tipo Image imagenCargar los valores RGB de los pxeles de la imagen a cargar.
Mtodo getImagenCargar Tipo: pblico. Descripcin: funcin que devuelve un Image con los valores RGB de la imagen a cargar. Retorna: un tipo Image que contendr los valores RGB de la imagen a cargar.
-174-
Mtodo setHMuestra Tipo: pblico. Parmetros: valor (int). Es un entero que contiene el tamao de la altura de la imagen. Descripcin: funcin que almacena valor en la variable hMuestra para indicar la altura de la imagen inicial o muestra.
Mtodo getWMuestra Tipo: pblico. Descripcin: funcin que devuelve el tamao del ancho de la imagen inicial o muestra. Retorna: un entero que contiene el tamao del ancho de la imagen inicial o muestra.
Mtodo getHMuestra Tipo: pblico. Descripcin: funcin que devuelve el tamao de la altura de la imagen inicial o muestra. Retorna: un entero que contiene el tamao de la altura de la imagen inicial o muestra. Mtodo setWFin Tipo: pblico.
-175-
Mtodo setHFin Tipo: pblico. Parmetros: valor (int). Es un entero que contiene el tamao de la altura de la imagen. Descripcin: funcin que almacena valor en la variable hFin para indicar la altura de la imagen final.
Mtodo getWFin Tipo: pblico. Descripcin: funcin que devuelve el tamao del ancho de la imagen final. Retorna: un entero que contiene el tamao del ancho de la imagen final.
Mtodo getHFin Tipo: pblico. Descripcin: funcin que devuelve el tamao de la altura de la imagen final. Retorna: un entero que contiene el tamao de la altura de la imagen final.
Mtodo pintarClasificacion Tipo: pblico. Parmetros: imagen (BufferedImage). Contiene los valores RGB de color de cada uno de los pxeles de la imagen inicial o muestra ya clasificada. wMuestra (int). Contiene el tamao del ancho de la imagen inicial o muestra ya clasificada.
-176-
Mtodo pintarClasificacionFin Tipo: pblico. Parmetros: imagen (BufferedImage). Contiene los valores RGB de color de cada uno de los pxeles de la imagen final ya clasificada. wMuestra (int). Contiene el tamao del ancho de la imagen final ya clasificada. hMuestra (int). Contiene el tamao de la altura de la imagen final ya clasificada. Descripcin: funcin que se encarga de pintar la imagen final ya clasificada sobre el mapa.
Mtodo pintarCargarImagen Tipo: pblico. Parmetros: path (String). Es una cadena de caracteres que contiene el path donde se encuentra la imagen a cargar. Descripcin: funcin que se encarga de pintar la imagen a cargar ya clasificada sobre el mapa.
Mtodo pintarImagenEscaladaFin Tipo: pblico. Parmetros: NombreImagen (String). Es una cadena de caracteres que contiene el path de la imagen final ya clasificada. wMuestra (int). Contiene el tamao del ancho de la imagen final ya clasificada.
-177-
Mtodo prepararCoordenadas Tipo: pblico. Descripcin: funcin que se encarga de preparar las coordenadas dependiendo del nivel de zoom que se tenga sobre el mapa (utilizado para la imagen inicial o muestra).
Mtodo prepararCoordenadasCargar Tipo: pblico. Descripcin: funcin que se encarga de preparar las coordenadas dependiendo del nivel de zoom que se tenga sobre el mapa a la hora de cargar imgenes.
Mtodo prepararCoordenadasFin Tipo: pblico. Descripcin: funcin que se encarga de preparar las coordenadas dependiendo del nivel de zoom que se tenga sobre el mapa (utilizado para la imagen final).
Mtodo limpiar Tipo: pblico. Descripcin: funcin que elimina todos los elementos que hubiera pintado sobre el mapa.
-178-
Mtodo ObtenerParticionesAncho Tipo: pblico. Descripcin: funcin que se encarga de obtener el nmero de particiones a realizar sobre el ancho de la imagen. Retorna: el nmero de particiones posibles a realizar sobre el ancho de la imagen.
Mtodo ObtenerParticionesAlto Tipo: pblico. Descripcin: funcin que se encarga de obtener el nmero de particiones a realizar sobre la altura de la imagen. Retorna: el nmero de particiones posibles a realizar sobre la altura de la imagen.
Mtodo setPosicionInicial Tipo: pblico. Parmetros: posInicial0 (GeoPosition). Es la coordenada determinada por longitud y latitud de la esquina superior izquierda de la imagen. posInicial1 (GeoPosition). Es la coordenada determinada por longitud y latitud de la esquina inferior derecha de la imagen. Descripcin: funcin que se encarga de almacenar las coordenadas de la esquina superior izquierda y de la esquina inferior derecha de la imagen.
-179-
Mtodo getPosicionInicialY0 Tipo: pblico. Descripcin: funcin que devuelve la longitud de la esquina superior izquierda de la imagen. Retorna: la longitud de la esquina superior izquierda de la imagen.
Mtodo getPosicionInicialX1 Tipo: pblico. Descripcin: funcin que devuelve la latitud de la esquina inferior derecha de la imagen. Retorna: la latitud de la esquina inferior derecha de la imagen.
Mtodo getPosicionInicialY1 Tipo: pblico. Descripcin: funcin que devuelve la longitud de la esquina inferior derecha de la imagen. Retorna: la longitud de la esquina inferior derecha de la imagen.
Mtodo obtenerPuntoCentral Tipo: pblico. Parmetros: i (int). Es la porcin nmero i determinado segn la anchura. j (int). Es la porcin nmero j determinado segn la altura. Descripcin: funcin que se encarga de obtener el punto central de una porcin de la imagen determinado por i, j. Retorna: las coordenadas determinadas por longitud y latitud del punto central.
-180-
Mtodo getEscaladoW Tipo: pblico. Descripcin: funcin que se encarga de obtener el ancho de la imagen inicial o muestra dependiendo del zoom que se tenga en el mapa. Retorna: el ancho de la imagen inicial o muestra.
Mtodo getEscaladoH Tipo: pblico. Descripcin: funcin que se encarga de obtener la altura de la imagen inicial o muestra dependiendo del zoom que se tenga en el mapa. Retorna: la altura de la imagen inicial o muestra.
Mtodo setEscaladoW Tipo: pblico. Parmetros: valor (int). Contiene el nuevo valor ancho de la imagen inicial o muestra. Descripcin: funcin que almacena en la variable escaladoW el ancho de la imagen inicial o muestra segn el zoom del mapa.
Mtodo setEscaladoH Tipo: pblico. Parmetros: valor (int). Contiene el nuevo valor altura de la imagen inicial o
-181-
Mtodo getEscaladoWFin Tipo: pblico. Descripcin: funcin que se encarga de obtener el ancho de la imagen final dependiendo del zoom que se tenga en el mapa. Retorna: el ancho de la imagen final.
Mtodo setEscaladoHCargar Tipo: pblico. Parmetros: valor (int). Contiene el nuevo valor altura de la imagen a cargar. Descripcin: funcin que almacena en la variable escaladoHCargar la altura de la imagen a cargar segn el zoom del mapa.
Mtodo getEscaladoHCargar Tipo: pblico. Descripcin: funcin que se encarga de obtener la altura de la imagen a cargar dependiendo del zoom que se tenga en el mapa. Retorna: la altura de la imagen a cargar.
Mtodo setEscaladoWCargar Tipo: pblico. Parmetros: valor (int). Contiene el nuevo valor ancho de la imagen a cargar. Descripcin: funcin que almacena en la variable escaladoWCargar el ancho de la imagen a cargar segn el zoom del mapa. Mtodo getEscaladoWCargar Tipo: pblico.
-182-
Mtodo getEscaladoHFin Tipo: pblico. Descripcin: funcin que se encarga de obtener la altura de la imagen final dependiendo del zoom que se tenga en el mapa. Retorna: la altura de la imagen final.
Mtodo setEscaladoWFin Tipo: pblico. Parmetros: valor (int). Contiene el nuevo valor ancho de la imagen final. Descripcin: funcin que almacena en la variable escaladoWFin el ancho de la imagen final segn el zoom del mapa.
Mtodo setEscaladoHFin Tipo: pblico. Parmetros: valor (int). Contiene el nuevo valor altura de la imagen final. Descripcin: funcin que almacena en la variable escaladoHFin la altura de la imagen final segn el zoom del mapa.
Mtodo getNumPixelesX Tipo: pblico. Descripcin: funcin que obtiene el nmero de pxeles segn el ancho de la imagen. Retorna: el nmero de pxeles segn el ancho de la imagen. Mtodo getNumPixelesY Tipo: pblico.
-183-
Mtodo getTamMaxX Tipo: pblico. Descripcin: funcin que obtiene el tamao mximo segn el ancho que se utilizar para definir las imgenes obtenidas. Retorna: el tamao mximo segn el ancho que se utilizar para definir las imgenes obtenidas.
Mtodo getTamMaxY Tipo: pblico. Descripcin: funcin que obtiene el tamao mximo segn la altura que se utilizar para definir las imgenes obtenidas. Retorna: el tamao mximo segn la altura que se utilizar para definir las imgenes obtenidas.
Mtodo setCargarImagenW Tipo: pblico. Parmetros: valor (int). Contiene el tamao del ancho de la imagen que se va a cargar. Descripcin: funcin que almacena en la variable cargarImagenW el valor del ancho de la imagen que se va a cargar.
Mtodo setCargarImagenH Tipo: pblico. Parmetros: valor (int). Contiene el tamao de la altura de la imagen que se va a cargar.
-184-
Mtodo setposX0Imagen Tipo: pblico. Parmetros: valor (double). Contiene el valor de la latitud de la esquina superior izquierda de la imagen. Descripcin: funcin que almacena en la variable posX0Imagen el valor de la latitud de la esquina superior izquierda de la imagen (perteneciente a la regin).
Mtodo setposY0Imagen Tipo: pblico. Parmetros: valor (double). Contiene el valor de la longitud de la esquina superior izquierda de la imagen. Descripcin: funcin que almacena en la variable posY0Imagen el valor de la longitud de la esquina superior izquierda de la imagen (perteneciente a la regin).
Mtodo getposX0Imagen Tipo: pblico. Descripcin: funcin que obtiene el valor de la latitud de la esquina superior izquierda de la imagen (perteneciente a la regin). Retorna: la latitud de la esquina superior izquierda de la imagen.
Mtodo getposY0Imagen Tipo: pblico. Descripcin: funcin que obtiene el valor de la longitud de la esquina superior izquierda de la imagen (perteneciente a la regin).
-185-
Mtodo setposX1Imagen Tipo: pblico. Parmetros: valor (double). Contiene el valor de la latitud de la esquina inferior derecha de la imagen. Descripcin: funcin que almacena en la variable posX1Imagen el valor de la latitud de la esquina inferior derecha de la imagen (perteneciente a la regin).
Mtodo setposY1Imagen Tipo: pblico. Parmetros: valor (double). Contiene el valor de la longitud de la esquina inferior derecha de la imagen. Descripcin: funcin que almacena en la variable posY1Imagen el valor de la longitud de la esquina inferior derecha de la imagen (perteneciente a la regin).
Mtodo getposX1Imagen Tipo: pblico. Descripcin: funcin que obtiene el valor de la latitud de la esquina inferior derecha de la imagen (perteneciente a la regin). Retorna: la latitud de la esquina inferior derecha de la imagen.
Mtodo getposY1Imagen Tipo: pblico. Descripcin: funcin que obtiene el valor de la longitud de la esquina inferior derecha de la imagen (perteneciente a la regin). Retorna: la longitud de la esquina inferior derecha de la imagen.
-186-
-187-
-188-
Mtodo setHayImagenIni Tipo: pblico. Parmetros: valor (boolean). Ser true o false dependiendo de si se ha creado la imagen inicial o no. Descripcin: Funcin que almacena valor en la variable hayImagenIni para indicar true si se ha obtenido la imagen inicial o false en el caso contrario. Mtodo getHayImagenIni Tipo: pblico. Descripcin: Funcin que devuelve true si se ha obtenido la imagen inicial o false en el caso contrario. Retorna: un booleano true o false dependiendo de la especificacin anterior.
-189-
Mtodo getHayImagenFin Tipo: pblico. Descripcin: Funcin que devuelve un entero que contiene el nmero de clases que se utiliz para clasificar la imagen inicial. Retorna: un entero que ser mayor o igual que 1 y menor o igual que 10.
Mtodo getNumClases Tipo: pblico. Descripcin: Funcin que devuelve true si se ha obtenido la imagen final o false en el caso contrario. Retorna: un booleano true o false dependiendo de la especificacin anterior.
Mtodo getImagenMuestra Tipo: pblico. Descripcin: Funcin que devuelve una matriz de enteros que contendr los valores de clase de cada pxel de la imagen inicial. Retorna: una matriz de enteros que contendr valores mayores o igual que 1 y menores o iguales que 10.
-190-
Mtodo getImagenMuestraPostPos Tipo: pblico. Parmetros: i (int). Posicin relativa sobre el tamao altura de la imagen. j (int). Posicin relativa sobre el tamao ancho de la imagen. Descripcin: Funcin que devuelve un nico valor obtenido de la matriz que contiene los valores de clase de cada pxel de la imagen inicial con postprocesado. Retorna: un entero que ser mayor o igual que 0 y menor o igual que 9.
Mtodo getWidthImagenIni Tipo: pblico. Descripcin: Funcin que devuelve el valor ancho de la imagen inicial. Retorna: un entero que contendr el valor ancho de la imagen inicial.
Mtodo getWidthImagenFin Tipo: pblico. Descripcin: Funcin que devuelve el valor ancho de la imagen final. Retorna: un entero que contendr el valor ancho de la imagen final.
Mtodo getHeightImagenFin Tipo: pblico. Descripcin: Funcin que devuelve el valor altura de la imagen final. Retorna: un entero que contendr el valor altura de la imagen final.
-191-
Mtodo inicializarClasesAnalisis Tipo: pblico. Descripcin: Funcin que crea un array de tamao el mximo de clases(10) para despus marcar con 0 (inactivo) o con un 1 (activo) y tenerlos en cuenta a la hora de mostrar las clases clasificadas con el algoritmo MLC.
Mtodo setPosClasesAnalizar Tipo: pblico. Parmetros: i (int). Posicin a cambiar por valor del array que contiene las clases a mostrar en la clasificacin del algoritmo MLC. valor (int). Contiene el contenido a cambiar en la posicin determinada por i del array. Descripcin: Funcin que almacena un valor en una determinada posicin del array. Contiene las clases a mostrar en la clasificacin del algoritmo MLC.
Mtodo mostrarClasesAnalizadas Tipo: pblico. Descripcin: Funcin que muestra cada una de las posiciones del array que contiene las clases a mostrar con el algoritmo MLC.
Mtodo getClasesAnalizar Tipo: pblico. Parmetros: i (int). Posicin a devolver su contenido Descripcin: Funcin que obtiene el valor almacenado en una determinada
-192-
Mtodo getImagenIni Tipo: pblico. Descripcin: Funcin que devuelve un BufferedImage con los valores RGB de la imagen inicial. Retorna: un BufferedImage que contendr los valores RGB de la imagen inicial.
Mtodo getImagenFin Tipo: pblico. Descripcin: Funcin que devuelve un BufferedImage con los valores RGB de la imagen final. Retorna: un BufferedImage que contendr los valores RGB de la imagen final.
Mtodo setPostProcesado Tipo: pblico. Parmetros: valor (boolean). Es un booleano que indicar true si se ha realizado el post-procesado y false en el caso contrario. Descripcin: Funcin que almacena valor en la variable aplPostProcesado. En estos momentos contendr el mismo valor que la variable postProcesado de la clase Aplicacin.
Mtodo setDeshacerPostProcesado Tipo: pblico. Parmetros: valor (boolean). Es un booleano que indicar true si se ha realizado
-193-
Mtodo getPostProcesado Tipo: pblico. Descripcin: Funcin que devuelve true si la variable postProcesado de la clase Aplicacin contiene este mismo valor y false en el caso contrario. Retorna: un booleano que ser true o false segn el contenido de la variable postProcesado de la clase Aplicacin.
Mtodo getDeshacerPostProcesado Tipo: pblico. Descripcin: Funcin que devuelve true si la variable deshacerPostProcesado de la clase Aplicacin contiene este mismo valor y false en el caso contrario. Retorna: un booleano que ser true o false segn el contenido de la variable deshacerPostProcesado de la clase Aplicacin.
Mtodo getMatrizMDCPos Tipo: pblico. Parmetros: i (int). Posicin relativa sobre el tamao altura de la imagen. j (int). Posicin relativa sobre el tamao ancho de la imagen. Descripcin: Funcin que devuelve una posicin determinada de la matriz que contiene los valores de clase al que pertenece cada pxel de la imagen con la que se va a realizar el clasificado utilizando el algoritmo MDC. Retorna: un entero que ser un valor comprendido entre 0 y 9, ambos incluidos.
-194-
Mtodo getImagenClasFin Tipo: pblico. Descripcin: Funcin que devuelve un BufferedImage con los valores RGB de la imagen final clasificada. Retorna: un BufferedImage que contendr los valores RGB de la imagen final clasificada.
Mtodo getImagenIniClas Tipo: pblico. Descripcin: Funcin que devuelve un BufferedImage con los valores RGB de la imagen inicial clasificada. Retorna: un BufferedImage que contendr los valores RGB de la imagen inicial clasificada.
Mtodo getImagenIniClasPost Tipo: pblico. Descripcin: Funcin que devuelve un BufferedImage con los valores RGB de la imagen inicial clasificada con post-procesado. Retorna: un BufferedImage que contendr los valores RGB de la imagen inicial clasificada con post-procesado.
-195-
Mtodo lecturaManualRGBIniKMeans Tipo: pblico. Parmetros: numClases (int). Contiene el nmero de clases especificado al principio del procesamiento elegido (KMeans). maxIteraciones (int). Contiene el nmero de iteraciones mximas especificadas al principio del procesamiento elegido (KMeans). Descripcin: Funcin que se encarga de realizar un procesado utilizando el algoritmo basado en KMeans sobre la imagen inicial.
-196-
Mtodo lecturaRGBFinMLC Tipo: pblico. Descripcin: Funcin que se encarga de procesar la imagen con la que se quiere realizar el clasificado y aplica el algoritmo MLC.
Mtodo desviacionEstandar Tipo: pblico. Parmetros: c (int [ ]). Es un array que contendr las clases de cada uno de los pxeles de la imagen inicial. Descripcin: Funcin que se encarga de calcular las desviaciones de cada una de las clases ya clasificadas.
Mtodo centrarVectColumnas Tipo: pblico. Parmetros: c (int [ ]). Es un array que contendr las clases de cada uno de los pxeles de la imagen inicial. Descripcin: Funcin que se encarga de realizar unas operaciones iniciales necesarias para calcular posteriormente la matriz de covarianza.
Mtodo calcularMMCovarianza Tipo: pblico. Parmetros: c (int [ ]). Es un array que contendr los pxeles clasificados de la
-197-
Mtodo lecturaRGBFinMDC Tipo: pblico. Descripcin: Funcin que se encarga de procesar la imagen con la que se quiere realizar el clasificado y aplica el algoritmo MDC.
Mtodo calcularRgbMedias Tipo: pblico. Parmetros: c (int [ ]). Es un array que contendr los pxeles clasificados de la imagen inicial. Descripcin: Funcin que se encarga de calcular el valor medio RGB para cada una de las clases.
Mtodo aplicarDistanciasMinimas Tipo: pblico. Descripcin: Funcin que se encarga de aplicar el algoritmo de mnimas distancias de cada uno de los pxeles de la imagen grande sobre el valor medio de cada una de las clases.
Mtodo guardarImagenDisco Tipo: pblico. Parmetros: imagen (BufferedImage). Contiene cada uno de los valores RGB de la imagen. nombre (String). Contiene el nombre junto con la extensin de la imagen a guardar. Descripcin: Funcin que se encarga de volcar a disco una imagen, cuyo
-198-
Mtodo guardarImagenDisco Tipo: pblico. Parmetros: k (int). Contiene la clase que se ha elegido para pasar los valores de la matriz de covarianza al array general de covarianzas. Descripcin: Funcin que se encarga de pasar a un array la matriz de covarianzas calculada en otra funcin.
Mtodo getMaxClase Tipo: pblico. Parmetros: imagenC (int [ ]). Es un array que contendr los pxeles clasificados de la imagen inicial. Descripcin: Obtiene la clase mxima a la que se ha asignada un pxel de la imagen inicial.
Mtodo postProcesado3 Tipo: pblico. Descripcin: Funcin que se encarga de recorrer cada uno de los pxeles de la imagen inicial para despus aplicar una venta de 3x3 para realizar un postprocesado y despus almacenarlo en una variable de tipo BufferedImage.
Mtodo postProcesado5 Tipo: pblico. Descripcin: Funcin que se encarga de recorrer cada uno de los pxeles de la imagen inicial para despus aplicar una venta de 5x5 para realizar un postprocesado y despus almacenarlo en una variable de tipo BufferedImage. Mtodo postProcesado7 Tipo: pblico.
-199-
Mtodo aplicarVentana3 Tipo: pblico. Parmetros: i (int). Posicin relativa sobre el tamao altura de la imagen. j (int). Posicin relativa sobre el tamao ancho de la imagen. Descripcin: Funcin que aplica un post-procesado utilizando una ventana de 3x3 a un solo pxel, donde previamente se ha introducido por parmetros la situacin de dicho pxel.
Mtodo aplicarVentana5 Tipo: pblico. Parmetros: i (int). Posicin relativa sobre el tamao altura de la imagen. j (int). Posicin relativa sobre el tamao ancho de la imagen. Descripcin: Funcin que aplica un post-procesado utilizando una ventana de 5x5 a un slo pxel, donde previamente se ha introducido por parmetros la situacin de dicho pxel.
Mtodo aplicarVentana7 Tipo: pblico. Parmetros: i (int). Posicin relativa sobre el tamao altura de la imagen. j (int). Posicin relativa sobre el tamao ancho de la imagen. Descripcin: Funcin que aplica un post-procesado utilizando una ventana de 7x7 a un solo pxel, donde previamente se ha introducido por parmetros la situacin de dicho pxel.
-200-
Tipo int: numCluster. Almacena el valor K como el nmero de clusters a utilizar para clasificar la imagen. maxIteraciones. Almacena el valor I como el nmero mximo de iteraciones para el algoritmo de Isodata. maxParesCluster. Almacena el valor P como el nmero de pares de clusters que pueden ser mezclados. minMuestras. Almacena el valor On como el valor umbral para el nmero mnimo de muestras en cada cluster (usado para descartar clusters).
-201-
-202-
Mtodo parametrosIsodata Tipo: pblico. Parmetros: nCluster (int). Mximo nmero de clusters definidos. maxIter (int). Mximo nmero de iteraciones definidas. maxPares (int). Mximo nmero de pares definidos para la unin. minM (int). Mnimo nmero de muestras a mantener en una clase. valorDesv (int). Mximo valor de desviacin entre clases. distPar (int). Mxima distancia entre pares de clases. Descripcin: Se establecen cada uno de los parmetros a tener en cuenta con este algoritmo.
Mtodo generarClases Tipo: pblico. Parmetros: muestra (double [ ]). Es un array de double donde se almacenan los valores RGB de la imagen muestra. Descripcin: Funcin principal para generar las clases a travs de un ajuste automtico mediante la fusin de agrupaciones similares y con divisin de grupos con grandes desviaciones estndar. Retorna: un array de enteros donde estarn almacenados la clase a la que corresponde cada pxel.
-203-
Mtodo distanciaCentro Tipo: pblico. Parmetros: X (double). Almacenar un pxel de la imagen. Y (double). Almacenar el centro de un cluster determinado. Descripcin: Funcin que realiza la distancia de una muestra al centro de un cluster determinado. Retorna: la distancia entre el pxel de la imagen y el centro del cluster.
Mtodo paso3 Tipo: pblico. Descripcin: Paso 3 del algoritmo Isodata donde se desechan los grupos con menos muestras de las mnimas definidas en la variable minMuestras, por tanto, tendremos que descartar dicho grupo y disminuir el nmero de clusters actuales.
Mtodo paso4 Tipo: pblico. Parmetros: M (double [ ]). Es un array de double donde se almacenan los valores RGB de la imagen inicial. Descripcin: Paso 4 del algoritmo Isodata donde se actualizan cada uno de los centros, haciendo una media entre las muestras de cada grupo.
-204-
Mtodo paso6 Tipo: pblico. Descripcin: Paso 6 del algoritmo Isodata donde se calcula la distancia media global de las muestras a sus respectivos centros de cluster. Mtodo paso8 Tipo: pblico. Parmetros: M (double [ ]). Es un array de double donde se almacenan los valores RGB de la imagen inicial. Descripcin: Paso 8 del algoritmo Isodata donde se realiza el primer paso para dividir. Para ello, habr que encontrar tantos arrays como clusters tengamos, donde cada uno contendr las desviaciones estndar de cada una de las muestras. Mtodo contador Clase Tipo: pblico. Parmetros: NumClases (int). Es un entero que contiene el identificador del cluster. Descripcin: Funcin que contabiliza el nmero de muestras de un cluster determinado. Retorna: un entero que contendr el nmero de muestras del cluster cmo identificador numClases. Mtodo paso9 Tipo: pblico.
-205-
-206-
Mtodo getNumCluster Tipo: pblico. Descripcin: Obtiene el nmero de clusters definidos para este algoritmo. Retorna: un entero que ser mayor o igual que 1 y menor o igual que 10.
Mtodo getNumClusterActual Tipo: pblico. Descripcin: Obtiene el nmero de clusters actuales. Retorna: un entero que ser mayor o igual que 1 y menor o igual que 10.
Mtodo getMaxIteraciones Tipo: pblico. Descripcin: Obtiene el nmero mximo de iteraciones definidos para este algoritmo. Retorna: un entero con el nmero determinado de iteraciones.
Mtodo getMaxParesCluster Tipo: pblico. Descripcin: Obtiene el nmero mximo de pares de clusters que pueden ser mezclados para este algoritmo. Retorna: un entero con el nmero determinado de pares de clusters a ser mezclados.
-207-
Mtodo setMinMuestras Tipo: pblico. Parmetros: valorTotal (int). Es el % de muestras que se va a establecer como mnimo. Descripcin: Almacena en la variable minMuestras el nmero mnimo de muestras.
Mtodo getValorDesvEst Tipo: pblico. Descripcin: Obtiene el valor mximo de desviacin estndar para este algoritmo. Retorna: un entero con el valor mximo de desviacin estndar.
Mtodo getDistPares Tipo: pblico. Descripcin: Obtiene el valor umbral para la distancia entre pares (usada para la operacin de mezclado). Retorna: un entero con el valor umbral para la distancia entre pares.
8.2.5. KMeans
Esta clase nos proporciona los pasos necesarios para aplicar el algoritmo de clasificacin no supervisada K-Means. A continuacin, explicaremos los atributos de esta clase, clasificados por tipos:
-208-
Mtodo parametrosKMeans Tipo: pblico. Parmetros: nCluster (int). Es un entero que contiene el nmero de clusters a utilizar para realizar la clasificacin de la imagen. maxIter (int). Es un entero que contiene el nmero mximo de iteraciones a utilizar y que da fin a una de las terminaciones del algoritmo.
-209-
Mtodo distanciaCentro Tipo: pblico. Parmetros: x (double). Almacenar un pxel de la imagen. y (double). Almacenar el centro de un cluster determinado. Descripcin: Funcin que realiza la distancia de una muestra al centro de un cluster determinado. Retorna: la distancia entre el pxel de la imagen y el centro del cluster. Mtodo paso3 Tipo: pblico.
-210-
Mtodo comprobarConvergencia Tipo: pblico. Descripcin: Funcin que comprueba si el algoritmo ha llegado a converger o an los datos que se van generando son distintos a la de la iteracin anterior. Retorna: un booleano que indicar si la actualizacin de los centros es distinta o igual que la anterior.
Mtodo asignarNuevosCentros Tipo: pblico. Descripcin: Funcin que actualiza los valores de centros antiguos con los valores de centros actuales.
Mtodo getNumCluster Tipo: pblico. Descripcin: Funcin que devuelve el nmero de clusters que se han utilizado para aplicar el algoritmo de K-Means. Retorna: un entero que ser mayor o igual que 1 y menor o igual que 10.
Mtodo getMaxIteraciones Tipo: pblico. Descripcin: Funcin que devuelve el nmero de clusters que se han utilizado para aplicar el algoritmo de K-Means. Retorna: un entero que ser mayor o igual que 1 y menor o igual que 10.
-211-
-212-
Mtodo setAncho Tipo: pblico. Parmetros: valor (int). Es un entero que ser igual al ancho de la imagen. Descripcin: Funcin que almacena valor en la variable w para indicar el ancho de la imagen.
Mtodo setAltura Tipo: pblico. Parmetros: valor (int). Es un entero que ser igual a la altura de la imagen. Descripcin: funcin que almacena valor en la variable h para indicar la altura de la imagen.
Mtodo getMatrizMLC Tipo: pblico. Descripcin: funcin que devuelve en una matriz de enteros cada uno de los valores de probabilidad obtenidos del algoritmo MLC. Retorna: una matriz de enteros con la probabilidad de cada uno de los pxeles de la imagen final.
-213-
Mtodo MLCSegundoPaso Tipo: pblico. Parmetros: imagen (int [ ]). Es un array que contiene el valor Rgb de cada uno de los pxeles de la imagen final. clasesAnalizar (int [ ]). Es un array que contiene cada una de las clases que se van a analizar si es igual a 1 y 0 si no se necesita analizar. imagenFinal (BufferedImage). Contiene cada uno de los pxeles de la imagen final. Descripcin: funcin que aplica el segundo paso del algoritmo de Maximum Likelihood. Para cada pxel escoge la clase con la mayor probabilidad para clasificarla. Retorna: un BufferedImage que contiene la imagen final clasificada.
Mtodo prepararSumas Tipo: pblico. Parmetros: numClases (int). Es un entero que contiene el nmero de clases que se han utilizado para clasificar la imagen inicial.
-214-
Mtodo productoVcxVf Tipo: pblico. Parmetros: res (double [ ]). Es de tipo array. _resta (double [ ]). Es de tipo array. Descripcin: funcin que calcula el producto de un array fila por un array columna. Dando como resultado un valor de tipo double. Retorna: el producto de un array fila por un array columna.
Mtodo producto Tipo: pblico. Parmetros: r (double [ ]). Es de tipo array. inv (double [ ] [ ]). Es de tipo matriz. Descripcin: funcin que calcula el producto de un array por una matriz. Dando como resultado un array cuyos calores son de tipo double. Retorna: el producto de un array por una matriz.
Mtodo matrizInversa Tipo: pblico. Parmetros: matriz (double [ ] [ ]). Es de tipo matriz. Descripcin: funcin que calcula la matriz inversa de una matriz cuyos valores son de tipo double. Retorna: una matriz cuyos valores son de tipo double.
-215-
Mtodo matrizAdjunta Tipo: pblico. Parmetros: matriz (double [ ] [ ]). Es de tipo matriz. Descripcin: funcin que calcula la matriz adjunta de una matriz cuyos valores son de tipo double. Retorna: una matriz cuyo resultado ser la matriz adjunta.
Mtodo matrizCofactores Tipo: pblico. Parmetros: matriz (double [ ] [ ]). Es de tipo matriz. Descripcin: funcin que calcula la matriz cofactores de una matriz cuyos valores son de tipo double. Retorna: una matriz cuyo resultado ser la matriz cofactores.
Mtodo matrizTranspuesta Tipo: pblico. Parmetros: matriz (double [ ] [ ]). Es de tipo matriz. Descripcin: funcin que calcula la matriz transpuesta de una matriz cuyos valores son de tipo double. Retorna: una matriz cuyo resultado ser la matriz transpuesta. Mtodo determinante Tipo: pblico.
-216-
8.2.7. Aplicacin
Esta clase constituye la interfaz grfica del programa, adems de realizar el control completo de la aplicacin. Los atributos principales son los siguientes, clasificados por tipos: Tipo int: cambiosSinGuardar. Almacena el nmero de cambios que se han producido sobre el mapa. recargasMapa. Indica el nmero de veces que se ha recargado el mapa desde que se inici la aplicacin. numClas. Almacena el nmero de clases que se ha definido para clasificar la imagen. deshacer. Indica el tipo de cambio que podemos deshacer (ltimo cambio realizado sobre el mapa). Tipo double: longitud. Almacena la coordenada longitud cada vez que se realiza un
-217-
-218-
A continuacin explicaremos los mtodos que la componen (mostraremos solo los ms importantes): Mtodo Aplicacion Tipo: pblico.
-219-
-220-
-221-
-222-
-223-
-224-
-225-
-226-
-227-
-228-
-229-
-230-