12.07.2015 Views

Universidad de - Escuela Superior de Informática (UCLM ...

Universidad de - Escuela Superior de Informática (UCLM ...

Universidad de - Escuela Superior de Informática (UCLM ...

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CAPÍTULO 5. ARQUITECTURA DE ATRAVELMódulo <strong>de</strong> procesamientotoda la información <strong>de</strong> los objetos <strong>de</strong>tectados para su posterior análisis y generación <strong>de</strong>comparaciones necesarias para el <strong>de</strong>sarrollo <strong>de</strong> la aplicación.Para el almacenamiento <strong>de</strong> información utilizando el lenguaje <strong>de</strong> programación <strong>de</strong>Python, se ha utilizado la estructura <strong>de</strong> datos <strong>de</strong> diccionario [Lut09]. Esta estructura secaracteriza por almacenar datos <strong>de</strong> la forma . Las razones por las que seha <strong>de</strong>cidido utilizar esta estructura <strong>de</strong> datos son:Flexibilidad: Los diccionario son junto con las listas las estructuras <strong>de</strong> datos másflexibles que Python integradas en Python.Facilidad <strong>de</strong> búsqueda: Al ser un tipo <strong>de</strong> estructura integrada en el lenguaje, lo quefacilita la búsqueda <strong>de</strong> items <strong>de</strong>l diccionario. Esta característica evita la construcción<strong>de</strong> algoritmos <strong>de</strong> búsqueda y estructuras <strong>de</strong> datos implementadas manualmente enlenguajes <strong>de</strong> bajo nivel.Utilización <strong>de</strong> Claves: Permite la recuperación <strong>de</strong> elementos <strong>de</strong>l diccionario a través<strong>de</strong> su clave. Lo cual resulta muy beneficioso para la recuperación <strong>de</strong> un elemento <strong>de</strong>ldiccionario, ya que no es necesario recorrer todos los elementos que lo componen.Objetos <strong>de</strong>sor<strong>de</strong>nados: Python almacena aleatoriamente los elementos <strong>de</strong> izquierdaa <strong>de</strong>recha, para proporcionar mecanismos <strong>de</strong> búsqueda rápida. Las claves proporcionanuna posición simbólica (no física) <strong>de</strong> los elementos <strong>de</strong>l diccionario.Longitud variable, heterogéneos y arbitrariamente anidables: Los diccionariospue<strong>de</strong>n crecer y ser comprimidos sin necesidad <strong>de</strong> realizar copias nuevas. Pue<strong>de</strong>ncontener objetos <strong>de</strong> cualquier tipo y pue<strong>de</strong>n ser anidables hasta cualquier tipo<strong>de</strong> profundidad. A<strong>de</strong>más se pue<strong>de</strong>n añadir cualquier tipo <strong>de</strong> objetos como listas,diccionarios y otros objetos.Las operaciones y consultas con diccionarios que se han realizado se pue<strong>de</strong>n ver en[Lut09].De forma que el almacenamiento <strong>de</strong> los objetos <strong>de</strong>tectados en la escena monitorizadase realiza en un diccionario. Cada entrada o elemento <strong>de</strong>l diccionario tiene una clave que<strong>de</strong>be ser única y un valor. La clave <strong>de</strong>l diccionario correspon<strong>de</strong> al i<strong>de</strong>ntificador <strong>de</strong>l objeto yen este caso se trata <strong>de</strong> una ca<strong>de</strong>na <strong>de</strong> caracteres (string) <strong>de</strong> tamaño variable. El valor estáformado por un objeto <strong>de</strong> tipo Trajectory.El tipo <strong>de</strong> objeto Trajectory contiene información acerca <strong>de</strong> los objetos <strong>de</strong>tectados en laescena monitorizada. La información que contienen es la siguiente:103

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!