APIparatransformaçãode imagememcartum$...

38
API para transformação de imagem em cartum utilizando plataforma iOS Acadêmico – Christian Hess Orientador – Dalton Solano dos Reis

Transcript of APIparatransformaçãode imagememcartum$...

API  para  transformação  de  imagem  em  cartum  

utilizando  plataforma  iOS

Acadêmico – Christian Hess Orientador – Dalton Solano dos Reis

Roteiro da apresentação �  Introdução �  Fundamentação teórica �  Desenvolvimento

�  Especificação / Implementação �  Resultado e discussões �  Conclusões / Extensões

�  Demonstração

Introdução •  Contextualização

Introdução • Objetivos do trabalho

• Explorar o potencial da plataforma iOS frente a algoritmos de computação gráfica

• Aplicar algoritmos e técnicas de cartoon rendering sobre imagens

• Construir uma ferramenta para transformação de imagens em cartum

Fundamentação teórica •  Cartum

Fundamentação teórica •  Cartum o Destaque de bordas o Pouca quantidade de cores

Fundamentação teórica •  Detecção de bordas – Filtro Canny

1.  Transformação em tons de cinza 2.  Filtro gaussiano para suavização

(diminuição de ruídos)

3.  Filtro de Sobel (destacar bordas)

4.  Limiar com histerese (remoção de bordas falsas)

5.  Supressão não máxima (afinamento de bordas)

Fundamentação teórica •  Detecção de bordas – Filtro Canny

Direção do gradiente da borda (perpendicular a direção da borda)

Direção da borda

Intensidade da borda (força da borda)

Fundamentação teórica •  Detecção de bordas – Filtro Canny

Intervalos de ângulos

Fundamentação teórica •  Detecção de bordas – Filtro Canny

T1 = Limiar baixo T2 = Limiar alto

• Borda verdadeira, se I > T2 • Possível borda, se T1 > I > T2 • Borda descartada, se I < T1

I = Intensidade da borda

Fundamentação teórica •  Detecção de bordas – Filtro Canny

Imagem normal Supressão Não Máxima Limiar com histerese

Fundamentação teórica � Segmentação de cores - Mean Shift

Imagem normal Imagem segmentada

Fundamentação teórica � Segmentação de cores - Mean Shift

Fundamentação teórica � Segmentação de cores - Mean Shift

Fundamentação teórica � Segmentação de cores - Mean Shift

Fundamentação teórica � Segmentação de cores - Mean Shift

Fundamentação teórica � Segmentação de cores - Mean Shift

�  EDISON (Edge Detection and Image Segmentation System)

�  OpenCV

Fundamentação teórica •  Trabalhos correlatos

o Adobe Photoshop Express e Photo fx Ultra

Fundamentação teórica •  Trabalhos correlatos o Cartoon rendering e shading 3D

Jeronimo Venetillo (2004/2005)

Desenvolvimento • Requisitos

• Permitir a transformação de imagens JPEG ou PNG para cartum utilizando filtros e algoritmos específicos (RF)

• Permitir informar uma única imagem (RF) • Permitir visualizar e salvar a imagem transformada (RF)

• Implementação na linguagem Objective-C em ambiente Xcode (RNF)

• Utilizar plataforma iOS (RNF) • Possuir código fonte documentado (RNF) • Estar funcionando no Simulador do iPhone e no iPad (RNF)

Desenvolvimento • Especificação

Desenvolvimento • Especificação

Desenvolvimento • Especificação

Desenvolvimento • Técnicas e ferramentas utilizadas

• Xcode

• iOS SDK • Repositório SVN [XP-Dev.com] • Simulador iPhone • iPad 2 3G 32GB • Doxygen

ToonLib.mm

Mean Shift

Filtro Canny

Desenvolvimento Operacionalidade

Desenvolvimento Resultados e discussões

• Aspecto visual satisfatório com EDISON porém pobre com OpenCV

• Alto consumo de processamento e memória ao utilizar EDISON com determinados parâmetros e imagens grandes

Desenvolvimento Resultados e discussões

17,19 59,44

232,30

941,54

17,21 60,28

217,48

0,00 0,00

100,00

200,00

300,00

400,00

500,00

600,00

700,00

800,00

900,00

1000,00

256 x 192 512 x 384 1.024 x 771 2.048 x 1.536

Con

sum

o de

mem

ória

, em

MegaBytes

Tamanho da imagem, em pixels

Memória - EDISON

2,88 10,98

44,30

171,90

2,88 10,98

44,30

171,90

0,00

20,00

40,00

60,00

80,00

100,00

120,00

140,00

160,00

180,00

200,00

256 x 192 512 x 384 1.024 x 771 2.048 x 1.536

Con

sum

o de

mem

ória

, em

MegaBytes

Tamanho da imagem, em pixels

Memória - OpenCV

Desenvolvimento Resultados e discussões

447 2.061

9.567

42.592

2.220

10.070

47.520

0

0

5.000

10.000

15.000

20.000

25.000

30.000

35.000

40.000

45.000

50.000

256 x 192 512 x 384 1.024 x 771 2.048 x 1.536 Te

mpo

de

pro

cess

amen

to, em

mil

isse

gund

os

Tamanho da imagem, em pixels

Processamento - EDISON

70 265 1.130

4.440 450

1.840

7.060

28.290

0

5.000

10.000

15.000

20.000

25.000

30.000

256 x 192 512 x 384 1.024 x 771 2.048 x 1.536 Tem

po

de

pro

cess

amen

to, em

mil

isse

gund

os

Tamanho da imagem, em pixels

Processamento - OpenCV

Conclusões

• Foi possível obter uma imagem transformada com estilo muito próximo a um cartum

• Melhor aspecto visual utilizando biblioteca a EDISON sendo eficaz porém não produtiva

• Limite no tamanho de imagens (1.743.000 pixels)

Extensões

• Otimização ou troca do algoritmo Mean Shift

• Processamento de sub-imagens para evitar o limite de tamanho de imagem

• Criar uma interface com funcionalidades para permitir a criação de histórias em quadrinhos

Demonstração

Obrigado! FIM

Documentação on-line

http://www.inf.furb.br/gcg/files/TCC2011-2-04-ChristianHess_documentacao.zip

Fórmulas

!(x, y) = arctan GyGx!

"#

$

%&

!f =mag(!f ) = Gx2 +Gy2Intensidade do gradiente

Direção da borda