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

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.

2. Detalhes básicos:

- 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"

3. Montagem do Arquivo Imagem Smaltalk:

- 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.

4. Menus:

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.

5. Barra de Ferramentas:

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.

6. 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.