44
 1  UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Daniel Vitor Oliveira Rodrigues Estudo comparativo de funções de Green para detecção de arestas Salvador 2009

Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

Embed Size (px)

Citation preview

Page 1: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 1/44

 

  1

 

UNIVERSIDADE FEDERAL DA BAHIAINSTITUTO DE MATEMÁTICA

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

Daniel Vitor Oliveira Rodrigues

Estudo comparativo de funções de Green paradetecção de arestas 

Salvador2009

Page 2: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 2/44

 

  2

 

Daniel Vitor Oliveira Rodrigues

Estudo comparativo de funções de Green paradetecção de arestas 

Monografia apresentada ao Curso de graduaçãoem Ciência da Computação, Departamento deCiência da Computação, Instituto de Matemática,Universidade Federal da Bahia, como requisitoparcial para obtenção do grau de Bacharel emCiência da Computação.Orientador: Perfilino Eugênio Ferreira Júnior 

Salvador2009

Page 3: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 3/44

 

  3

 

 Dedico este estudo:

aos meus pais, Valdemar e Vera Lúcia.

Page 4: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 4/44

 

  4

 

AGRADECIMENTOS

Muitos me ajudaram a concluir esse trabalho. Gostaria de sinceramente agradecer em

especial...

... a Deus, pois nada é possível sem ele;

... à minha mãe pelas palavras de consolo, apoio, confiança e incentivo;

... ao meu pai pela ajuda e paciência;

... à minha irmã Aline por acreditar no meu potencial;

... ao meu orientador pela disponibilidade e atenção;

... aos meus colegas de faculdade pelas “sugadas”, conversas e amizade;

Agradeço também a todos aqueles que indiretamente me ajudaram com este trabalho e de

alguma forma somaram a minha formação.

Muito Obrigado!

Page 5: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 5/44

 

  5

 

"A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original".

(Albert Einstein)

Page 6: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 6/44

 

  6

 

RESUMO

Após o trabalho de Canny, que propôs um filtro de detecção de arestas com desempenhosuperior aos anteriormente relatados na literatura e formalizou três medidas de desempenhobaseadas em três critérios para um filtro ótimo, tornou-se possível avaliar formalmente o

desempenho de um filtro e, conseqüentemente passou-se a procurar um filtro que obtivesseum desempenho superior ao proposto no seu trabalho. O trabalho de Torreão propôs um filtrobaseado em funções de Green, construído pela combinação de operadores diferenciais queobteve desempenho superior ao de Canny. Neste contexto, este trabalho propõe utilizar estamesma abordagem para através de outras combinações de operadores diferenciais, criar eimplementar novos filtros de detecção de arestas.

Palavras-chave: Funções de Green; Detecção de arestas; Operadores diferenciais; Filtrode Canny

Page 7: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 7/44

 

  7

 

ABSTRACT

After Canny’s work, that proposed a edge detector filter with performance superior to theones previously proposed in literature and formalized three performance measures based onthree optimal filter criteria, it became possible to formally evaluate a filter's performance,

which resulted in a widespread search for a filter with an even superior performance.Torreão’s work proposed a filter based on the Green’s functions, built by combiningdifferential operators, which resulted in a performance superior to Canny's filter. In thiscontext, this work proposes the usage of this same approach to create and implement newedge detection filters with different differential operators combinations.

Keywords: Green’s functions; Edge detection; Differential operator; Canny’s filter

Page 8: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 8/44

 

  8

 LISTA DE FIGURAS

2.1 As áreas da computação visual ....................................................................................... 14 

2.2 Exemplo de utilização de filtragem para detecção de arestas ........................................ 16 

3.1  Uso do filtro de Canny ...................................................................................................23 

4.1  Função de Green G2 .......................................................................................................26 

4.2 Função de Green G3 ........................................................................................................28

4.3 Filtros D2 (- - -) e D3 (---) para o mesmo valor de u .......................................................29 

4.4 Filtro D23 .........................................................................................................................30 

4.5 Comparação visual entre o filtro de Canny (esquerda) e o filtro D23 (direita) .............. 31

4.6 Comparação visual entre o filtro de Canny (esquerda) e o filtro D12 (direita) .............. 33

4.7 Comparação visual entre o filtro de Canny (esquerda) e o filtro D13 (direita) .............. 34 

4.8 Comparação visual entre os filtros: (a) Filtro de Canny, (b) Filtro D23 ,(c) Filtro .........35 D12 e (d) Filtro D13 

Page 9: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 9/44

 

  9

 SUMÁRIO

1 Introdução ........................................................................................................................ 11 

2 Conceitos relacionados à detecção de arestas ............................................................... 13

2.1  Processamento de imagens................................................................................................ 13

2.2  Filtros ................................................................................................................................ 142.3  Detecção de arestas ........................................................................................................... 15

2.4  Calibração de câmeras....................................................................................................... 16 

3 O filtro de canny .............................................................................................................. 18

3.1  Os critérios de um filtro ótimo .......................................................................................... 18

