Padrões de projeto no desenvolvimento de sistemas de processamento de imagens

This dissertation presents software components for processing and analysis of digital images and a system capable to control them in an organized way. The Components must be functional, context-free, readable and maintainable. So far, achieving these basic requirements is a need in the software dev...

Full description

Bibliographic Details
Main Author: Welfer, Daniel
Other Authors: D'Ornellas, Marcos Cordeiro
Format: Others
Language:Portuguese
Published: Universidade Federal de Santa Maria 2007
Subjects:
Online Access:http://repositorio.ufsm.br/handle/1/8335
Description
Summary:This dissertation presents software components for processing and analysis of digital images and a system capable to control them in an organized way. The Components must be functional, context-free, readable and maintainable. So far, achieving these basic requirements is a need in the software development process. Software components are designed to be reusable in a variety of different environments. The architecture of programming language used, in the case Java, allows programs to be assembled from software building blocks. In that way the designer can incorporate easily these components into an application, needing just to know your entrance and exit interface. However, to find the right abstractions to build extensible and reusable software is not an easy task. Even experienced object-oriented designers often need to review a design several times before getting to one appropriate solution. Therefore, the idea of design patterns has gained ground quickly since it provides a solution to a certain design problem. These patterns specify a way to build, structure, and manipulate software entities in a reasonably fashion, aiming mainly, to management your complexity in the domain of digital imaging processing to assure your quality. In this paper were built components for image segmentation based on convolution filters, for improvement of the quality of the image through the process of automatic equalization, for image storage in graphic files of different formats, in the creation of a component to visualize the histogram, in the visualization of the image in the screen through graphic interface, in the conversion of the colored images for grayscale formats and in the thresholding process. === Essa dissertação apresenta componentes de software para processamento e análise de imagens digitais e um sistema capaz de controlá-los de forma organizada. Os componentes precisam ser funcionais, flexíveis, legíveis e de fácil manutenção. Assim, alcançar esses requerimentos básicos é uma necessidade no processo de desenvolvimento de software. Componentes de software são projetados para serem usados em uma variedade de ambientes. A arquitetura da linguagem de programação utilizada, no caso Java, permite que os programas sejam montados a partir de blocos de software. Dessa forma o projetista pode incorporar facilmente esse componente em uma aplicação, necessitando conhecer apenas sua interface de entrada e saída. No entanto, encontrar a abstração certa para construir software reutilizável não é uma tarefa fácil. Mesmo os projetistas mais experientes em orientação por objetos freqüentemente precisam revisar um projeto várias vezes antes de conseguir uma solução apropriada. Por essa razão, a idéia de padrões de projeto tem ganhado terreno rapidamente, desde que estabelece uma solução para um certo problema de projeto. Estes padrões especificam uma maneira para construir, estruturar e manipular entidades de software em um estilo racional visando, principalmente, gerenciar a sua complexidade no domínio de processamento digital de imagens para assegurar a sua qualidade. Nesse trabalho foram construídos componentes para segmentação de imagens baseado em filtros de convolução, para melhoria da qualidade da imagem através do processo de equalização automática, para armazenamento da imagem em arquivos gráficos de diferentes formatos, na criação de um componente para visualizar o histograma, na visualização da imagem na tela através de interface gráfica, na conversão da imagens coloridas para tons de cinza e no processo de limiarização.