Diseño de herramientas para el desarrollo de software de procesamiento de imagen

  1. FLORES ESPRONCEDA, CARLOS EDUARDO
Dirigida por:
  1. Luis Fontán Agorreta Director/a
  2. Iñigo Gutierrez Garcia Codirector

Universidad de defensa: Universidad de Navarra

Fecha de defensa: 03 de febrero de 2006

Tribunal:
  1. Pedro Crespo Bofill Presidente
  2. Luis Matey Secretario
  3. Abe Martinez de Guerenu Elorza Vocal
  4. Peter Peer Vocal
  5. José Antonio Peñaranda Marqués Vocal
Departamento:
  1. (TECNUN) Ingeniería Eléctrica y Electrónica

Tipo: Tesis

Teseo: 316952 DIALNET

Resumen

TITULO: Diseño de herramientas para el desarrollo de software de procesamiento de imagen resumen: El Procesamiento de Imagen es una disciplina en constante desarrollo, cada vez son más diversos y complejos sus ámbitos de aplicación, una solución típica en la implementación de los sistemas de Procesamiento de Imagen es mediante el desarrollo de software. A pesar de las distintas características de los usuarios y desarrolladores del software, así como de los entornos para los que se diseña, el software puede ser considerado como un producto. Como en todo producto, es deseable que el proceso del software sea eficiente, reduciendo al máximo los costos y el esfuerzo empleado. La disciplina que estudia los procesos relacionados con el software es la Ingeniería del Software, una aplicación de esta, para optimizar los procesos, son las herramientas de software. Estas herramientas dan soporte a cada una de las etapas del proceso de desarrollo. Existen herramientas de software para el Procesamiento de imagen, tanto gratuitas como comerciales, que pueden ser utilizadas por los desarrolladores. Sin embargo, el desarrollador puede optar por desarrollar su propia herramienta, lo cual ofrece algunas ventajas: es una solución adaptada a las características específicas del entorno, presenta una mayor flexibilidad de los módulos respecto a su especificación original y el tiempo de adaptación a la herramienta es menor. La herramienta de software es también software, por lo que, su desarrollo también debe ser eficiente. Esta situación crea la necesidad de una metodología que simplifique el desarrollo de las herramientas. Esta metodología debe asegurar la utilidad de la herramienta, reducir sus tiempos de desarrollo, promover la reutilización de componentes y facilitar sus procesos de mantenimiento. Este trabajo de investigación propone una metodología con dichas características. Esta metodología debe basarse en un estudio de las características comunes en los procesos de desarrollo del software de Procesamiento de Imagen. El proceso del software se compone de 3 etapas: diseño, implementación y mantenimiento. Para cada una de ellas, se analizan las peculiaridades en el caso del Procesamiento de Imagen. En la etapa de diseño, se identifican las estructuras de datos principales y las funciones que las relacionan. Para ello, se estudia el Álgebra de Imagen, una teoría matemática para la transformación y análisis de imágenes. Para la arquitectura del sistema, se estudia la teoría general del Procesamiento de Imagen y se analizan algunos ejemplos representativos de los procesos. A partir de este estudio, se propone un modelo en forma de bloque, para la representación de los módulos y se identifican las señales necesarias para comunicarlos. También se identifican necesidades comunes en el diseño interno de los bloques. Para el diseño de las interfaces se recurre a un análisis de las herramientas existentes, con el fin de identificar las necesidades de comunicación de los sistemas, demandadas por los usuarios. Las características de la implementación y mantenimiento de los sistemas de Procesamiento de imagen se identifican también, a partir del análisis de las herramientas existentes, una vez identificadas las peculiaridades del proceso, se propone la metodología de desarrollo de herramientas. La metodología se expone como una serie de pasos a seguir para el desarrollo íntegro de la misma. Estos pasos transcurren por las etapas de desarrollo de software. Para validar el método se han implementado dos herramientas, siguiendo los pasos dictados. La primera herramienta se desarrolla para un entorno industrial, mientras que la segunda se ha diseñado para un entorno docente. La metodología aquí presentada pretende facilitar el desarrollo de herramientas de software. Estas herramientas, a su vez, se utilizan para facilitar el desarrollo del software de Procesamiento de imagen. Image processing is a rapidly evolving field. Its applications are becoming more complex and more diverse. Software development is a typical solution for Image Processing systems implementation. Even though its developers, users and operating environment can have different characteristics, image Processing Software can be considered a product. The software process is desired to be efficient, minimizing the costs and effort invested. Software Enqineering is a discipline that deals with software processes. Applications of Software Engineering, for the optimization of the software process, are Software Tools. They support each of the stages in the development process. Developers can use one of the existing free or commercial Software Tools for Image Processing. On the other hand, developers may choose to develop their own tools. Advantages of developing the tools are: the designed too! is a custom solution, adapted to the specific environment characteristics; the tool modules are more flexible to changes in their original specification; the time required to be adapted to the tool is reduced. The Software Tool itself is also software. Thus, its development process must also be efficient. This situation motivates the necessity of a methodology that simplifies the development of these tools. The methodology must assure the usefulness of the tool, decrease the development times, promote the reusability of its components and facilitate the maintenance processes. This research proposes a methodology with the above mentioned characteristics. The methodology must be based on research of the common characteristics between the processes of Image Processing software. The general software process may be divided into 3 stages: design, implementation and maintenance. For each stage, the singularities for its application in the case of Image Processing are analyses. In the design stage, the principal data structures and the functions to relate them are identified. For this purpose, Image Algebra is reviewed. Image Algebra is a mathematical theory for transformation and analysis of images. General theory of Image Processing is studied to define the system architectures. Some representative examples of Image Processing processes are analysed. From this study, a block model is proposed for the modules representation and the signals needed for communication are identified. The common necessities of the internal design of the blocks are also identified. An analysis of existing Software Tools for image Processing is also carried out to identify the necessities of the interfaces design. The characteristics of the implementation and maintenance stages of Image Processing systems are also identified from the analysis of existing tools. Once the peculiarities of the process are identified, the methodology is proposed. The methodology is presented as a list of steps for the complete development of the tool. These steps cover all the stages of the process. Some of the modules to be designed will be part of the designed systems, while others will be exclusive to the tool. Modular design allows the parallel implementation of modules, carried out by different developers. This type of design also facilitates the maintenance of the system. The tool can be upgraded when new necessities appear. The modules can be stored, modified and reused. To validate the methodology, two tools have been implemented following the given steps. The first tool was developed for an industrial environment, while the second tool has been designed for a teaching environment. The methodology presented aspires to facilitate the development of software Tools. These tools are used to facilitate the development of image processing software