3.1.1 O primeiro critério .......................................................................................................... 18

3.1.2 O segundo critério .......................................................................................................... 19

3.1.3 O terceiro critério............................................................................................................ 20

3.2  Obtenção do filtro ótimo ................................................................................................... 21

3.2.1 Medidas de desempenho................................................................................................. 21

3.2.2 Aproximação do filtro ótimo de canny ............................................................................ 22 

4 Funções de Green para detecção de arestas.................................................................. 24

4.1  Apresentação dos operadores diferenciais do trabalho de Torreão ................................... 24

4.1.1 O operador diferencial D2 ............................................................................................... 24

4.1.2 O operador diferencial D3 ............................................................................................... 27

4.1.3 O operador diferencial D23.............................................................................................. 29

4.2 Construção de novos operadores diferenciais ................................................................... 31

4.2.1 O operador diferencial D12.............................................................................................. 32

Page 10: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 10/44

 

  10

4.2.2 O operador diferencial D13.............................................................................................. 33 

5 Conclusão ......................................................................................................................... 36 

Referências Bibliográficas ..................................................................................................... 38 

Apêndice A – Código-Fonte dos filtros ................................................................................. 39

Page 11: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 11/44

 

  11

 

1  INTRODUÇÃO

Atualmente, uma área da computação visual que devido ao crescimento de sua utilização

se tornou de grande importância e alvo de ampla pesquisa computacional é a área de

processamento de imagens, sendo utilizada em diversos ramos, tais como: medicina, controle,agropecuária, entretenimento, etc. Devido ao aumento da demanda da utilização e da

dependência de várias áreas em relação a obter informações a partir de imagens, vários

algoritmos e técnicas foram desenvolvidos para filtrar, restaurar, comprimir, descomprimir,

diferenciar e reconhecer imagens.

Uma imagem adquire as características de um objeto, ou seja, as variações nos tons de

cinza da imagem. São utilizadas várias técnicas de processamento de imagens para extrair

informações desses objetos. Uma dessas técnicas, a detecção de bordas ou arestas de uma

imagem é essencial para a análise de imagens e é implementada através de vários algoritmos

que visam diferentes propósitos, através de fórmulas matemáticas diferenciadas, e

basicamente derivam a imagem para acentuar suas arestas. Estas técnicas são o foco principal

deste trabalho.

Os algoritmos de detecção de arestas são utilizados para diversos fins, podendo ser

empregados como um fim, quando se quer obter apenas as arestas de uma imagem para, por

exemplo, a partir de uma imagem extraída de um satélite, calcular a área ou perímetro dos

objetos presentes nesta imagem, ou como um passo intermediário ou pré-processamento para

passos subseqüentes, ou seja, quando a detecção de bordas é necessária para se utilizar

posteriormente outra técnica de processamento de imagens, por exemplo, para calibrar

automaticamente uma câmera utilizada numa partida de futebol é necessário usar um filtro

para realçar as linhas do campo (bordas) e detectá-las, utilizando os pontos de interseção

dessas linhas posteriormente para determinar os parâmetros intrínsecos e extrínsecos da

câmera para calibrá-la.

Page 12: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 12/44

 

  12

 

Diante da dificuldade de implementar um algoritmo de detecção de bordas que possua um

bom desempenho (chamado de filtro ótimo por Canny) (CANNY, 1986) em contextos

diferentes, ou seja, funcione bem com imagens que possuam características diferentes, vemos

a necessidade de comparar o desempenho desses algoritmos com o objetivo de verificar qual a

técnica que obtém melhores resultados globais aplicadas a diferentes contextos.

Nesse contexto, esse trabalho propõe formalizar e implementar alguns filtros de detecção

de arestas baseados em funções de Green e comparar visualmente os seus resultados.

Os próximos capítulos serão organizados da seguinte forma: O capítulo 2 apresenta os

conceitos básicos necessários para a compreensão do trabalho. O capítulo 3 apresenta o

trabalho proposto por Canny e a formalização de seus critérios para a obtenção de um filtro de

detecção de arestas ótimo. O capítulo 4 apresenta inicialmente a abordagem da utilização de

operadores diferenciais baseados em funções de Green para a obtenção de filtros de detecção

de arestas e, posteriormente, apresenta um filtro construído pela combinação de operadores

proposta por (TORREAO; AMARAL, 2002). Posteriormente, o capítulo 4 apresenta novos

filtros criados a partir de novas combinações de operadores diferenciais. Por fim, no capítulo5, são apresentados as considerações finais e os trabalhos futuros. 

Page 13: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 13/44

 

  13

 

2 CONCEITOS RELACIONADOS ÀDETECÇÃO DE ARESTAS

O objetivo deste capítulo é apresentar os principais conceitos utilizados e que são

necessários para a compreensão do trabalho.

2.1  PROCESSAMENTO DE IMAGENS

O campo do processamento de imagens consiste em desenvolver técnicas de compreensão

dos mecanismos de visão natural e artificial e em fornecer ferramentas cujo desempenho

