Desenvolvimento de um Pacote de Processamento de Imagens para o Scilab Aluno: Ricardo Fabbri...

41
Desenvolvimento de um Pacote de Processamento de Imagens para o Scilab Aluno: Ricardo Fabbri Orientador: 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/200 3

Transcript of Desenvolvimento de um Pacote de Processamento de Imagens para o Scilab Aluno: Ricardo Fabbri...

Page 1: 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.

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

Page 2: 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.

Plano da Apresentação

● Introdução● Aspectos de Desenvolvimento● Funcionalidades Implementadas● Trabalho Futuro● O Grupo de Visão Cibernética● Conclusão● Referências

Page 3: 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.

Introdução

Page 4: 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.

SciLab

● Software livre ● Programação numérica● Prototipação● Rotinas prontas● Fácil para manipular matrizes:

– A * B * C + D

– Loop desnecessário

Page 5: 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.

SciLab

● Ambiente open source ● Programacao numerica● Prototipacao● Rotinas prontas● Facil para manipular matrizes:

– A * B * C + D

– Loop desnecessario

Ideal para processamento de imagens

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

SIP toolbox

●E/S de imagens no SciLab●Processamento, análise e

reconhecimento de imagens●Software Livre●Multiplataforma

Objetivos:

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

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)

Page 8: 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.

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

Page 9: 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.

Desenvolvimento

Page 10: 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.

Projeto do Sistema

Page 11: 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.

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

Page 12: 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.

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

Page 13: 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.

Autotoconf e Automake

Page 14: 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.

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

Page 15: 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.

Experiência com oDesenvolvimento Livre

● “Release early, Release Often”

– FEEDBACK● Linux/UNIX

● Sourceforge.net● Requisitos

– Forte participação do usuário

Page 16: 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.

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

Page 17: 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.

● 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

Page 18: 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.

Funcionalidades Implementadas

Page 19: 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.

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

Page 20: 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.

Filtro Gaussiano 1D

● Convolução por tr. Fourier

Page 21: 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.

Filtro Gaussiano 1D

Page 22: 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.

Esqueletos Multi-escala

Page 23: 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.

Esqueletos Multi-escala

Page 24: 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.

Esqueletos Multi-escala

● Estabilidade a rotação● Permite objetos com buracos● Algoritmo rápido baseado em grafos

Page 25: 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.

Outras Funcionalidades

● Afinamento (thinning) por Lam-Suen● Transformada de Hough● Dimensão Fractal● Detector de Bordas por Fourier

Page 26: 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.

Filtro Gaussiano 2D

Page 27: 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.

Filtro Gaussiano 2D

Page 28: 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.

Filtro da Mediana

● Troca valor de cada pixel pela mediana dos pixels vizinhos

● Filtro não-linear

Page 29: 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.

Realce de Bordas

● Máscaras de convolução:

● Estimadores para derivada parcial

– Duas direções ortogonais

– Módulo do Gradiente:

Page 30: 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.

Realce de Bordas

Sobel ImageMagick

Page 31: 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.

Curvatura

● Medida bastante útil

Page 32: 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.

Morfologia Matemática

● Dilatação● Erosão● Elementos

estruturantes arbitrários

Page 33: 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.

Transformações Geométricas

● Implementadas com ImageMagick

– Mogrify

Page 34: 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.

Seguidor de Bordas

● Extrai coordenadas paramétricas

– C(t) = (x(t), y(t))● Contornos e curvas fechadas

Page 35: 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.

Equalização de Histograma

● Espalha a distribuição de intensidades

Page 36: 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.

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)

Page 37: 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.

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

Page 38: 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.

● Biblioteca Externa● CVS● XML Help● Usabilidade● Novas rotinas

Trabalho Futuro

Page 39: 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.

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

Page 40: 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.

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

Page 41: 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.

Referências