Desenvolvimento de um Pacote de Processamento de Imagens para o Scilab Aluno: Ricardo Fabbri Orientador: Luciano da Fontoura Costa e-mail: rfabbri@if.sc.usp.br URL: siptoolbox.sourceforge.net Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo, Brasil. 06/2003
Plano da Apresentação Introdução Aspectos de Desenvolvimento Funcionalidades Implementadas Trabalho Futuro O Grupo de Visão Cibernética Conclusão Referências
Introdução
SciLab Software livre Programação numérica Prototipação Rotinas prontas Fácil para manipular matrizes: A * B * C + D Loop desnecessário
processamento de imagens SciLab Ambiente open source Programacao numerica Prototipacao Rotinas prontas Facil para manipular matrizes: A * B * C + D Loop desnecessario Ideal para processamento de imagens
SIP toolbox Objetivos: E/S de imagens no SciLab Processamento, análise e reconhecimento de imagens Software Livre Multiplataforma
SIP toolbox Início: efeito colateral das atividades de iniciação científica do autor Como Projeto de Graduação I Rotinas para E/S de imagens em qualquer formato Diversas outras rotinas Angariou usuários em todo o mundo, principalmente França (além do Brasil)
SIP toolbox Como Projeto de Graduação II: Autoconf, Automake e Libtool para portabilidade Esqueletização Multiescala 2 Algoritmos Transformada de Hough Detetor de bordas por Fourier Outros operadores
Desenvolvimento
Projeto do Sistema
Auto-configuração Desafios Diferenças entre os ambientes de desenvolvimento e uso O UNIX possui diversas variantes e é altamente customizável Como detectar bibliotecas externas? Como funcionar com diferentes versões do Scilab?
GNU Autotools Autoconf, Automake e Libtool Típicos em softwares livres Permitem instalar através da seqüência: configure # testa o sistema Make # compila Make install # instala
Autotoconf e Automake
Libtool Usado para gerar bibliotecas Abstração do conceito de bibliotecas Programador não precisa saber detalhes de cada sistema No SIP, é usado através do Automake
Experiência com o Desenvolvimento Livre “Release early, Release Often” FEEDBACK Linux/UNIX Sourceforge.net Requisitos Forte participação do usuário
Desenvolvimento Livre Projeto Arquitetural (alto nível) SIP é simples (simplificado?) Uso conjunto de rotinas é ad-hoc Projeto detalhado Interface ~ Matlab Boa organização do código fonte
Desenvolvimento Livre Teste Fruto do ciclo iterativo Versões alfa e beta Desenvolvedor principal realiza poucos testes Lançamento Freshmeat.net e Sourceforge.net Listas de email e news
Funcionalidades Implementadas
E/S de Imagens Leitura de aquivos de imagens imread Escrita de arquivos de imagens imwrite Quase 70 formatos: JPEG, TIFF, BMP, PNG, GIF, FITS, XPM, Photo-CD, ... ImageMagick
Filtro Gaussiano 1D Convolução por tr. Fourier
Filtro Gaussiano 1D
Esqueletos Multi-escala
Esqueletos Multi-escala
Esqueletos Multi-escala Estabilidade a rotação Permite objetos com buracos Algoritmo rápido baseado em grafos
Outras Funcionalidades Afinamento (thinning) por Lam-Suen Transformada de Hough Dimensão Fractal Detector de Bordas por Fourier
Filtro Gaussiano 2D
Filtro Gaussiano 2D
Filtro da Mediana Troca valor de cada pixel pela mediana dos pixels vizinhos Filtro não-linear
Realce de Bordas Estimadores para derivada parcial Duas direções ortogonais Módulo do Gradiente: Máscaras de convolução:
Realce de Bordas Sobel ImageMagick
Curvatura Medida bastante útil
Morfologia Matemática Dilatação Erosão Elementos estruturantes arbitrários
Transformações Geométricas Implementadas com ImageMagick Mogrify
Seguidor de Bordas Extrai coordenadas paramétricas C(t) = (x(t), y(t)) Contornos e curvas fechadas
Equalização de Histograma Espalha a distribuição de intensidades
Contribuições Filtragem de Ruído por fluxo de curvatura min/máx (L. Estrozi) Rotinas para processamento de imagens de interferometria óptica (J. Druel) Limiarização adaptativa (ImageMagick)
Trabalho Futuro Tipos inteiros de dados Terminar de portar a nova versão para Windows Suíte de Testes Melhorar o display gráfico Documentação externa para o Animal
Trabalho Futuro Biblioteca Externa CVS XML Help Usabilidade Novas rotinas
Conclusões Alta demanda pelo SIP Ainda é a única ferramenta livre para prototipação e experimentação de métodos de Análise de Imagens Baixo custo Experiência com o modelo de desenvolvimento livre
Conclusões Grupo de Visão Cibernética (CVRG) Bastante equipado Ambiente agradável Realizo iniciação científica desde 2000 Conhecimentos adquiridos durante o curso foram cruciais Matemática e Programação Pretendo fazer mestrado no ICMC
Referências