aproxima-se o mais possível das extraordinárias capacidades do sistema visual humano

(FACON, 2002). A área do processamento de imagens juntamente com as de processamento

de dados, computação gráfica e visão computacional compõem a computação visual conforme

ilustrado na figura 2.1. No processamento de imagens a entrada é composta por uma imagem

que após ser processada dá origem a uma outra imagem como saída. Com o passar do tempo,

inúmeras atividades corriqueiras passaram a ser automatizadas fazendo-se uso de técnicas de

processamento de imagens. Estas técnicas podem necessitar de conhecimento prévio ou até de

processamento em tempo real. São exemplos de aplicações:

•  Aplicações industriais - O campo industrial utiliza processamento de imagens para

várias atividades tais como: Pilotagem de robôs para escolha e manipulação de peças,

Page 14: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 14/44

 

  14

além de escolha de melhor trajetória para evitar obstáculos. Inspeção visual para medir e

fazer o controle da qualidade do produto, detectando possíveis defeitos.

•  Reconhecimento de padrões - As técnicas utilizadas são: Reconhecimento de

caracteres para leitura automática. Reconhecimento de impressões digitais e de

assinaturas.

Figura 2.1: As áreas da computação visual

2.2 FILTROS

Um filtro é uma aplicação do espaço das imagens no espaço das imagens, a fim de

melhorar ou interpretar uma imagem. Filtragem é um conjunto de técnicas destinadas a

corrigir e realçar uma imagem digital. As técnicas de filtragem podem ser divididas em doisgrupos: Correção ou Restauração e Melhoria ou Realce. As técnicas de realce de imagens são

Page 15: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 15/44

 

  15

relacionadas com expansão de contraste, realce de bordas e suavização. Alguns dos objetivos

principais do realce de uma imagem são a obtenção de:

•  Imagem com um bom contraste•  Contornos nítidos

•  Detalhes importantes

•  Pouco ruído

Os métodos de realce diferem dos de restauração pelo fato de que os primeiros são

essencialmente projetados para manipular a imagem a partir das características psicofísicas do

sistema de referência que é a visão humana. Esses métodos podem ser divididos em duas

categorias principais que são:

•  Os métodos “ponto por ponto”

1.  Modificação de histograma

2.  Modificação de contraste

  Os métodos de vizinhança ou locais1.  Suavização do ruído

2.  Realce de contornos e de detalhes (FACON, 2002). 

2.3  DETECÇÃO DE ARESTAS

Aresta ou bordas são definidas como descontinuidades na intensidade do nível de cinza

dos pixels de uma imagem. As técnicas de detecção de arestas consistem em detectar

variações nos níveis de cinza, ou seja, se há taxa de mudança nos níveis de cinza (ver figura

2.2). Elas utilizam técnicas de filtragem para detectar a mudança da intensidade dos níveis de

cinza. Uma imagem  I(x,y) é uma seqüência de regiões de tamanhos diversos, onde os níveis

de cinza são constantes, e de fronteiras, encontros de várias regiões, marcando uma transição

entre elas. Do ponto de vista matemático, as regiões são caracterizadas por derivadas suaves e

Page 16: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 16/44

 

  16

pouco acentuadas e as fronteiras por derivadas fortes e acentuadas. O princípio é derivar a

imagem para acentuar as bordas contidas na imagem (FACON, 2002).

Figura 2.2: Exemplo de utilização de filtragem para detecção de arestas

2.4  CALIBRAÇÃO DE CÂMERAS

A calibração de uma câmera envolve estimar os parâmetros intrínsecos e extrínsecos

(internos ou externos). Entendemos como parâmetros intrínsecos os que são necessários para

ligar as coordenadas de pixel de um ponto na imagem com as respectivas coordenadas no

frame da câmera. Podemos citar:

•  Distância focal;

•  Localização do centro da imagem, em coordenadas de pixel;

•  Tamanho efetivo horizontal e vertical do pixel;

•  Coeficientes de distorção

Já os parâmetros extrínsecos são os que definem a localização e orientação do frame decâmera com relação a um frame de mundo conhecido. Podemos citar:

Page 17: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 17/44

 

  17

•  Vetor de translação;

•  Matriz de rotação (ou os seus parâmetros livres).

Na calibração de câmeras são utilizados vários sistemas de coordenadas, são eles:

•  O sistema de coordenadas do mundo (SCM), utilizado para descrever a cena com

origem no ponto O e referencial (X, Y,Z);

•  O sistema de coordenadas da câmera (SCC), que tem origem em O’, no centro óptico,

referencial (X’, Y’, Z’), tem plano  xy paralelo ao plano de projeção e  f é a distância

desse plano de projeção a O’;

•  O sistema de coordenadas da imagem (SCI) que é um sistema bidimensional no planode projeção, tem origem C obtida pela projeção do centro óptico O’ sobre o plano de

projeção e referencial (x,y);

•  O sistema de coordenadas em pixel (SCP) que define a posição de um ponto em

relação a matriz de pixels, tem sistema de coordenadas (u, v) e normalmente se situa

