Manual: Cyclops_ImageFilter_Interface

Índice

  1. Introdução
  2. Detalhes básicos
  3. Montagem da Imagem
  4. Menus
  5. Barra de Ferramentas
  6. Componentes
  7. Créditos
  1. Introdução

  2. Esta manual é referente à interface desenvolvida como trabalho da disciplina Visão Computacional do curso de Pós-graduação em Ciências da Computação.

    Ela foi projetada para permitir a modelagem de fluxos de filtragem de imagens. Para isto ela oferece um ambiente gráfico onde o usuário pode montar a seqüência de filtragem, setar os parâmetros dos filtros e executar o fluxo visualizando os resultados obtidos. Possibilita o salvamento dos fluxos criados para posterior reutilização e a exportação e importação de fluxos em arquivos.


     
     
     
     

  3. Detalhes básicos:

  4. - Linguagem: Smalltalk

    - Ambiente: Visual Works 7.2

    - Parcels utilizados:

    - HotDraw: Este parcel contem um framework gráfico que fornece funcionalidades para a implementação da parte gráfica, para o desenho dos fluxos de filtragem.

    - FileSelectionDialog: Este parcel contem funcionalidades utilizadas para a localização e carga de arquivos.

    - Arquivos utilizados por ‘File in’:

    - ImageReadWriter.st: Pacote criado por outro desenvolvedor que implementa funções de abertura de arquivos de imagem.

    - ImageFormats.st: Pacote criado por outro desenvolvedor que implementa funções de abertura de arquivos de imagem.

    - Arquivos de Filtros:

    - (*.EXE): São os arquivos executáveis criados em C ANSI que vão executar a filtragem das imagens. Estes arquivos serão executados pela interface para a filtragem das imagens, de acordo com o fluxo montado pelo usuário.

    - (*.conf): São os arquivos de configuração, responsáveis pela descrição à ferramenta das variáveis de cada filtro, seus valores padrão e possibilidades e forma de regulagem. Através da informação contida nestes arquivos, são montadas as telas de configuração dos filtros em tempo de execução, oferecendo ao usuário a possibilidade de alterar os parâmetros do filtro antes de gerar o comando de execução do mesmo.

    - EX: Arquivo de configuração de um filtro de Limiar Simples:

    #('Limiar. - Simples' // nome que aparecerá no menu de escolha da ferramenta.

    'limiarS' //comando de chamada do executável.

    #(#req '-i' #input 'Entrada') // definição do arquivo de entrada.

    #(#req '-o' #output 'Saída') // definição do arquivo de saída.

    #(#req '-op' #(#select 'acima' 'abaixo' 1) 'Operação') // parâmetro de configuração do filtro setado por um selection-box.

    #(#req '-lim' #(#int 0 255 127) 'Limiar') // parâmetro de configuração do filtro setado por um slider.

    #(#req '-c1' #(#int 0 255 255) 'Cor 1') // parâmetro de configuração do filtro setado por um slider.

    #(#req '-c2' #(#int 0 255 0) 'Cor 2')). // parâmetro de configuração do filtro setado por um slider.

    - Tela montada quando da configuração de um filtro deste tipo com base neste arquivo:


     
     

    - Linha de comando montada quando da execução de um filtro deste tipo com base neste arquivo:

    "limiarS -i <arquivo_entrada> -o <arquivo_saida> -op acima -lim 127 -c1 255 -c2 0"
     
     
     
     

  5. Montagem do Arquivo Imagem Smaltalk:

  6. - Numa imagem nova (visual 7.2):_

    1 - Instalar os seguintes Parcels:

    - Hot Draw

    - FileSelectionDialog

    2 - Dar 'File in' no arquivo -> ImageReadWriter.st

    3 - Dar 'File in' no arquivo -> ImageFormats.st

    4 - Dar 'File In' no arquivo -> Cyclops_ImageFilter.st

    5 - Descompactar o arquivo Pastas.zip para o diretório onde está a imagem.

    6 - Colocar os arquivos executáveis dos filtros (Windows | Linux) dentro da pasta ‘Filtros’, junto com os arquivos, com extensão ‘.conf’, que serão responsáveis pela configuração da linha de comando para chamada dos respectivos filtros.

    7 - Colocar as imagens dentro da pasta imagens.
     
     

  7. Menus:

  8. O menu do editor é bastante simples e intuitivo. Ele é composto por quatro grupos dentro dos quais estão agrupadas as funções referentes a cada grupo:

    - Model: Agrupa as funções de criação salvamento e recuperação dos modelos de fluxo de filtragem.
    New: Permite a abertura de um novo Fluxo. Se existirem componentes no fluxo em edição a ferramenta oferece a possibilidade de salvamento, antes da abertura de um fluxo novo.

    Open: Permite a abertura de um fluxo já armazenado. Se existirem componentes no fluxo em edição a ferramenta oferece a possibilidade de salvamento, antes da abertura do fluxo solicitado.

    Save: Permite o armazenamento do fluxo em edição. Na primeira execução solicita um nome para o fluxo. Depois de definido um nome, a ferramenta apenas salva o fluxo como nome já definido, sem perguntar novamente.

    Save as..: Permite o armazenamento do fluxo em edição com um novo nome definido pelo usuário.

    Obs: Estas funções trabalham armazenando e recuperando dados internos à imagem Smalltalk, portanto é necessário salvar a imagem sempre para que os dados salvos por estas funções sejam armazenados efetivamente.


     

    - Edit: Agrupa as funções de edição dos fluxos de filtragem.
    Cut: Permite recortar componentes do fluxo em edição para serem utilizados em outro lugar do fluxo através do comando Paste.

    Copy: Permite copiar componentes do fluxo em edição para serem utilizados em outro lugar do fluxo através do comando Paste.

    Paste: Permite colar componentes recortados ou copiados do modelo em edição.


     

    - File: Agrupa as funções de manipulação de arquivos externos.
    Export: Permite exportar o fluxo em edição para um arquivo facilitando assim o intercambio de fluxos que podem ser salvos separadamente ou até mesmo enviados para outros locais por email, etc.

    Import: Permite importar os fluxos, que foram exportados para arquivos, para dentro da ferramenta permitindo edição e uso.

    - Editor: Agrupa as funções globais do editor.
    About: Mostra uma tela com informações sobre o programa.

    Manual: Abre um arquivo com o manual do programa em um browser netscape.

    Close: Encerra a ferramenta. Se existir algum componente, no fluxo ativo, a ferramenta oferece a possibilidade de salvamento do mesmo.


     
     
     

  9. Barra de Ferramentas:

  10. A barra de ferramentas também é bastante intuitiva, seguindo o padrão de ícones comum nas ferramentas básicas que permitem:
    - Cria um novo fluxo de filtragem
    - Abre um fluxo existente para edição e uso.
    - Salva o fluxo corrente.
    - Recorta componentes de um fluxo em edição.
    - Copia componentes de um fluxo em edição.
    - Cola componentes recortados ou copiados.

    Devemos dar atenção maior às ferramentas específicas do editor que são:
    - Select Tool: permite a movimentação e edição dos componentes do fluxo.
    - Hand Tool: permite a movimentação dos componentes, porem não permite editá-los.
    - Delete Tool: Permite deletar componentes já inseridos no fluxo.
    - Forward Tool: Permite mover os componentes que estão mais atraz para frente dos outros.
    - Backward Tool: Permite mover os componentes que estão mais à frente para traz dos outros.
    - Load Tool: Insere um novo Componente Load no fluxo, no ponto em que o usuário clicar.
    - View Tool: Insere um novo Componente View no fluxo, no ponto em que o usuário clicar.
    - Filter Tool: Oferece um menu para que o usuário selecione o filtro desejado e insere um novo Componente Filter no fluxo, no ponto em que o usuário clicar.
    - Text Tool: Insere um novo Componente Text no fluxo, no ponto em que o usuário clicar, permitindo comentar o fluxo.

     
     
     

  11. Componentes:
  • Load:
  • Componente responsável pela carga dos arquivos a serem processados: Imagens, definição de faixas de histograma, etc.
  • O check-box é o indicador que permite saber se existe ou não um arquivo carregado.
  • O número é o ID do componente que permite identificar onde ele estará influenciando durante a execução.
  • Para carregar um arquivo clicar em ‘Edit’ e escolher ou informar o arquivo a ser carregado.
  • Obs: este componente pode ser ligado a ‘n’ outros componentes, mas não recebe ligação de nenhum outro componente.
  • Filter:
  • Componente responsável pela execução dos filtros. Neste exemplo específico o filtro carregado foi o Limiar Simples.
  • Quando um componente deste tipo é inserido no modelo, um menu contendo os filtros disponíveis é oferecido ao usuário permitindo a escolha do filtro desejado. Quando o usuário escolhe o filtro, o componente assume as suas características copiando os dados do arquivo ‘.conf’ referente a este filtro.
  • O check-box à esquerda indica se o componente tem algum arquivo carregado naquela entrada.
  • O campo à com o número mostra o número do componente que fornecerá imput para esta entrada.
  • Através do botão ‘Edit’ é instanciada uma tela com os parâmetros do filtro correspondente permitindo ao usuário a alteração dos mesmos.
  • Através do botão ‘Play’ o filtro correspondente é executado (é disparado um comando externo com uma string de parâmetros para o arquivo ‘*.EXE’ correspondente).
  • O check-box à direita indica se existe um arquivo de saída disponível para ser visualizado ou utilizado como entrada em outro filtro.
  • Este componente aceita apenas um numero x de ligações de entrada (conforme o número de entrada do arquivo ‘.conf’ – limitado a três), e ‘n’ ligaçõesde saída.
  • Obs: A cada alteração nos parâmetros do filtro ele deve ser re-executado, utilizando o botão ‘Play’, para gerar uma nova saída.
  • View:
  • Componente responsável por mostrar o conteúdo do arquivo disponibilizado pelo componente a ele ligado, que pode ser um Load ou um Filter.
  • O check-box indica se existe algum arquivo carregado na entrada para ser visualizado.
  • O número mostra qual componente está fornecendo o arquivo de entrada.
  • Ao clicar no botão ‘Show’:
Se o arquivo de entrada for uma imagem, ela será mostrada.

Se o arquivo de entrada for um histograma, um gráfico de barras será montado.

Se o formato do arquivo de entrada não for conhecido, uma mensagem de erro será exibida.

  • Este componente aceita apenas uma ligação de entrada e nenhuma de saída.

 
 
 
 
 
  1. Créditos:
Desenvolvedores: - Leandro A. Berti (pesquisador)

- Levi Ferreira (pesquisador)
 
 

Orientador: - Prof. Dr. rer.nat. Aldo von Wangenheim
 
 
Local: - Laboratório de Tele-medicina do Hospital Universitário (HU). - Universidade Federal de Santa Catarina (UFSC). - Florianópolis – SC - Brasil.

Data:

- 16/09/2004.