Desenvolvimento de um Pacote de Processamento de Imagens para o Scilab Aluno: Ricardo Fabbri...
Transcript of Desenvolvimento de um Pacote de Processamento de Imagens para o Scilab Aluno: Ricardo Fabbri...
Desenvolvimento de um Pacote de Processamento de Imagens para o
Scilab
Aluno: Ricardo FabbriOrientador: Luciano da Fontoura Costa e-mail: [email protected] 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
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
●E/S de imagens no SciLab●Processamento, análise e
reconhecimento de imagens●Software Livre●Multiplataforma
Objetivos:
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
● 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?
Desafios
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 oDesenvolvimento 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
● 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
Desenvolvimento Livre
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
● Máscaras de convolução:
● Estimadores para derivada parcial
– Duas direções ortogonais
– Módulo do Gradiente:
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
● Biblioteca Externa● CVS● XML Help● Usabilidade● Novas rotinas
Trabalho Futuro
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