num canto da imagem.

Um exemplo de método de calibração de câmeras é o método de Tsai (Tsai, 1987). Este

método se baseia nas seguintes restrições:

•  Os pontos de entrada são coplanares;

•  O SCM e o SCC tem a mesma orientação, logo R é uma matriz de rotação;

•  Todos os pontos de calibração se situam no plano Z = 0 (SCM);

•  Os parâmetros intrínsecos da câmera, com exceções da distância focal e coeficiente de

distorção, devem ser conhecidos, de modo que a partir de um ponto do SCP sejapossível determinar o ponto equivalente no plano de projeção.

Page 18: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 18/44

 

  18

 

3  O FILTRO DE CANNY

3.1  OS CRITÉRIOS DE UM FILTRO ÓTIMO

Segundo (CANNY, 1986), um filtro de detecção de arestas precisa atender a três critérios

básicos. Esses critérios podem ser enunciados como:

1.  Boa detecção

2.  Boa localização espacial

3.  Resposta única

3.1.1  O PRIMEIRO CRITÉRIO

O primeiro critério define que o detector de arestas deve ter baixa probabilidade de falha

na detecção de arestas, ou seja, baixa probabilidade de escolher pixels que estão fora das

arestas. Este critério é chamado de Taxa de detecção e consiste na maximização da razão

sinal/ruído. Ao analisarmos a razão sinal/ruído (SNR), podemos afirmar que quanto maior elafor, maior será a probabilidade de se detectar as bordas verdadeiras dessa imagem.

A resposta de um filtro f(x) a uma borda G(x) com centro em H(x) é dada por uma integral

de convolução, sendo que essa resposta é limitada por [-w,w] e tem valor zero fora desse

intervalo:

(1)

Page 19: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 19/44

 

  19

Para o ruído n(x), considerando a raiz quadrada da reposta do filtro e sendo n0 ²  a

amplitude quadrática média do ruído por unidade de comprimento e assumindo que a borda

está centrada em x = 0 temos:

(2)

Logo a razão sinal/ruído (SNR) é representada por:

(3)

3.1.2  O SEGUNDO CRITÉRIO

O segundo critério define que as distâncias entre os pixels da borda encontrados pelo

detector e os pixels da borda verdadeira deve ser mínima, ou seja, os pixels da borda devem

estar bem localizados. Este critério é chamado de Localização (L) e é definido como sendo o

inverso da distância entre um ponto detectado e a respectiva posição verdadeira, logo quanto

maior for L, mas próximo das posições verdadeiras estarão os pontos detectados pelo filtro

(DO VALE; DAL POZ, 2002).

(4) 

Page 20: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 20/44

 

  20

Podemos concluir que por esses dois primeiros critérios, um filtro de bordas precisa

maximizar tanto a razão sinal/ruído (SNR) como a localização (L) e, portanto deve maximizar

o produto entre eles.

(5)

3.1.3  O TERCEIRO CRITÉRIO

Por fim, o terceiro critério para um filtro ótimo define que o detector de bordas não pode

identificar múltiplas bordas onde existe somente uma, ou seja, deve haver apenas um único

pixel de borda para um único pixel de borda verdadeira. Este critério é chamado de critério de

resposta única e consiste em maximizar a distância (Xmax  ) entre máximos adjacentes na

resposta do filtro f(x) devido ao ruído (CANNY, 1986).

(6)

Assim, ao maximizar o produto entre SNR e L, deve-se também garantir que Xmax  seja

maior possível, aumentando a possibilidade de separação de máximos verdadeiros dos falsos

de saída do filtro f(x) (DO VALE; DAL POZ, 2002).

Page 21: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 21/44

 

  21

3.2  OBTENÇÃO DO FILTRO ÓTIMO

3.2.1  MEDIDAS DE DESEMPENHO

Segundo (CANNY, 1986), as medidas de desempenho Σ(f) e Λ(f ') estão relacionadas

respectivamente com o primeiro e o segundo critérios, os critérios de detecção e localização:

(7)

Demonstra-se que Σ(f) e Λ(f ') variam inversamente ao longo do espaço-escala, ou seja,

quando se tenta maximizar a detecção perde-se em localização, já quando se tenta maximizar

a localização perde-se em detecção.

Ao utilizar apenas os dois primeiros critérios não se obtém um filtro ótimo, pois se obtém

um resultado truncado por produzir muitos máximos locais devido à grande largura de banda,

o que inflinge o primeiro critério. O terceiro critério utiliza o Xmax  para restringir a escolha de

f(x) segundo a expressão:

Xmax [f(x)] = kW (8)

onde k varia no intervalo [0,1] e W é o coeficiente da largura do operador.

A forma do filtro f(x) depende, então, da injunção de respostas múltiplas, isto é, depende

das distâncias entre as respostas adjacentes (Xmax  ). Em geral, o ideal é que as respostas

adjacentes estejam o mais distante possível, facilitando a separação do pico verdadeiro dos

falsos. Segundo (Canny, 1986), quanto menor o espaçamento entre as respostas adjacentes,mais íngreme é a função f(x) na origem. Assim, um filtro muito íngreme, em relação à

Page 22: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 22/44

 

  22

origem, ou seja, que tenha uma maior declividade da função f(x) na origem, beneficia o

critério de localização, mas não é favorável aos outros critérios. Por outro lado, um filtro

menos íngreme, em relação à origem, ou seja, menor declividade da função f(x) na origem, é

desfavorável ao critério de localização, mas os critérios de detecção e de resposta única são

beneficiados (DO VALE; DAL POZ, 2002).

Portanto, conclui-se que uma solução analítica é inviável e se pode afirmar que para se

obter um filtro ótimo, é necessário obter um conjunto de parâmetros que balanceie os três

critérios mencionados.

3.2.2  APROXIMAÇÃO DO FILTRO ÓTIMO DECANNY

Devido à dificuldade de se obter uma solução analítica, foi desenvolvida uma variante. A

ação do filtro ótimo de Canny pode ser aproximada pela primeira derivada da função

Gaussiana G’(x), também chamada de DoG (Derivative of Gaussian). A função Gaussiana é

dada por:

(9)

Portanto, a aproximação do filtro ótimo de Canny para a detecção de bordas de imagens

digitais é a primeira derivada da função Gaussiana, conseguido pela convolução da imagem

de entrada com G’, devido à forma analítica simples que possui e a semelhança dos

resultados. A imagem de saída (ver figura 3.1) desse processo terá suas bordas realçadas,

mesmo na presença de ruídos, incorporadas no modelo de bordas da imagem (Miranda;

Camargo Neto, 2008).

Page 23: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 23/44

 

  23

 

Figura 3.1: Uso do filtro de Canny

Page 24: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 24/44

 

  24

 

4  FUNÇÕES DE GREEN PARADETECÇÃO DE ARESTAS

Com o passar do tempo, vários trabalhos foram apresentados, propondo diversos tipos de

filtros para detecção de arestas. No entanto, por ser baseado num modelo matemático formalcom critérios de desempenho bem definidos o filtro para detecção de arestas de Canny se

tornou o mais popular na literatura. (TORREAO; AMARAL, 2002) propôs uma nova

abordagem para utilizar operadores diferenciais na obtenção de arestas através de um filtro

que possui desempenho superior aos relatados na literatura. Este filtro é baseado em funções

de Green de equações de casamento de imagens e além de ser mais simples que o processo de

otimização de Canny possui um melhor desempenho1.

4.1  APRESENTAÇÃO DOS OPERADORESDIFERENCIAIS DE TORREÃO

4.1.1  O OPERADOR DIFERENCIAL  D2 

Segundo (TORREAO; AMARAL, 2002), dado o sinal  I (x), a derivada deste sinal é

expressa por

1 Conforme pode ser visto em (TORREÃO; AMARAL, 2002).

Page 25: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 25/44

 

  25

(10)

Suponha que exista um sinal Ĩ (x) tal que

(11)

e expandindo o 1° membro de (11) até 2ª ordem, temos:

(12)

A solução que satisfaz esta equação diferencial é dada por

(13)

onde a função de Green, G2(ξ) que é representada e dada por (figura 4.1) e (14)

respectivamente.

Page 26: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 26/44

 

  26

 Figura 4.1: Função de Green G2 

(14)

De forma análoga, supondo existir Î (x) tal que

(15)

e tem a solução dada por

(16)

Usando Ĩ (x) e Î (x), pode-se escrever I '(x) como

(17)

Page 27: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 27/44

 

  27

 

Desta forma, obtém-se o operador diferencial de convolução

(18)

4.1.2  O OPERADOR DIFERENCIAL  D3 

De forma similar, a abordagem utilizada pode ser estendida para a expansão da terceira

ordem de Taylor

(19)

obtendo-se no final a função de Green, G3(ξ), que é representada e dada por (figura 4.2) e (20)

respectivamente.

Page 28: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 28/44

 

  28

 

Figura 4.2: Função de Green G3 

(20)

onde Ф é um parâmetro livre, α = 1.596/ u,  β = 0.702/ u, γ = 1.807/ u, e

(21)

E por fim, obtém-se o operador diferencial de convolução

(22)

Page 29: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 29/44

 

  29

4.1.3  O OPERADOR DIFERENCIAL  D23 

Um melhor operador de detecção de arestas pode ser construído pela combinação dos

operadores diferenciais D2 e D3 num único operador diferencial chamado D23.

Figura 4.3: Filtros D2 (- - -) e D3 (---) para o mesmo valor de u. 

Este operador obtém melhores resultados por conseguir um melhor equilíbrio entre a

precisão da detecção e a robustez contra o ruído.

O operador D23 é obtido pela generalização da derivada do sinal I (x)

(23)

onde η é um parâmetro real. E é dado por

Page 30: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 30/44

 

  30

(24)

onde a é um parâmetro real. Substituindo I (x ± u) e I (x ± ηu), respectivamente, pelas integrais

correspondentes, envolvendo G2 e G3, chegamos ao operador  D23 que é representado e dado

por (figura 4.4) e (25) respectivamente.

Figura 4.4: Filtro D23 

(25)

com F (x) dado por

Page 31: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 31/44

 

  31

(26)

onde α, β , γ, Ф e A são os mesmos que em (20) e C (Ф) = 2/(uA).

A figura 4.5 faz uma comparação visual entre o filtro de canny e o filtro D23. 

Figura 4.5: Comparação visual entre o filtro de Canny (esquerda) e o filtro D23

(direita) 

4.2  CONSTRUÇÃO DE NOVOS OPERADORESDIFERENCIAIS

Page 32: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 32/44

 

  32

Seguindo a mesma abordagem para a combinação de operadores diferenciais apresentada

em (TORREAO; AMARAL, 2002), novos filtros de detecção de arestas podem ser

construídos ao combinar os operadores diferenciais  D1, D2 e D3, criando os operadores  D12 e 

 D13.

4.2.1  O OPERADOR DIFERENCIAL  D12 

O operador diferencial  D12 é um filtro de detecção de arestas construído através da

combinação dos operadores D1 e  D2.

Inicialmente, precisa-se obter a função de Green G1(ξ), para construir o operador  D1.

Segundo (FERREIRA JUNIOR; TORREAO; CARVALHO, 2009), G1(ξ) é dada por

(27)

e de forma análoga a (17) , obtém-se o operador diferencial

(28)

Para combinar os operadores  D1 e   D2 utiliza-se a mesma técnica de combinação

apresentada no filtro  D23 do item 4.1.3, que consiste na generalização da derivada do sinal

 I (x). De (24), (27) e (14) se obtém o operador D12 que é dado por

(29)

com F (x) dado por

Page 33: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 33/44

 

  33

 

(30)

Na figura 4.6 compara-se visualmente o filtro de Canny e o filtro  D12 e observa-se que o filtro

 D12 possui arestas mais suaves e não apresenta o efeito aliasing que é bastante evidente no

filtro de Canny.

Figura 4.6: Comparação visual entre o filtro de Canny (esquerda) e o filtro D12 (direita) 

4.2.2  O OPERADOR DIFERENCIAL  D13 

De forma similar, o operador diferencial  D13 é um filtro de detecção de arestas construído

através da combinação dos operadores D1 e  D3.

De (24), (27) e (20) se obtém o operador  D13 que é dado por

Page 34: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 34/44

 

  34

  (31)

com F (x) dado por

(32)

onde α, β , γ, Ф e A são os mesmos que em (20) e C (Ф) = 1/(uA).

Na figura 4.7 compara-se visualmente o filtro de Canny e o filtro  D13 e também observa-se

que o filtro D13 possui arestas mais suaves e não apresenta o efeito aliasing do filtro de Canny.

Figura 4.7: Comparação visual entre o filtro de Canny (esquerda) e o filtro D13 (direita) 

Na figura 4.8 compara-se visualmente os filtros: (a) de Canny, (b) D23 ,(c) D12 e (d) D13.

Page 35: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 35/44

 

  35

 

(a)  (b) 

(c)  (d)

Figura 4.8 : Comparação visual entre os filtros: (a) Filtro de Canny, (b) Filtro D23 ,(c)Filtro D12 e (d) Filtro D13

Page 36: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 36/44

 

  36

 

5  CONCLUSÃO

O campo dos filtros de detecção de arestas é uma das áreas do processamento de imagens

que devido ao seu vasto uso na análise de imagens possui grande relevância e é alvo de

constantes trabalhos de pesquisa.

Este trabalho, inicialmente, apresentou o filtro e os critérios básicos para se obter um filtro

ótimo de detecção de arestas propostos no trabalho de Canny. Posteriormente, apresentou a

abordagem utilizada no trabalho de (TORREAO; AMARAL, 2002) de utilizar uma

combinação de operadores diferenciais baseados em funções de Green como filtro de

detecção de arestas. Esta abordagem obteve arestas mais suaves e, portanto um resultado

superior ao filtro de Canny (Figura 4.5). O objetivo principal desse trabalho foi utilizar esta

abordagem para criar e implementar novos filtros de detecção de arestas a partir dacombinação de outros operadores diferenciais, completando uma lacuna deixada no trabalho

acima citado, pois nele não utiliza-se a função de primeira ordem.

A grande dificuldade encontrada neste trabalho foi formalizar e modelar a combinação

dos operadores diferenciais a partir da generalização da derivada do sinal (24) e

posteriormente implementar esses novos filtros. Ao comparar visualmente os resultados da

aplicação dos novos filtros criados com o filtro de Canny, percebemos que os novos filtrostambém possuem arestas mais suaves e, portanto resultados superiores ao obtido pelo filtro de

Canny, porém como pode-se ver na figura 4.8, esses resultados não são melhores que o filtro

 D23 de (TORREAO; AMARAL, 2002), pois possuem uma resposta mais fraca já que as

arestas detectadas tem uma intensidade mais baixa.

Outras possibilidades de trabalhos futuros são:

•  Criar e implentar o filtro D123 a partir da combinação dos operadores diferenciais D1,  D2

e  D3. 

Page 37: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 37/44

 

  37

•  Calcular as três medidas de desempenho, propostas por Canny, dos filtros  D12 ,  D13 e

 D123. 

•  Utilizar os filtros propostos para detecção de linhas para calibração automática de

câmeras.

•  Estender o trabalho de (TORREAO; AMARAL, 2002) ao caso de funções de Green

com u sendo uma função afim (na abordagem utilizada u é uma constante). 

Page 38: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 38/44

 

  38

 

REFERÊNCIAS BIBLIOGRÁFICAS

CANNY, J. A Computational Approach to Edge Detection. IEEE Transactionson Pattern Analysis and Machine Intelligence, V. 8, n. 6, pp. 679-698, 1986.

DO VALE, G.M.; DAL POZ, A.P. Processo de detecção de bordas de Canny. 2002.

FACON, J. Processamento e análise de imagens. 2002.

FERREIRA JÚNIOR, P.E., TORREÃO, J.R.A., CARVALHO, P.C.P.,    A Comparative  Analysis of Green’s Functions of 1D Matching Equations for Motion Synthesis, PatternRecognition Letters (2009).

MIRANDA, J.I.; CAMARGO NETO, J. Filtro de Canny para detecção de bordas:implementação Java. Campinas: Embrapa Informática Agropecuária, 2008. (EmbrapaInformática Agropecuária. Comunicado Técnico, 96).

TSAI, R. Y. (1987), ‘A versatile camera calibration technique for high-accuracy 3d machinevision metrology using off-the-shelf tv cameras and lenses’, Ieee Journal Of Robotics AndAutomation RA-3(4), 323–344.

TORREAO, J.R.A.; AMARAL, M.S., 2002. Signal differentiation through a Green’s functionapproach. Pattern Recognition Lett. 23, 1755–1759.

Page 39: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 39/44

 

  39

 

APENDICE A – CÓDIGO-FONTE DOSFILTROS

#include <stdio.h>

#include <stdlib.h>

#include <im.h>

#include <im_image.h>

#include <math.h>

#define sq(x) x * x

// Função de Green G2

float G2 (float Xi, float u) {

if (Xi > 0) return sin(Xi/u) * exp(-Xi/u) * 2.0 / u;

else return 0;

}

// Operador D2

float D2(float Xi, float u) { return G2(-Xi,u) - G2(Xi,u); }

// Função de Green G3

float G3(float Xi, float u) {

float A;

float fi = 0.0;

float alfa = 1.596 / u;float beta = .702 / u;

float gama = 1.807 / u;

float part;

if (Xi > 0)

{

part = cos(fi) * ((beta - alfa) + (sq(alfa) - sq(beta)

+ sq(gama) / 3)) + gama * sin(fi) * (1 - 2 * beta / 3);

A = 2.0 / (u * part);

return A * (cos(fi) * exp( -alfa * Xi ) - cos(gama * Xi

+ fi) * exp( -beta * Xi));

} else return 0.0;

Page 40: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 40/44

 

  40

}

// Operador D3

float D3(float Xi, float u) { return G3(-Xi,u) - G3(Xi,u); }

// Função de Green G12

float G12(float Xi, float u) {

float A;

float a = 1.0 / 9;

float fi = 0.0;

float alfa = 1.596 / u;

float beta = .702 / u;

float gama = 1.807 / u;

float eta = 2.808;

float part;

if (Xi > 0)

{

part = 2 * sq(a) * sin(Xi/(eta * u)) * exp(-Xi/(eta *

u))/(sq(eta) * u) + (exp(-Xi/u)/u);

return (1 + a) * part;

} else return 0.0;

}

// Operador D12float D12(float Xi, float u) { return (G12(-Xi,u) - G12(Xi,u))

/ (2 * u); }

// Função de Green G13

float G13(float Xi, float u) {

float A;

float a = 1.0 / 9;

float fi = 0.0;

float alfa = 1.596 / u;

float beta = .702 / u;

float gama = 1.807 / u;float eta = 2.808;

float part;

if (Xi > 0)

{

part = cos(fi) * ((beta - alfa) + (sq(alfa) - sq(beta)

+ sq(gama)) / 3) + gama * sin(fi) * (1 - 2 * beta / 3);

A = 2.0 / (u * part);

part = cos(fi) * exp(- alfa * Xi / (eta * u)) - cos(gama

* Xi / (eta * u) + fi) * exp(- beta * Xi / (eta

* u)) + eta * exp(- Xi / u) / (u * A * a);

Page 41: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 41/44

 

  41

 

return A * part;

} else return 0.0;

}

// Operador D13

float D13(float Xi, float u) { return (G13(-Xi,u) -

G13(Xi,u)); }

// Função de Green G23

float G23(float Xi, float u) {

float A;

float a = 1.0 / 9;

float fi = 0.0;

float alfa = 1.596 / u;float beta = .702 / u;

float gama = 1.807 / u;

float eta = 2.808;

float part;

if (Xi > 0)

{

part = cos(fi) * ((beta - alfa) + (sq(alfa) - sq(beta)

+ sq(gama)) / 3) + gama * sin(fi) * (1 - 2 *

beta / 3);

A = 2.0 / (u * part);

part = cos(fi) * exp(- alfa * Xi / (eta * u)) - cos(gama

* Xi / (eta * u) + fi) * exp(- beta * Xi / (eta

* u)) + eta * sin(Xi / u) * exp(- Xi / u) * 2.0 

/ (u * A * a);

return A * part;

} else return 0.0;

}

// Operador D23

float D23(float Xi, float u) { return (G23(-Xi,u) –

G23(Xi,u)); }

int main(int argc, const char *argv[]) {

imFile * ifile, * ofile;

imImage * im, * imOut;

int error;

int w, x, y, i, addr, sum;float sumFX1, sumFX2, sumFY1, sumFY2, sumX, sumY;

float inc, boundary, Xi;

Page 42: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 42/44

 

  42

  void **data, * ptr_data;

float u = .042;

const int m_size = 5;

const int m_bound = m_size >> 1;

float MR[m_size], ML[m_size];

ifile = imFileOpen(argv[1],&error);

im = imFileLoadImage(ifile,0,&error);

imFileClose(ifile);

if (argc > 4) u = atof(argv[4]);

data = (void**) malloc(sizeof(void*));

*data = (void*) malloc(im->size);

boundary = 0.7;inc = boundary / m_bound;

// mascara de convolucao - esquerda-->direita

for (i = 0, Xi = -boundary; Xi <= boundary && i < m_size;

i++, Xi += inc)

{

//MR[i] = D12(Xi,u); //Utilizar o filtro D12

//MR[i] = D13(Xi,u); //Utilizar o filtro D13

MR[i] = D23(Xi,u); //Utilizar o filtro D23

}

// mascara de convolucao - esquerda<--direira

for (i = 0; i < m_size; i++)

{

ML[i] = -MR[i];

}

for (w = 0; w < im->depth; w++)

{

ptr_data = (unsigned char*)im->data[0] +

w * im->plane_size;

for(y = 0; y < im->height; y++)

{

for(x = 0; x < im->width; x++)

{

sumFX1 = sumFX2 = 0.0;

sumFY1 = sumFY2 = 0.0;

addr = y * im->width + x;

//convolucao sobre eixo Ox - varrendo da esquerda-->direitafor (i = -m_bound; i <= m_bound; i++)

{

Page 43: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 43/44

 

  43

  if (x + i >= 0 && x + i < im->width)

{

sumFX1 += (float) *((unsigned

char*)ptr_data + addr + i)

* MR[i + m_bound];}

}

if (sumFX1 < 0) sumFX1 = 0.0;

else sumFX1 /= 2 * u;

//convolucao sobre eixo Ox - varrendo da esquerda<--direita

for (i = m_bound; i >= -m_bound; i--)

{

if (x + i >= 0 && x + i < im->width)

{

sumFX2 += (float) *((unsigned char*)ptr_data + addr + i)

* ML[i + m_bound];

}

}

if (sumFX2 < 0) sumFX2 = 0.0;

else sumFX2 /= 2 * u;

//convolucao sobre eixo Oy - varrendo de cima-->baixo

for (i = -m_bound ; i <= m_bound; i++)

{

if (y + i >= 0 && y + i < im->height){

sumFY1 += (float) *((unsigned 

char*)ptr_data + addr + im->width

* i) * MR[i + m_bound];

}

}

if (sumFY1 < 0) sumFY1 = 0.0;

else sumFY1 /= 2 * u;

//convolucao sobre eixo Oy - varrendo de cima<--baixo

for (i = m_bound ; i >= -m_bound; i--){

if (y + i >= 0 && y + i < im->height)

{

sumFY2 += (float) *((unsigned 

char*)ptr_data + addr + im->width

* i) * ML[i + m_bound];

}

}

if (sumFY2 < 0) sumFY2 = 0.0;

else sumFY2 /= 2 * u;

sumX = (sumFX1 + sumFX2) / 2;

sumY = (sumFY1 + sumFY2) / 2;

Page 44: Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green

5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com

http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 44/44

 

  44

 

sum = (int) floor(sqrt(sq(sumX)

+ sq(sumY)));

if (sum > 255) sum = 255;else if (sum < 0) sum = 0;

addr = w * im->plane_size + y * im->width

+ x;

*((unsigned char*)data[0] + addr) =

(unsigned char)sum;

}

}

}

ofile = imFileNew(argv[2],argv[3],&error);

imOut = imImageCreate(im->width, im->height,

im->color_space, im->data_type);

imOut->data = data;

error = imFileSaveImage(ofile,imOut);

imImageDestroy(imOut);

imImageDestroy(im);

imFileClose(ofile);

return 0;

}