Detecção de Arestas em Imagens Digitais

Tamanho: px
Começar a partir da página:

Download "Detecção de Arestas em Imagens Digitais"

Transcrição

1 Detecção de Arestas em Imagens Digitais Helder C. R. de Oliveira Orientador: Prof. Marco A. Piteri Presidente Prudente 211

2 Sumário 1 Introdução 1 2 Processamento de Imagens e Detecção de Arestas O que são as Arestas? Modelos de Arestas Abordagem Algorítmica Algoritmo de Marr e Hildreth Algoritmo de Canny Algoritmo de Shen e Castan Ambiente de Desenvolvimento Ferramentas Utilizadas Protótipo Desenvolvido Conclusão 28 i

3 Lista de Figuras 2.1 Relacionamento as áreas da Computação Gráfica, Processamento de Imagens e Visão Computacional Destaque de um pixel em uma imagem Modelos de arestas Aresta em uma imagem (à esquerda) e suas derivadas de primeira e segunda ordem (à direita) Vetor gradiente ( f(x, y)) formando um ângulo α com o eixo x Máscaras unidimensionais utilizadas para implementar as Equações 3.4 e Modelo base para máscaras 3D Máscaras 2D de Prewitt Máscaras 2D de Sobel Máscaras 2D de Sobel para detecção de arestas nas diagonais Máscaras 2D de Prewitt para detecção de arestas nas diagonais Resultados da aplicação do operador de Sobel Gráfico da função LoG mostrada em 3.13, também conhecida como sombrero ou chapéu mexicano Vista em corte do gráfico da função LoG Máscara 5 5 referente a função LoG Resultados obtidos com algoritmo de Marr-Hildreth utilizando diferentes valores de desvio padrão σ Intervalo de valores mostrando um α para uma aresta horizontal Resultado obtido com o algoritmo de Canny Resultado obtido com o algoritmo de Shen e Castan Interface do protótipo do sistema Partes da interface principal Entradas do menu Ferramentas ii

4 Capítulo 1 Introdução Com o crescente uso da tecnologia, cada vez mais o homem tem buscado técnicas para reproduzir a visão humana em máquinas. Essas técnicas visam fazer com que as máquinas possam identificar em qual ambiente se encontram, juntamente com os objetos que estão em tais ambientes. Neste sentido, o processamento de imagens digitais tem se mostrado um amplo campo de pesquisa, no qual utilizamos técnicas para destacar objetos ou partes de uma imagem baseado em sua mudança de cor ou textura. Tudo isso para que depois o computador possa distinguir e identificar o que se encontra na imagem. Diversas áreas tem se beneficiado com o processamento de imagens independente do campo de atuação, dentre as mais variadas podemos citar, a medicina, o sensoriamento remoto e os sistemas de vigilância. A medicina é uma das áreas que mais utiliza o processamento de imagens nos dias atuais, pois tem se tornado cada vez mais comum a análise de uma imagem obtida por meio de raio x, ultrassonografia, tomografia ou ressonância magnética, onde o resultado é um pré-diagnóstico feito pelo computador. Podemos citar também as áreas da oncologia e da ortopedia que se beneficiam cada vez mais com esse tipo de procedimento. Em atividades laboratoriais nas quais é necessário fazer uma contagem de células, também é usado como tarefa de pré-processamento da imagem microscópica, a detecção de arestas como uma parte imprescindível da contagem como um todo. O sensoriamento remoto é outra grande área que tem se desenvolvido com a ajuda de softwares específicos para a análise de imagens de satélite por exemplo. Baseado nessas imagens estes softwares podem estimar a metragem total de uma área desmatada, a área de uma floresta que foi atingida por uma queimada, uma estimativa de desmatamento, ou até mesmo uma estimativa da quantidade de área plantada de determinada cultura. A área de vigilância (segurança) também tem se beneficiado com os avanços do processamento de imagens. É comum encontrarmos sistemas de vigilância compostos por câmeras que identificam em tempo real objetos suspeitos que possam estar sendo carregados. Com isso também se tem o reconhecimento facial, onde a câmera pode dar uma atenção especial ao rosto do indivíduo, fazendo com que o foco da imagem seja ajustado nessa região. Baseando-se em todas as poucas aplicações que citamos anteriormente, é possível afirmar com toda a certeza que a detecção de arestas é muitas vezes uma das primeiras tarefas a ser feita no processamento de uma imagem. É claro que existem ainda incontáveis outras aplicações que envolvem, e dependem, totalmente de uma boa detecção de arestas 1

5 para que todo o processo proposto (em qualquer que seja a área de aplicação) possa ser levado à diante com uma certa confiabilidade e seriedade. No Capítulo 2 iremos fazer uma explicação de como funciona o processamento de imagens e o que são as arestas. Discutiremos sobre como uma imagem é vista do ponto de vista computacional de modo a possibilitar o processamento da mesma. Também veremos os tipos de processamento nos seus níveis alto, médio e baixo. Ainda neste primeiro capítulo explicamos o que são as arestas e quais são os tipos de arestas comumente encontradas nas imagens. Ainda nesse capítulo, falaremos a respeito das imagens digitais e como são as arestas, após isso, entramos no nosso principal assunto que é a detecção de arestas. Faremos uma breve descrição de como é feita a detecção das arestas utilizando primeiramente operadores básicos como o de Sobel e o de Prewitt. Depois dos operadores básicos, no Capítulo 3 nós elevamos o nível de complexidade seguindo uma cronologia sistêmica ao tratar os algoritmos de Marr e Hildreth, que serão seguidos pelo algoritmo de Canny e por fim tratamos do algoritmo de Shen e Castan. A discussão do protótipo do sistema desenvolvido é feita no Capítulo 4, onde mostramos algumas partes de sua interface gráfica e também explicamos suas funcionalidades. Também comentamos as bibliotecas que foram usadas e ressaltamos a importância de tais ferramentas no cenário mundial do desenvolvimento de software. No capítulo de conclusão fazemos um comentário sobre tudo o que foi apresentado, do primeiro ao último capítulo e, depois citamos alguns trabalhos que são pertinentes para dar continuidade e quais trabalhos que tem como base, ou seja, quais trabalhos que tem como uma das principais e primeiras tarefas, a detecção de arestas. 2

6 Capítulo Processamento de Imagens e Detecção de Arestas 2 O Processamento de Imagens é a área onde a informação a ser tratada está inicialmente em algum formato gráfico. Essa imagem de entrada é processada e as informações são extraídas, ficando também em formato de imagem. Um pouco diferente do processamento de imagens é a Visão Computacional, onde os dados de entrada estão no formato de imagem, e após o seu processamento, eles ficam dispostos em outro formato, por exemplo em texto, como é o caso do Reconhecimento Óptico de Caracteres. Por outro lado temos a Computação Gráfica, onde inicialmente os dados estão dispostos em algum formato, e após seu processamento, eles ficam em formato de imagem. A relação entre as áreas de Processamento de Imagens, Visão Computacional e Computação Gráfica, estão melhor dispostas na Imagem 2.1 onde mostramos graficamente o relacionamento entre elas. informação visão computacional computação gráfica imagem processamento de imagem Figura 2.1: Relacionamento as áreas da Computação Gráfica, Processamento de Imagens e Visão Computacional. A representação e manipulação de uma imagem no computador requer a definição de um modelo matemático adequado da imagem. 3

7 Uma imagem pode ser definida como uma função de intensidade luminosa, denotada por uma função f(x, y) com f : R 2 R, cujo valor ou amplitude nas coordenadas espaciais (x, y) fornecem a intensidade ou o brilho da imagem (nível de cinza) naquele ponto. Notamos que uma imagem digital é composta por um número finito de elementos chamados de pixel (junção das palavras Picture e Element - Elemento de Imagem). Um pixel é a menor unidade de representação de uma imagem, possuindo uma localização ((i, j) f(x, y)) e valores específicos. Sendo assim, uma imagem pode ser representada (vide Imagem 2.2) por meio de uma matriz bidimensional, na qual cada elemento da matriz corresponde a um pixel da imagem. pixel Imagem Figura 2.2: Destaque de um pixel em uma imagem. Algumas vezes, o processamento de imagens é definido como uma área na qual tanto a entrada quanto a saída de um processo são imagens. Essa definição é um tanto restritiva e, de certa forma artificial. Por exemplo, nessa definição, a tarefa de calcular a intensidade média de uma imagem (que resulta em um único número) não seria considerada uma operação de processamento de imagens. Por outro lado, existem campos como o da visão computacional, cuja meta é utilizar computadores para simular a visão humana, incluindo o aprendizado e a capacidade de tomar decisões agindo com base em informações visuais. Se tomarmos uma linha contínua, onde em uma ponta está o processamento de imagens e em outro está a visão computacional, vamos notar que não existe um limite claro entre um e outro. Porém, para termos uma base seria útil considerar três tipos de processos computacionais nessa linha contínua: Processos de Baixo Nível: Nestes processos podemos categorizar as operações primitivas como o pré-processamento de imagens, operações como redução de ruídos, realce de contraste, aguçamento de imagens, entre outras. Um processo de nível baixo é definido pelo fato de tanto a entrada quanto a saída serem imagens; Processos de Médio Nível: Aqui podemos citar a operação de segmentação (divisão da imagem em regiões ou objetos, distintos), a descrição desses objetos para uma classificação (reconhecimento) posterior. Um processo de nível média é definido por geralmente a entrada ser uma imagem e a saída serem informações que são extraídas da imagem; Processos de Alto Nível: Estes processos envolvem em o dar sentido aos objetos que foram reconhecidos. 4

8 Com base nos itens citados anteriormente, vemos que existe um ponto comum entre o processamento e a análise de imagens e o reconhecimento de regiões ou objetos em uma imagem. 2.1 O que são as Arestas? Uma aresta é um conjunto de pixels conectados localizados no contorno ou borda entre duas regiões. Muito se confunde borda com aresta. A borda de uma região finita forma um caminho fechado e é, portanto um conceito global, enquanto a aresta é formada por pixels onde ocorre uma grande variação de intensidade de cor na imagem e é, portanto, um conceito local. A detecção das arestas em uma imagem, ocorre quando existe uma grande variação nos tons de cinza e quanto maior for essa variação, mais facilmente ela será detectada, exceto no caso ideal, onde qualquer que seja a variação, a detecção será feita. Matematicamente a intensidade de mudança a respeito de uma distância é conhecida com sendo a primeira derivada de uma função, portanto é admissível o uso das derivadas pelos mais diversos detectores de arestas, como pode ser visto no Capítulo Modelos de Arestas Os modelos de arestas são classificados de acordo com a distância da variação de intensidade. O modelo no qual ocorre essa variação com a distância de 1 pixel é chamado de aresta em degrau, ocorrendo, por exemplo, em imagens geradas para o uso em áreas como a modelagem de sólidos e animações. A Figura 2.3(a) mostra um exemplo deste modelo e o seu perfil horizontal de intensidade. Ele é considerado um modelo limpo e ideal, pois a mudança de intensidade com a distância de 1 pixel ocorre de modo natural, sem a necessidade de qualquer processamento adicional como por exemplo a suavização, para fazê-las aparecer. As arestas em degrau são utilizadas frequentemente como modelos para o desenvolvimento de métodos que automatizem a detecção de arestas, o algoritmo de Canny (Seção 3.2) é um exemplo. No mundo real, as imagens digitais possuem arestas que são desfocadas ou possuem ruídos. Nessas arestas o grau de indefinição está determinado pelos mecanismos de focalização como por exemplo lentes (no caso de imagens óticas) e o nível de ruído é determinado principalmente pelo componente eletrônico do sistema de imagens ou seja, ruídos podem também ocorrer durante o processo de transferência de uma imagem de um local (computador) para outro. Nessas situações, as arestas são classificadas por apresentarem um perfil de rampa na sua variação de intensidade, um exemplo desse modelo é mostrado na Figura 2.3(b). A inclinação da rampa é inversamente proporcional ao grau de definição da aresta, [1]. Como podemos notar, nesse modelo não existe mais uma aresta fina onde a sua variação possui uma distância de 1 pixel. Ao invés disso, temos uma distância bem maior, e um ponto de aresta é qualquer ponto contido na rampa, e um segmento de aresta será o conjunto conectado dos pontos que estão na rampa. Um outro modelo de aresta é o que chamamos de aresta em forma de telhado também conhecido como roof edge. Ela é composta basicamente de apenas uma linha que se destaca ao cortar uma determinada região da imagem. Se esta aresta possui uma distância (essa distância é o comprimento entre os dois lados que a cercam) mínima (1 pixel), esta nada mais é do que uma linha com 1 pixel de espessura que atravessa determinada região da imagem. Ilustramos esse tipo de aresta na Figura 2.3(c). Essa forma de telhado, surge normalmente em imagens em profundidade, por exemplo. Em casos onde existem objetos que está mais próximos do sensor do que o seu fundo. Outras imagens que apresentam esse tipo de aresta aparecem também em imagens de 5

9 2.2 Modelos de Arestas (a) Degrau. (b) Rampa. (c) Telhado. Figura 2.3: Modelos de arestas. satélite, onde estradas podem ser modeladas por esse tipo de borda. Não é difícil encontrar imagens que possuam os três modelos mencionados na Figura 2.3. Porém, a alteração das formas ideais são frutos do borramento e do ruído. No entanto, uma imagem que contém uma quantidade moderada de ruídos possuem arestas que estão bem próximas das arestas ilustradas. O que podemos fazer é construir expressões matemáticas baseadas nos modelos que foram apresentados, e com isso desenvolver algoritmos para as bordas. O desempenho dos algoritmos desenvolvidos depende diretamente do quão diferente é a borda da imagem real em relação aos modelos mostrados. perfil de intensidade horizontal primeira derivada segunda derivada (a) (b) passagem por zero Figura 2.4: Aresta em uma imagem (à esquerda) e suas derivadas de primeira e segunda ordem (à direita). A Figura 2.4(a) nos mostra uma aresta parecida com o modelo da Figura 2.3(b). Na Figura 2.4 (b) temos o perfil da intensidade horizontal da aresta em (a). Nesta mesma figura mostramos também o comportamento das derivadas de primeira e segunda ordem do perfil de intensidade. Analisando o perfil de intensidade em forma de rampa (da esquerda para a direita) podemos notar que no inicio da rampa e em determinados pontos dela a sua primeira derivada é positiva e, nas áreas onde temos a intensidade constante, sua primeira derivada é zero. A segunda derivada como podemos observar é positiva no início da rampa e zero no final dele, mas logo depois do inicio da rampa a segunda derivada passa a ser zero, voltando a ser positiva apenas no final da rampa e retornando a ser zero depois do final da rampa. A borda que analisamos vai do escuro para o claro. Se uma 6

10 2.2 Modelos de Arestas borda vai do claro para o escuro, é natural que os sinais das derivadas sejam invertidos. O ponto onde ocorre a intersecção entre o eixo de intensidade zero e a linha que vai o extremo (intensidade máxima) da segunda derivada, é chamado de cruzamento por zero da segunda derivada. Portanto, com base nas informações discutidas anteriormente, a magnitude (grandeza) da primeira derivada em um determinado ponto pode ser usada para verificar se o ponto pertence ou não a aresta. Sendo assim, podemos fazer uso do sinal da segunda derivada para saber se determinado pixel está do lado escuro ou claro da borda. É possível notarmos também outras duas propriedades em relação a derivada de segunda ordem: 1. Tem como resultado dois valores para cada aresta (esta característica não é importante); 2. Os cruzamentos por zero podem ser úteis quando se pretende achar o centro da borda. Apesar de termos analisado apenas perfis de arestas de 1D, a mesma ideia é aplicada para diversas orientações da imagem. Basta definirmos um perfil perpendicular, em um ponto qualquer, na direção da aresta e depois analisar os resultados assim como fizemos anteriormente. 7

11 Capítulo 3 Abordagem Algorítmica Neste capítulo iremos abordar alguns algoritmos dos detectores de arestas. Para isso, iremos iniciar fazendo uma explanação sobre o que são os detectores e quais critérios foram levados em conta no desenvolvimento de um, em seguida, mostramos detalhadamente os operadores de Sobel e o de Prewitt, que fizeram parte dos primórdios dos detectores de arestas, e depois entramos nos algoritmos mais robustos. O primeiro deles foi desenvolvido por Marr e Hildreth, o segundo por Canny, e o terceiro e último algoritmo por Shen e Castan Os detectores de arestas são métodos de processamento de imagem local desenvolvidos para detectar os pixels que estão na aresta. Uma linha pode ser vista como uma aresta em que a intensidade do fundo de cada lado da linha ou é muito superior ou muito inferior à intensidade dos pixels da aresta. Em geral os passos fundamentais que são considerados na detecção de uma aresta são: Suavizar a imagem para reduzir o ruído: A segunda derivada de um ponto qualquer da imagem é muito sensível a ruídos. Se uma imagem possui ruídos em grande quantidade, pode ser quase impossível detectar suas arestas; Detecção dos pontos da aresta: Esta é uma operação que ocorre localmente na imagem e que determina os pontos candidatos a serem pontos da aresta; Localização da aresta: Esta operação retira os pontos (falsos candidatos) que não pertencem à aresta, deixando apenas os que realmente a pertencem. O método ideal para encontrar a intensidade e a direção da aresta em uma posição (x, y) de uma imagem f, é o vetor gradiente ( f), definido pela Equação 3.1. f [ ] gx x f = grad(f) = = (3.1) g y f y A propriedade geométrica do vetor gradiente é apontar o sentido da maior variação da imagem f no ponto (x, y). A magnitude (tamanho ou valor da taxa de variação) do vetor gradiente ( f), será chamado de M(x, y), e é dado pela Equação 3.2. M(x, y) = mag( f) = gx 2 + gy 2 (3.2) 8

12 Na Equação 3.2, as imagens que quando combinadas resultam em M(x, y) (também chamada de imagem gradiente), são g 2 x e g 2 y, elas possuem o mesmo tamanho que a imagem original, pois são criadas no momento em que x e y assumem todos os valores dos pixels de f. A direção para onde o vetor gradiente, de determinado ponto (x, y) aponta, é dado pelo ângulo α em relação ao eixo x, a Imagem 3.1 ilustra esse fato. y (x, y) (x, y) α x Figura 3.1: Vetor gradiente ( f(x, y)) formando um ângulo α com o eixo x. Na Equação 3.3 temos a representação de como α é definido matematicamente. [ ] α(x, y) = tg 1 gy (3.3) g x Assim como a imagem da magnitude (Equação 3.2), α(x, y) é também uma imagem que possui o mesmo tamanho da imagem original, pois ela foi criada pela divisão do arranjo das imagens g y e g x. Então, a direção de uma aresta em um ponto qualquer (x, y) é ortogonal à direção, α(x, y), do vetor gradiente. Para calcular o gradiente de uma imagem, vimos na Equação 3.1, que é necessário calcular as derivadas parciais f e f em todos os pontos da imagem. Uma discretização x y das derivadas parciais nas vizinhanças de um ponto, é dada por: g x = g y = f(x, y) x f(x, y) y = f(x + 1, y) f(x, y) (3.4) = f(x, y + 1) f(x, y) (3.5) As equações anteriores são válidas para todos os valores de x e y da imagem filtrando-a com as máscaras unidimensionais mostradas na Figura (a) 1 1 (b) Figura 3.2: Máscaras unidimensionais utilizadas para implementar as Equações 3.4 e 3.5. Se o objeto que nos interessa é uma aresta inclinada, então iremos precisar de uma máscara 2D. Máscaras 2 2 são simples do ponto de vista conceitual, porém não são 9

13 tão eficientes para calcular a direção de uma aresta se comparadas com máscaras que são simétricas ao redor de um ponto e, assim, possuem mais informações a respeito da direção de uma aresta. As aproximações mais simples para as derivadas parciais que fazem uso de máscaras de tamanho 3 3 que são definidas a seguir: g x = f x = (z 7 + z 8 + z 9 ) (z 1 + z 2 + z 3 ) (3.6) g y = f y = (z 3 + z 6 + z 9 ) (z 1 + z 4 + z 7 ) (3.7) z 1 z 2 z 3 z 4 z 5 z 6 z 7 z 8 z 9 Figura 3.3: Modelo base para máscaras 3D. Os valores de z utilizados nas Equações 3.6 e 3.7 são especificados na imagem 3.3. Essas equações poder ser executadas de modo que x e y assumam todos os valores da imagem, filtrando então f com as duas máscaras (chamadas de operadores de Prewitt) mostradas nas Figuras 3.4(a) e 3.4(b). Na Equação 3.6, a diferença explicitada da região 3 3 faz com que a derivada se aproxime na direção do eixo x, e a que foi mostrada na Equação 3.7 faz com que a derivada se aproxime do eixo y (a) (b) Figura 3.4: Máscaras 2D de Prewitt. Uma variação das Equações 3.6 e 3.7 faz uso do valor 2 como peso no centro do coeficiente, ficando então da maneira mostrada nas Equações 3.8 e 3.9. O resultado desta modificação, causa uma suavização na imagem. Como foi feita uma mudança nas equações, é natural que as máscaras também sofram alterações. As novas máscaras são chamadas de operadores de Sobel e são mostradas nas Figuras 3.5(a) e 3.5(b). g x = f x = (z 7 + 2z 8 + z 9 ) (z 1 + 2z 2 + z 3 ) (3.8) g y = f y = (z 3 + 2z 6 + z 9 ) (z 1 + 2z 4 + z 7 ) (3.9) 1

14 (a) (b) Figura 3.5: Máscaras 2D de Sobel. Como podemos já prever, as máscaras de Sobel são as mais usadas, pois, elas possuem uma melhor redução de ruídos, e isso é importante quando estamos trabalhando com derivadas. Veja que a soma dos coeficientes das máscaras, mostradas nas Imagens 3.5 e 3.4 vão resultar em zero, esta é uma resposta esperada quando se trabalha com intensidade constante em operadores derivativos. As duas máscaras vistas anteriormente são utilizadas para calcular os componentes do gradiente g x e g y em cada pixel da imagem. As derivadas parciais, correspondentes as máscaras, são utilizadas para fazer uma estimativa da intensidade e a direção da borda. No caso do cálculo da magnitude do gradiente, é necessário que g x e g y sejam combinados como foi mostrado na Equação 3.2. Mas esta aplicação nem sempre é interessante devido ao seu custo computacional. Uma saída normalmente usada, é aproximar a magnitude do gradiente usando valores absolutos, dado pela Equação 3.1. M(x, y) g x + g y (3.1) A equação anterior é muito mais barata computacionalmente e ainda mantém as mudanças relativas de intensidade. O preço pago pela utilização dessa abordagem é que os filtros resultantes geralmente não são isotrópicos, ou seja, não variam com a rotação. Mas esse não é um problema quando são usadas as máscaras de Sobel e de Prewitt para calcular g x e g y, pois essas máscaras resultam em filtros isotrópicos apenas em arestas verticais e horizontais. Os resultados seriam isotrópicos somente para arestas nessas duas direções, independente das equações utilizadas. Contudo, as Equações 3.2 e 3.1 produzem o mesmo resultado para as bordas tanto verticais quanto horizontais quando são usadas as máscaras de Sobel ou de Prewitt. É possível alterar as máscaras 3 3 mostradas nas Figuras 3.5 e 3.4 fazendo com que as suas respostas tenham peso ao longo das diagonais. Essas alterações são ilustradas nas Figuras 3.6 e 3.7, onde mostramos respectivamente as máscaras adicionais de Sobel e Prewitt que são utilizadas para a detecção de arestas nesse sentido (a) (b) Figura 3.6: Máscaras 2D de Sobel para detecção de arestas nas diagonais. 11

15 (a) (b) Figura 3.7: Máscaras 2D de Prewitt para detecção de arestas nas diagonais. As imagens ilustradas na Figura 3.8 mostram os resultados do operador de Sobel em diferentes situações. Essa Imagem 3.8(a), foi escolhida devido ao seu conteúdo composto por objetos na posição vertical e horizontal, essa peculiaridade faz com que fique bem evidente a aplicação do operador em cada um dos eixos. Em 3.8(b) o operador foi aplicado apenas para os valores de x e na Imagem 3.8(c) apenas para os valores de y. Por fim, temos a Imagem 3.8(d) onde o operador foi aplicado tanto em x quanto em y, onde podemos notar que o resultado é uma mescla das imagens resultante da aplicação nos eixos separados. (a) Imagem original. (b) Sobel aplicado nos valores de x. (c) Sobel aplicado nos valores de y. (d) Sobel aplicado nos valores de x e y. Figura 3.8: Resultados da aplicação do operador de Sobel. 3.1 Algoritmo de Marr e Hildreth O algoritmo de detecção de arestas de Marr e Hildreth foi motivado pelos estudos biológicos do sistema de visão dos mamíferos. Ele foi desenvolvido por David Marr e Ellen 12

16 3.1 Algoritmo de Marr e Hildreth Hildreth, e foi uma das primeiras tentativas de detecção de arestas que usavam técnicas mais avançadas do que apenas operadores como as máscaras de Sobel. Marr e Hildreth acreditavam que: Qualquer mudança de intensidade na imagem, não depende de sua escala e, portanto, neste caso a detecção de arestas requer o uso de operadores de tamanhos diferentes; Se houver uma mudança brusca de intensidade na imagem, irá dar origem a um pico ou um vale na primeira derivada ou, um cruzamento por zero na segunda derivada. As idéias citadas anteriormente sugerem que na detecção de arestas, o operador usado deveria ter duas características principais: Ele deve ser uma operador diferencial capaz de calcular uma aproximação discreta da primeira ou da segunda derivada em cada ponto da imagem; e ele deve ser capaz de atuar em qualquer escala desejada, assim, os operadores grandes seriam usados para a detecção de arestas borradas, e os operadores pequenos para detectar arestas finas. Marr e Hildreth argumentaram então que o operador que poderia fazer com que as condições fossem satisfeitas era o filtro 2 G, também chamado de LoG (Laplacian of Gaussian, Laplaciano da Gaussiana), onde o 2 é o operador laplaciano mostrado em 3.12, e G é a função gaussiana 2D, com o desvio padrão σ, mostrada em G(x, y) = e x2 +y 2 2σ 2 (3.11) 2 = 2 x y 2 (3.12) Para se chegar até a função 2 G, é realizado o desenvolvimento mostrado a seguir, partindo das equações 3.11 e G(x, y) = 2 G(x, y) + 2 G(x, y) x 2 y 2 = [ ] x x 2 +y 2 x 2 e 2σ 2 + y = [ x 2 σ 4 1 σ 2 [ ] y x 2 +y 2 2 e 2σ 2 ] [ e x2 +y 2 y 2 2σ 2 + σ 1 ] e x2 +y 2 4 σ 2 2σ 2 Agrupando os termos semelhantes, chegamos à seguinte equação: [ ] x y 2 σ 2 G(x, y) = e x2 +y 2 2σ 2 (3.13) Na Figura 3.9 ilustramos o gráfico da superfície 2 G mostrada anteriormente. A Figura 3.1 é a vista em corte da Figura 3.9, nela observamos que o cruzamento por zero da função ocorre onde x 2 + y 2 = 2σ 2, o que ilustra um círculo de raio 2σ e centro na origem. Em 3.11 mostramos uma máscara 5 5 que se aproxima da forma da função LoG. Essa aproximação da máscara não é única e, ela pode ser substituída por qualquer outra máscara cujo o ponto central seja positivo rodeado por valores negativos que aumentam a medida que se distanciam da origem porém, é necessário que a soma dos coeficientes seja zero para que o valor de saída da máscara seja zero nos locais de intensidade constante. σ 4 13

17 3.1 Algoritmo de Marr e Hildreth 2 G x y Figura 3.9: Gráfico da função LoG mostrada em 3.13, também conhecida como sombrero ou chapéu mexicano. 2 G Cruzamento por zero 2 2σ Figura 3.1: Vista em corte do gráfico da função LoG. A ideia por trás do operador 2 G é que, o uso da função gaussiana G irá borrar a imagem fazendo com que os níveis de intensidade sejam reduzidos (incluindo os ruídos) para uma escala menor que σ pois, a gaussiana é suave nos domínios espaciais e de frequência. Após isso o operador 2 é a segunda derivada do filtro usado. A primeira derivada pode ser utilizada para encontrar mudanças bruscas de intensidade mas, elas são operadores direcionais. O laplaciano tem a propriedade de ser isotrópico (invariante com a rotação), assim como o sistema de visão humano, e isso é uma vantagem em relação ao uso da primeira derivada. Em síntese, o algoritmo de Marr-Hildreth pode ser resumido nos três seguintes passos: 1. Envolver um imagem original I em uma função gaussiana G de duas dimensões, de acordo com a Equação 3.14; 2. Calcular a laplaciana da imagem resultante, e chamar isso de L; 3. Encontrar os pixels de L que passam por zero. Esses pixels pertencem as arestas. No primeiro passo citado anteriormente, o resultado da convolução com o operador gaussiano resulta em uma variedade de desvios padrões que são combinados formando uma única imagem de aresta portanto, a imagem é suavizada, eliminando então alguns ruídos. A convolução em duas dimensões é mostrada na equação a seguir: I G(i, j) = n I(n, m)g(i n, j m) (3.14) m 14

18 3.1 Algoritmo de Marr e Hildreth Figura 3.11: Máscara 5 5 referente a função LoG. O próximo passo consiste em calcular a laplaciana da imagem que foi obtida como resultado do passo anterior, então, teremos: L = 2 [I G(i, j)] (3.15) Neste caso a ordem de aplicação dos operadores não importa, tanto faz aplicar um laplaciano e logo após um gaussiano ou aplica-se primeiro um gaussiano e depois um laplaciano. Para facilitar os cálculos, poderá ser criada apenas uma equação baseando-se nas duas (3.11 e 3.12), criando então uma máscara de convolução podendo ser aplicada á imagem e assim obter o mesmo resultado. As passagens por zero são os pontos mais significativos do algoritmo de Marr-Hildreth. Mar notou que elas podem ser detectadas (sem que haja um alto custo computacional) em cada uma das escalas da imagem resultante, no entanto, a sua identificação não gera contornos ligados. No algoritmo que foi implementado, para garantir que uma variedade de escalas sejam usadas, o programa usa duas gaussianas diferentes (é convencional usar duas gaussianas diferentes), e seleciona os pixels que passam por zero em ambas escalas como sendo os pixels das arestas. O programa necessita de valor σ como parâmetro de entrada. Ele então usa σ.8 e σ +.8 como valores de desvio padrão, faz as duas convoluções, e localiza dois conjuntos de passagem por zero (cada conjunto desse é uma imagem distinta. Uma imagem é com desvio padrão σ.8 e a outra é de desvio padrão σ +.8), então o programa faz uma união dos dois conjuntos onde os pixels que são comuns as duas imagens são pixels de aresta e portanto estarão na imagem resultante. No conjunto de figuras 3.12 mostramos os resultados da aplicação do algoritmo de Marr e Hildreth na Figura 3.12(a). Para os testes, inserimos no sistema desenvolvido com três valores distintos de desvio padrão, um com σ = 2, Figura 3.12(b), σ = 3, Figura 3.12(c), e por fim σ = 4 que deu origem a Figura 3.12(d). 3.2 Algoritmo de Canny Em 1986, John Canny definiu um conjunto de objetivos (três deles) que deveriam ser atingidos por um detector de arestas, descrevendo então um método ótimo: Taxa de Erro: O detector de arestas deve responder apenas as arestas e encontrar todas elas sem que nenhuma seja perdida; Localização: A distância entre os pixels de uma aresta e o centro da mesma aresta encontrada por um detector deve ser tão pequena quanto possível; 15

19 3.2 Algoritmo de Canny (a) Imagem original. (b) σ = 2 (c) σ = 3 (d) σ = 4 Figura 3.12: Resultados obtidos com algoritmo de Marr-Hildreth utilizando diferentes valores de desvio padrão σ. Quantidade de Respostas : O detector não identificaria múltiplos pixels na aresta onde apenas uma simples aresta existe. Em outras palavras, o número de máximos locais em torno da aresta verdadeira deve ser mínimo. O algoritmo de Canny consiste em expressar matematicamente os três critérios citados anteriormente, bem como encontrar soluções ótimas para eles. Como é difícil encontrar algo que os satisfaçam completamente, o uso de otimizações com arestas de degrau unidimensionais que foram corrompidas por ruído branco gaussiano, levam a conclusão de que, uma aproximação interessante, para este detector ótimo, é a primeira derivada de uma gaussiana, como mostra a Equação G (x) = d x 2 dx e 2σ 2 = x x2 e 2σ σ 2 (3.16) 2 Fazer um mudança para o caso bidimensional exigiria que a direção do vetor normal a aresta fosse conhecida, isso implica que seria necessário utilizar um detector de arestas de uma dimensão em todas as direções possíveis, o que é inviável. Para resolver esse 16

20 3.2 Algoritmo de Canny problema, podemos suavizar a imagem com uma gaussiana de duas dimensões, calcular o gradiente e sua magnitude, de modo a estimar a intensidade da borda e a direção de cada ponto. Supondo que f(x, y) seja a imagem a ser processada e, temos então a função G(x, y), ilustrada na Equação onde: G(x, y) = e x2 +y 2 2σ 2 (3.17) Agora fazendo a convolução da imagem f com a função gaussiana G temos: f s (x, y) = G(x, y) f(x, y) (3.18) Logo após calculamos a magnitude e a direção (ângulo) do vetor gradiente: M(x, y) = [ ] α(x, y) = tg 1 gy g x g 2 x + g 2 y (3.19) (3.2) g x = f s x e g y = f s y (3.21) Para obtermos g x e g y poderíamos usar qualquer uma das máscaras (Figura 3.7 ou Figura 3.6), citadas anteriormente nas equações 3.8 e 3.9. O próximo passo é afinar as bordas que foram criadas em torno dos máximos locais pelo uso do gradiente M(x, y). O método utilizado é o da supressão dos não máximos, que consiste em especificar um número de orientações da reta normal ao vetor gradiente. E a direção da aresta é obtida através da direção do vetor normal a ela através da Equação , 5 x +157, 5 aresta y α norma da aresta (vetor gradiente) 22, 5 +22, 5 Figura 3.13: Intervalo de valores mostrando um α para uma aresta horizontal. Assumindo que d 1, d 2, d 3 e d 4 indicam as quatro direções (horizontal, 45, vertical e +45 ) possíveis para uma aresta 3 3. O esquema de supressão para esse caso consiste em: 17

21 3.2 Algoritmo de Canny Encontrar a direção d k que está mais próxima de α(x, y); Se M(x, y) é menor a pelo menos um dos pixels de sua vizinhança (d k ), então g n (x, y) = ocasionando uma supressão, caso contrário g n (x, y) = M(x, y). O g n (x, y) citado anteriormente é a imagem com a supressão de não máximos ou seja, g n (x, y) é a imagem com as bordas afinadas. A seguir, é necessário fazer a limiarização da imagem g n (x, y) para que sejam removidos os falsos pixels da aresta. Um modo simples de fazer essa operação, é definir um valor (chamado de limiar) e fazer com que todos os valores de intensidade abaixo desse valor sejam. Se o valor do limiar for muito baixo, haverão locais onde vão existir arestas falsas, as chamadas de falsos positivos. Por outro lado se o valor do limiar for muito alto, haverá o surgimento de bordas chamadas de falsos negativos. Para melhorar a limiarização, o método de Canny faz uso de uma técnica chamada de limiarização por histerese, que utiliza dois limiares, um alto T H e um baixo T L. A operação de limiarização de Canny pode ser visualizada utilizando a criação de duas outras imagens: e g nh (x, y) = g n (x, y) T H (3.22) g nl (x, y) = g n (x, y) T L (3.23) onde no começo tanto g nh quanto g nl irá ter apenas valores e, após a limiarização, g nh terá uma quantidade de pixels zero menor do que g nl, porém, todos os pixels que forem diferentes de zero em g nh serão adicionados a imagem g nl porque a última imagem será formada com um limiar mais baixo ainda: g nl (x, y) = g nl (x, y) g nh (x, y) (3.24) Depois de feitas as operações de limiarização, os pixels poderão ser classificados como fortes e fracos. Todos os pixels fortes de g nh (x, y) são marcados como pixels verdadeiros da aresta. As arestas mais longas, seguem o seguinte procedimento: 1. Localizar na borda da imagem g nh o próximo pixel p a ser revisado; 2. Marcar como pixels válidos da aresta todos os pixels fracos em g nl que estão conectados a p usando por exemplo, conectividade-8; 3. Se os pixels diferentes de zero em g nh foram revisados, então siga para a etapa seguinte, caso contrário, vá para a etapa 1; 4. Atribuir zero aos pixels de arestas inválidos em g nl. Ao fim de todo o processo citado acima, a imagem final é formada passando para g nh todos os pixels diferentes de zero em g nl. Mesmo ao termos usado duas imagens adicionais (g nh e g nl ) para entender a limiarização por histerese, na prática o algoritmo pode ser aplicado durante o processo de supressão de não máxima diretamente na imagem g n, formando então uma lista dos pixels fracos e fortes conectados entre si. Assim, o algoritmo de detecção de arestas de Canny pode ser simplificado nos seguintes passos: 18

22 3.2 Algoritmo de Canny 1. Leitura da imagem I a ser processada; 2. Criação da máscara gaussiana de uma dimensão, e suavizar a imagem com essa máscara; 3. Fazer o cálculo da magnitude do gradiente e dos ângulos das imagens; 4. Fazer a aplicação de supressão de não máxima na imagem resultante do passo anterior; 5. Aplicar a limiarização (thresholding) utilizando duas imagens e depois fazer a análise de conectividade para detectar as arestas. Apesar de o algoritmo de supressão de não máxima afinar as arestas, ao final deste processo ainda podem existir arestas que possuem uma largura maior que um pixel. Então, é comum o uso de algum algoritmo de afinamento, thinning, para que todas as arestas tenham uma largura de apenas um pixel. Como já discutimos, a suavização da imagem de entrada deve ser feita com uma máscara gaussiana de tamanho n n. Para estimar o tamanho de n podemos usar o método discutido no algoritmo de Marr-Hildreth, ou seja, utilizar a mascara de filtragem fruto da amostragem gerada pela Equação 3.17, e garantir que n seja o menor número inteiro ímpar maior ou igual a 6σ que irá fornecer uma total capacidade de suavização do filtro gaussiano. No algoritmo implementado, após a leitura da imagem é pedido um valor para σ que será usado para definir o tamanho da máscara gaussiana que será usada. Para valores pequenos de σ o tamanho da máscara será próximo de zero, mas o próprio algoritmo irá determinar o melhor tamanho necessário para a máscara. Serão criadas outras duas máscaras que serão baseadas na derivada da gaussiana em relação a x, chamaremos de G x e em relação a y, chamaremos de G y. O próximo passo do algoritmo, é filtrar a imagem I com a gaussiana e separá-la em duas outras imagens, uma contendo a gaussiana na direção x, chamaremos de I x, e outra na direção y que chamaremos de I y. Em seguida é feita a convolução das imagens I x e I y com a derivada da gaussiana, G x e G y, respectivamente. As imagens resultantes dessa convolução serão chamadas de I x e I y. Agora será calculado a magnitude M do gradiente, em cada pixel (x, y) das imagens I x e I y com a seguinte equação: M(x, y) = I x(x, y) 2 + I y(x, y) 2 (3.25) O valor de M será grande se o pixel analisado for um pixel de aresta, caso contrário ele terá um valor pequeno, uma limiarização na imagem resultante da convolução com M é feita baseando-se parcialmente na direção do gradiente de cada pixel. A idéia básica é que cada pixel tenha uma direção associada a si e, sendo um pixel de aresta, a magnitude do gradiente deve ser maior que a magnitude dos pixels que ficam dos dois lados da aresta. A etapa final é a supressão de não máximos, onde os pixels que são máximo local serão removidos. O resultado da aplicação do algoritmo de Canny que discutimos ao longo desta seção, fizemos o teste na Figura 3.14(a) e, como imagem resultante obtivemos a Figura 3.14(b). Esta imagem também foi processada pelo sistema desenvolvido. Para os testes, utilizamos os parâmetros: σ = 1, limiar inferior = e limiar superior = 1. 19

23 3.3 Algoritmo de Shen e Castan (a) Imagem original. (b) σ = 1; limiar inferior = ; limiar superior = 1 Figura 3.14: Resultado obtido com o algoritmo de Canny. 3.3 Algoritmo de Shen e Castan O detector de arestas de Canny definiu uma otimização levando em consideração um conjunto específico de critérios. Mesmo que esses critérios pareçam razoáveis, não há razões para pensar que eles são os únicos. Isto significa que o conceito de ótimo é relativo, então é possível a existência de um detector de arestas melhor do que o de Canny em algumas circunstâncias. Shen e Castan concordam com Canny sobre a forma geral de um detector de arestas: uma convolução com um núcleo de suavização, seguido por uma busca pelos pixels da aresta. No entanto, sua análise resulta em uma forma diferente de otimização, isto é, eles sugerem uma redução do critério infinito normalizado, a uma dimensão: C 2 n = 4 f 2 (x)dx f 4 () f 2 (x)dx (3.26) Em outras palavras, a função que maximiza C n é o filtro ótimo de suavização para um detector de arestas. O desenvolvimento do filtro de Shen e Castan resultou em algo que foi chamado de Infinite Symmetric Exponential Filter ou simplesmente ISEF, onde a função f é dada pela Equação f(x) = p 2 e p x (3.27) Shen e Castan afirmam que este filtro oferece uma melhor relação sinal-ruído, e portanto conseguem uma melhor localização. Isso poderia ocorrer pelo fato de que a implementação do algoritmo de Canny aproxima seu filtro ótimo pela derivada de uma gaussiana, quando é usado o filtro ótimo diretamente, ou poderia ser devido a maneira com que os critérios de otimização são refletidos na realidade. Por outro lado, eles não abordam o critério de respostas múltiplas, e como resultado é possível que seu método crie resultados falsos na presença de ruídos e bordas turvas. Para uma abordagem em duas dimensões, o ISEF é dado pela Equação f(x, y) = a e p( x + y ) (3.28) 2

24 3.3 Algoritmo de Shen e Castan A Equação 3.28, mostrada anteriormente, pode ser aplicada a uma imagem da mesma maneira que a derivada de um filtro gaussiano, com o filtro unidimensional na direção x e depois na direção y. No entanto Shen e Castan deram um passo a mais na realização de seus filtros, eles usaram vários filtros recursivos de uma dimensão. A função do filtro f mostrada em 3.28 é uma função real e contínua. Ela pode ser discretizada para a Equação 3.29 onde o resultado agora é normalizado também. (1 b)b i + j f[i, j] = (3.29) 1 + b Para envolver uma imagem com este filtro, primeiro é feita uma filtragem recursiva na direção x. Nas equações 3.31 e 3.31, x 1 e x 2 correspondem as duas iterações feitas na direção x, que ao serem somadas resultam em x[i, j], que mostramos na Equação x 1 [i, j] = 1 b 1 + b I[i, j] + bx 1[i, j 1], j = 1... N, i = 1... M (3.3) x 2 [i, j] = b 1 b 1 + b I[i, j] + bx 1[i, j + 1], j = N... 1, i = 1... M (3.31) com as seguintes condições de limites: x[i, j] = x 1 [i, j] + x 2 [i, j + 1] (3.32) I[i, ] = x 1 [i, ] = x 2 [i, M + 1] = Agora a filtragem é feita na direção y, assim como fizemos anteriormente para a direção x, onde neste caso a soma de y 1 e y 2, mostrados nas equações 3.33 e 3.34 respectivamente, irá ter como resultado final y, que ilustramos na Equação y 1 [i, j] = 1 b 1 + b I[i, j] + by 1[i 1, j], i = 1... M, j = 1... N (3.33) y 2 [i, j] = b 1 b 1 + b I[i, j] + by 1[i + 1, j], i = N... 1, j = 1... N (3.34) y[i, j] = y 1 [i, j] + y 2 [i + 1, j] (3.35) para o caso da filtragem na direção y também há restrições sendo elas: I[, j] = y 1 [, j] = y 2 [N + 1, j] = O uso de filtragens recursivas acelera significativamente a convolução. O algoritmo de Shen e Castan, para efeito de testes, foi aplicado na Imagem 3.15(a). O resultado desta imagem após o seu processamento é ilustrado na Imagem 3.15(b). 21

25 3.3 Algoritmo de Shen e Castan (a) Imagem original. (b) Imagem processada. Figura 3.15: Resultado obtido com o algoritmo de Shen e Castan. 22

26 Ambiente de Desenvolvimento Capítulo 4 O protótipo de um sistema de processamento de imagens, com foco inicial nos algoritmos de detecção de arestas, foi desenvolvido durante o estudo dos métodos que discutimos no decorrer deste documento. Vamos fazer uma explicação do porque termos usado determinadas bibliotecas e linguagem de programação. Iremos comentar sobre cada um desses itens ressaltando seus pontos positivos e sua usabilidade no cenário mundial. Logo após o comentário sobre as ferramentas utilizadas, falaremos sobre o protótipo do sistema que desenvolvemos, mostrando cada parte da sua interface juntamente com as funções que foram implementadas. 4.1 Ferramentas Utilizadas O protótipo foi desenvolvido utilizando a linguagem C++, pois ela oferece uma certa robustez e confiabilidade nos algoritmos desenvolvidos. Esta linguagem também nos proporciona a utilização das técnicas de orientação a objetos, facilitando a modularização do sistema e oferecendo uma melhor legibilidade do código. Além desses pontos fortes não podemos deixar de citar alguns outros como: simples acesso ao baixo nível, caso seja necessário trabalhar a nível de bits; vasta biblioteca padrão, o C++ possui em seu núcleo a biblioteca STL 1 (Standard Template Library), que deixa a disposição do programador uma grande quantidade de estruturas de dados, como listas encadeadas e filas, além de métodos para manipulá-las. Utilizamos também a biblioteca Qt 2 para o desenvolvimento de toda a interface do protótipo, mantendo uma uniformidade na aparência onde quer que o sistema seja executado. Também a utilizamos para facilitar a manipulação dos pixels das imagens a serem processadas, mantendo um certo alto nível de desenvolvimento pois, caso contrário, teríamos que manipulá-los em baixo nível, ou seja, a nível de bits. Ainda, a Qt proporcionou uma facilidade única de manipulação das imagens independente de quais formatos estaríamos trabalhando, assim, o nosso sistema pode atuar em cima dos principais formatos de imagem do mercado atual como: JPG, PNG, BMP, GIF e outros. Mas a Qt vai muito além do uso que fizemos, a biblioteca possui mais de 8 classes com o objetivo de proporcionar uma ambiente de fácil aprendizado e uso para a construção de interfaces gráficas ricas e intuitivas, assim como a manipulação de tipos abstratos dados sem que o programador precise se desprender do foco principal, que é o desenvolvimento da aplicação. Esta bibli

27 4.1 Ferramentas Utilizadas oteca é nativamente escrita em C++, mas ela possui algumas versões para uso em outras linguagens como Python (PyQt, PySide) e Java (Qt Jambi), por exemplo. Além disso Qt é a base do ambiente desktop gráfico KDE, utilização esta, que confirma a confiabilidade da biblioteca. Uma outra biblioteca que utilizamos foi a OpenCV 3. Esta biblioteca foi inicialmente desenvolvida pela Intel e depois doada à comunidade, onde esta agora é desenvolvida pelos mais diversos programadores espalhados pelo mundo. A OpenCV é específica para o ramo da Visão Computacional, possuindo vários módulos para a manipulação de imagens, vídeos além de estruturas de dados e algoritmos para álgebra linear. Assim como a Qt, a OpenCV foi desenvolvida na linguagem C++, mas também existem versões para as linguagens Java, Python e Visual Basic. Seu uso em nosso sistema foi limitado inicialmente a apenas dois propósitos: captura de imagens via webcam e uso da técnica de detecção de arestas de Canny. Como o algoritmo de Canny se mostra bastante eficaz para a maioria das situações, a OpenCV traz somente ele consigo. A captura de imagens através de webcams é uma tarefa um tanto complicada para os programadores, sendo assim, é comum a busca por mecanismos que facilitem esta tarefa, e foi onde a OpenCV nos ajudou. Gostaríamos de ressaltar que o pouco uso que fizemos da da biblioteca, não reflete de modo algum em sua usabilidade e utilidade. Como pretendemos continuar este projeto e ampliá-lo, será de extrema importância a incorporação desta biblioteca. Ambas as bibliotecas, Qt e OpenCV, são código aberto e de uso livre, isso quer dizer que qualquer usuário poderá utilizá-las para o propósito que desejar, sendo este comercial, acadêmico ou pessoal, sem que necessite pagar qualquer quantia por isso. Vale a pena dizer que é comum o uso de bibliotecas no desenvolvimento de qualquer software. Esta prática ajuda o desenvolvedor de duas maneiras: facilita o desenvolvimento da aplicação, pois ele estará usando códigos (das bibliotecas) que são otimizados para o propósito que foram desenvolvidas; e faz com o que o desenvolvedor mantenha sua atenção apenas no propósito da aplicação, então ele não precisa se preocupar em coisas como, por exemplo, implementar uma lista encadeada, se necessitar de tal estrutura. E foi com esses dois objetivos em mente que optamos pelo uso dessas bibliotecas. Isso sem contar que são ferramentas usadas em larga escala pela indústria de software, fator que garante a confiabilidade do uso das mesmas. 4.2 Protótipo Desenvolvido No protótipo que desenvolvemos adicionamos os algoritmos que foram estudados e, adicionamos as entradas em seu menu principal, para facilitar o acesso aos mesmos. O sistema se constitui de uma GUI (Graphical User Interface), onde a iteração com usuário é facilitada. Assim, o usuário carrega no sistema a imagem que deseja processar, acessa a função que deseja no menu, e por fim especifica alguns parâmetros a serem utilizados pelo algoritmo. A própria interface já possui alguns parâmetros pré-definidos para auxiliar o usuário, se este não souber qual valor colocar. Na Figura 4.1 mostramos a janela principal. Poucos foram os recursos incorporados ao sistema nesse primeiro momento. Como vamos continuar o estudo, no decorrer do tempo, mais funções serão implantadas. Vale lembrar que o modo como o sistema foi feito, altamente modularizado, possibilita que outros alunos que estejam desenvolvendo seu Trabalho de Conclusão de Curso (TCC), na área de processamento de imagens, possam utilizar esse protótipo como base para a implementação de seus próprios algoritmos. Bastando que para isso apenas adicionem a respectiva classe (classe é um módulo na programação orientada a objetos) ao sistema, e façam as devidas entradas no menu principal ligando-o aos algoritmos. O mesmo protótipo

28 4.2 Protótipo Desenvolvido Figura 4.1: Interface do protótipo do sistema. também pode servir como ferramenta base para alunos da disciplina de Processamento de Imagens, que poderão usá-lo como uma aplicação básica, que manipula imagens, onde poderão ser adicionados os códigos desenvolvidos, na disciplina, para se certificarem de sua aplicação. Na interface principal, vamos comentar as suas partes e divisões, que são ilustradas na Figura 4.2, com base nesta figura vamos, fazer as devidas explicações a seguir: Menu principal (Retângulo 1): É onde temos a mais completa quantidade de recursos do sistema. É neste menu que podemos acessar os algoritmos implementados entre outras funções básicas como abrir e salvar imagens; Barra de ferramentas (Retângulo 2): Neste local temos alguns poucos, apenas 5, recursos do sistema. Estes mesmos recursos poderão ser acessados pelo menu principal, mas estão dispostos desta forma para facilitar o acesso. Da esquerda para a direita, os botões correspondem as funções: Abrir imagem, com esta função podemos abrir uma imagem qualquer para que o sistema possa trabalhar nela; Salvar imagem, possibilita salvar uma imagem que foi previamente processada; Desfazer, desfaz qualquer alteração que tenha ocorrido na imagem original; Sobre, mostra uma janela com algumas informações do sistema; e Sair, fecha a aplicação; Painel de informações(retângulo 3): Aqui é mostrada uma miniatura da imagem original para que o usuário possa comparar a imagem processada com a que foi carregada no sistema. Ainda neste painel tem o botão capturar webcam, que ao ser clicado, dispara um contador regressivo de 5 segundos. Durante o tempo da contagem é feita a captura do sinal da webcam, permitindo ao usuário inserir no sistema de uma imagem que não está em seu computador. Ao término da contagem, o último frame (quadro) é capturado, possibilitando o seu processamento como se fosse uma imagem qualquer. Ainda nesta área mostramos o tamanho da imagem em pixels. 25

29 4.2 Protótipo Desenvolvido Figura 4.2: Partes da interface principal. Pretendemos futuramente adicionar mais recursos a este painel ao adicionar mais informações que poderá ser retirada da imagem de entrada; Imagem processada(retângulo 4): Este é o local onde é mostrada inicialmente a imagem que foi carregada. Todo e qualquer processamento efetuado, será imediatamente visualizado neste quadro. As entradas existentes no menu principal, são essencialmente as mais comuns para qualquer sistema computacional de processamento de imagens. A diferença está no menu ferramentas, que é mostrado em detalhe na Figura 4.3, onde temos as entradas referentes aos algoritmos implementados. Agora, vamos explicar cada uma das funções mostradas: Detecção de Arestas (Figura 4.3(a)): Através desta entrada podemos acessar os algoritmos de Canny, Shen-Castan e Marr-Hildreth, ambos foram alvo deste relatório. Ao escolher qualquer um dessas entradas, será mostrado ao usuário uma janela referente aos parâmetros necessários para cada algoritmo. A mesma janela que pede tal(is) valor(es) já possui um valor padrão para o caso do usuário não saber qual valor inserir, bastando então clicar me Ok ; Algoritmos (Figura 4.3(b)): Nessa parte do menu, foi implementado apenas um algoritmo de medição de ruídos, que quando selecionado, irá analisar a imagem aberta, e mostrará uma janela com os valores da média e desvio padrão encontrados na imagem e no ruído; Filtros (Figura 4.3(c)): A parte de filtros é composta por apenas duas entradas. Uma é chamada de Tons de Cinza, que quando ativada deixa a imagem (colorida) em tons de cinza. A outra entrada, chamada de Sobel, é para a aplicação do filtro de Sobel Podendo ainda aplicar este filtro apenas na direção x, onde são destacadas 26

30 4.2 Protótipo Desenvolvido (a) Detecção de Arestas. (b) Algoritmos. (c) Filtros. (d) Efeitos. Figura 4.3: Entradas do menu Ferramentas. as linhas na horizontal, ou apenas na direção y, onde o destaque são para linhas verticais ou ainda nas duas coordenadas, ressaltando assim as linhas horizontais e verticais ao mesmo tempo; Efeitos (Figura 4.3(d)): Por fim temos a entrada Negativo no menu de efeitos. Esta entrada foi incluída por se tratar apenas de um comando da biblioteca Qt, apenas isso. No decorrer do estudo, ao ler a documentação da biblioteca, nos deparamos com um método que ao ser aplicado em uma imagem é feita a inversão dos valores RGB de cada pixel, causando um efeito de negativo. 27

DETECÇÃO DE BORDAS EM IMAGENS DIGITAIS

DETECÇÃO DE BORDAS EM IMAGENS DIGITAIS DETECÇÃO DE BORDAS EM IMAGENS DIGITAIS Helder C. R. De Oliveira, Marco A. Piteri, Aylton Pagamisse Departamento de Matemática, Estatística e Computação, FCT, UNESP 19.060-900, Presidente Prudente, SP heldercro@gmail.com;

Leia mais

Processamento Digital de Imagens

Processamento Digital de Imagens Ciência da Computação Processamento Digital de Imagens Tópicos Detecção de Pontos Isolados Detecção de Linhas Prof. Sergio Ribeiro 2 Operações lógicas e aritméticas orientadas a vizinhança utilizam o conceito

Leia mais

Processamento digital de imagens

Processamento digital de imagens Processamento digital de imagens Agostinho Brito Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte 6 de outubro de 2016 Segmentação de imagens A segmentação

Leia mais

TELEVISÃO DIGITAL LEEC 2006/2007

TELEVISÃO DIGITAL LEEC 2006/2007 TELEVISÃO DIGITAL LEEC 2006/2007 DETECÇÃO DE CONTORNOS GRUPO 6: Hugo Miguel Rodrigues Gonçalves Dinis Guedes Afonso ee01171 ee01148 Introdução Este trabalho tem como objectivo a implementação de métodos

Leia mais

PMR2560 Visão Computacional Detecção de bordas. Prof. Eduardo L. L. Cabral

PMR2560 Visão Computacional Detecção de bordas. Prof. Eduardo L. L. Cabral PMR56 Visão Computacional Detecção de bordas Prof. Eduardo L. L. Cabral Objetivos Processamento de imagens: Características; Detecção de bordas. Características Tipos de características: Bordas; Cantos;

Leia mais

Filtros espaciais. Processamento e Recuperação de Imagens Médicas. Prof. Luiz Otavio Murta Jr. Depto. De Computação e Matemática (FFCLRP/USP)

Filtros espaciais. Processamento e Recuperação de Imagens Médicas. Prof. Luiz Otavio Murta Jr. Depto. De Computação e Matemática (FFCLRP/USP) Processamento e Recuperação de Imagens Médicas Prof. Luiz Otavio Murta Jr. Depto. De Computação e Matemática (FFCLRP/USP) 1 Propriedades Operadores de suavização os elementos da máscara são positivos e

Leia mais

Processamento de Imagens COS756 / COC603

Processamento de Imagens COS756 / COC603 Processamento de Imagens COS756 / COC603 aula 07 - deteção de características de baixo-nível (low-level feature detection) Antonio Oliveira Ricardo Marroquim 1 / 35 aula de hoje feature detection overview

Leia mais

Quadro Segmentação de Imagens

Quadro Segmentação de Imagens UNIVERSIDADE DE SÃO PAULO - SÃO CARLOS INSTITUTO DE CIÊNCIAS Processamento de Imagens - SCC0251 2013/1 Prof. Dr. Mario Gazziro Monitor PAE: Vinicius Ruela Pereira Borges - viniciusrpb@icmc.usp.br 1 Método

Leia mais

SEL-0339 Introdução à Visão Computacional. Aula 5 Segmentação de Imagens

SEL-0339 Introdução à Visão Computacional. Aula 5 Segmentação de Imagens Departamento de Engenharia Elétrica - EESC-USP SEL-0339 Introdução à Visão Computacional Aula 5 Segmentação de Imagens Prof. Dr. Marcelo Andrade da Costa Vieira Prof. Dr. Adilson Gonzaga Segmentação de

Leia mais

T4.1 Processamento de Imagem

T4.1 Processamento de Imagem T4.1 Processamento de Imagem Proc. Sinal e Imagem Mestrado em Informática Médica Miguel Tavares Coimbra Resumo 1. Manipulação ponto a ponto 2. Filtros espaciais 3. Extracção de estruturas geométricas 4.

Leia mais

CARACTERÍSTICAS DE IMAGENS: PONTOS E SUPERFÍCIES

CARACTERÍSTICAS DE IMAGENS: PONTOS E SUPERFÍCIES CARACTERÍSTICAS DE IMAGENS: PONTOS E SUPERFÍCIES O que são? CARACTERÍSTICAS DE IMAGENS (Image Features) o Propriedades Globais de uma imagem, ou de parte dela (característica global). Por exemplo: Médias

Leia mais

Capítulo III Processamento de Imagem

Capítulo III Processamento de Imagem Capítulo III Processamento de Imagem Proc. Sinal e Imagem Mestrado em Informática Médica Miguel Tavares Coimbra Resumo 1. Manipulação ponto a ponto 2. Filtros espaciais 3. Extracção de estruturas geométricas

Leia mais

Processamento digital de imagens

Processamento digital de imagens Processamento digital de imagens Agostinho Brito Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte 3 de março de 2016 Transformação e filtragem de imagens

Leia mais

Aula 5 - Segmentação de Imagens

Aula 5 - Segmentação de Imagens Aula 5 - Segmentação de Imagens Parte 1 Prof. Adilson Gonzaga 1 Segmentação Agrupamento de partes de uma imagem em unidades homogêneas relativamente a determinadas características. Segmentação é o processo

Leia mais

TE073 PDS II Programa de Graduação em Engenharia Elétrica

TE073 PDS II Programa de Graduação em Engenharia Elétrica TE073 PDS II Programa de Graduação em Engenharia Elétrica Prof. Alessandro Zimmer zimmer@eletrica.ufpr.br www.eletrica.ufpr.br/~zimmer/te073 Processamento Digital de Imagens PDI: Segmentação Os algoritmos

Leia mais

FILTRAGEM DE IMAGEM NO DOMÍNIO ESPACIAL (Operações aritméticas orientadas à vizinhança)

FILTRAGEM DE IMAGEM NO DOMÍNIO ESPACIAL (Operações aritméticas orientadas à vizinhança) PROCESSAMENTO DE IMAGEM #5 Operações Aritméticas Orientadas à Vizinhanças Filtragem no Domínio Espacial (Máscaras) Máscaras de suavização (média e mediana) e aguçamento (laplaciano) Correlação x Convolução

Leia mais

T4 Processamento de Imagem

T4 Processamento de Imagem T4 Processamento de Imagem Proc. Sinal e Imagem Mestrado em Informática Médica Hélder Filipe Pinto de Oliveira Resumo 1. Manipulação ponto a ponto 2. Conetividade 3. Filtros espaciais 4. Extração de estruturas

Leia mais

Simulação Gráfica. Segmentação de Imagens Digitais. Julio C. S. Jacques Junior

Simulação Gráfica. Segmentação de Imagens Digitais. Julio C. S. Jacques Junior Simulação Gráfica Segmentação de Imagens Digitais Julio C. S. Jacques Junior Segmentação Subdivide uma imagem em suas partes ou objetos constituintes. O nível até o qual essa subdivisão deve ser realizada

Leia mais

FILTROS NO DOMÍNIO ESPACIAL. Nielsen Castelo Damasceno

FILTROS NO DOMÍNIO ESPACIAL. Nielsen Castelo Damasceno FILTROS NO DOMÍNIO ESPACIAL Nielsen Castelo Damasceno Gerando máscaras de filtragem espacial Algumas vezes pode ser útil expressar a soma de produtos como: = + + = = w são os coeficientes do filtros. z

Leia mais

Universidade Federal do Rio de Janeiro - IM/DCC & NCE

Universidade Federal do Rio de Janeiro - IM/DCC & NCE Universidade Federal do Rio de Janeiro - IM/DCC & NCE Processamento de Imagens Segmentação Antonio G. Thomé thome@nce.ufrj.br Sala AEP/133 Conceituação Segmentação é uma tarefa básica no processo de análise

Leia mais

Processamento de Imagem. Filtragem no Domínio Espacial Professora Sheila Cáceres

Processamento de Imagem. Filtragem no Domínio Espacial Professora Sheila Cáceres Processamento de Imagem Filtragem no Domínio Espacial Professora Sheila Cáceres Filtragem A filtragem de imagens pode ser realizada no domínio do espaço e da frequência Operadores de filtragem são classificados

Leia mais

TE073 PDS II Programa de Graduação em Engenharia Elétrica

TE073 PDS II Programa de Graduação em Engenharia Elétrica TE073 PDS II Programa de Graduação em Engenharia Elétrica Prof. Alessandro Zimmer zimmer@eletrica.ufpr.br www.eletrica.ufpr.br/~zimmer/te073 Processamento Digital de Imagens PDI: Segmentação Os algoritmos

Leia mais

Processamento Digital de Imagens Aula 04

Processamento Digital de Imagens Aula 04 exatasfepi.com.br Processamento Digital de Imagens Aula 04 André Luís Duarte A sabedoria oferece proteção, como o faz o dinheiro, mas a vantagem do conhecimento é esta: a sabedoria preserva a vida de quem

Leia mais

Filtros espaciais (suavizaçào)

Filtros espaciais (suavizaçào) Processamento de Imagens Médicas Filtros espaciais (suavizaçào) Prof. Luiz Otavio Murta Jr. Informática Biomédica Depto. de Física e Matemática (FFCLRP/USP) 1 Necessidade de pré-processamento 2 Propriedades

Leia mais

Filtragem. pixel. perfil de linha. Coluna de pixels. Imagem. Linha. Primeiro pixel na linha

Filtragem. pixel. perfil de linha. Coluna de pixels. Imagem. Linha. Primeiro pixel na linha Filtragem As técnicas de filtragem são transformações da imagem "pixel" a "pixel", que dependem do nível de cinza de um determinado "pixel" e do valor dos níveis de cinza dos "pixels" vizinhos, na imagem

Leia mais

SEL Visão Computacional. Aula 2 Processamento Espacial

SEL Visão Computacional. Aula 2 Processamento Espacial Departamento de Engenharia Elétrica - EESC-USP SEL-5895 - Visão Computacional Aula 2 Processamento Espacial Prof. Dr. Adilson Gonzaga Prof. Dr. Evandro Linhari Rodrigues Prof. Dr. Marcelo Andrade da Costa

Leia mais

SEL-0339 Introdução à Visão Computacional. Aula 2 Processamento Espacial (Parte 2)

SEL-0339 Introdução à Visão Computacional. Aula 2 Processamento Espacial (Parte 2) Departamento de Engenharia Elétrica - EESC-USP SEL-0339 Introdução à Visão Computacional Aula 2 Processamento Espacial (Parte 2) Prof. Dr. Marcelo Andrade da Costa Vieira Prof. Dr. Adilson Gonzaga mvieira@sc.usp.br

Leia mais

Descritores de Imagens

Descritores de Imagens Descritores de Imagens André Tavares da Silva PPGCA/UDESC Outubro de 2017 André Tavares da Silva (PPGCA/UDESC) Descritores de Imagens Outubro de 2017 1 / 18 Descritores Locais e Frameworks SIFT SURF Viola-Jones

Leia mais

Fundamentos da Computação Gráfica

Fundamentos da Computação Gráfica Fundamentos da Computação Gráfica Trabalho 2 Visão. Detecção de cantos. Manuel Alejandro Nodarse Moreno (1322198) Introdução. Detecção de cantos é uma abordagem utilizada em sistemas de visão computacional

Leia mais

Respostas do Teste de Analise de Imagens :

Respostas do Teste de Analise de Imagens : Respostas do Teste de Analise de Imagens - 2004: 1Diga com suas palavras o que é: (Valor total da questão: 12) Filtragem passa alta (valor deste item até 0,3) - importante falar que apesar do nome ser

Leia mais

Operações Pontuais. 1 operando. 2 operandos. Processamento e Análise de Imagem - A. J. Padilha - v ac

Operações Pontuais. 1 operando. 2 operandos. Processamento e Análise de Imagem - A. J. Padilha - v ac Operações Pontuais 1 operando T OP 2 operandos Pré-Processamento - 1 Operações Pontuais Nas operações pontuais, cada ponto da imagem-resultado - g(i,j) - é obtido por uma transformação T do ponto de coordenadas

Leia mais

2 SIFT (Scale Invariant Feature Transform)

2 SIFT (Scale Invariant Feature Transform) SIFT (Scale Invariant Feature Transform) O SIFT é um algoritmo de visão computacional proposto e publicado pelo pesquisador David Lowe (Lowe, 1999), professor do departamento de Ciência da Computação na

Leia mais

Processamento de Malhas Poligonais

Processamento de Malhas Poligonais Processamento de Malhas Poligonais Tópicos Avançados em Computação Visual e Interfaces I Prof.: Marcos Lage www.ic.uff.br/~mlage mlage@ic.uff.br Conteúdo: Notas de Aula Curvas 06/09/2015 Processamento

Leia mais

Compressão de Imagens Usando Wavelets: Uma Solução WEB para a Codificação EZW Utilizando JAVA. Utilizando JAVA. TCC - Monografia

Compressão de Imagens Usando Wavelets: Uma Solução WEB para a Codificação EZW Utilizando JAVA. Utilizando JAVA. TCC - Monografia Compressão de Imagens Usando Wavelets: Uma Solução WEB para a Codificação EZW Utilizando JAVA TCC - Monografia Wanderson Câmara dos Santos Orientador : Prof. Dr. Luiz Felipe de Queiroz Silveira 1 Departamento

Leia mais

LOM Teoria da Elasticidade Aplicada

LOM Teoria da Elasticidade Aplicada Departamento de Engenharia de Materiais (DEMAR) Escola de Engenharia de orena (EE) Universidade de São Paulo (USP) OM3 - Teoria da Elasticidade Aplicada Parte 4 - Análise Numérica de Tensões e Deformações

Leia mais

Aula 7 - Representação e Descrição de Estruturas Bi-dimensionais. Prof. Adilson Gonzaga

Aula 7 - Representação e Descrição de Estruturas Bi-dimensionais. Prof. Adilson Gonzaga Aula 7 - Representação e Descrição de Estruturas Bi-dimensionais Prof. Adilson Gonzaga 1 Introdução Objetos ou Segmentos são representados como uma coleção de pixels em uma imagem. Para o reconhecimento

Leia mais

Processamento Digital de Imagens

Processamento Digital de Imagens 1 Ciência da Computação Processamento Digital de Imagens Prof. Sergio Ribeiro Tópicos Introdução Espectro Eletromagnético Aquisição e de Imagens Sensoriamento Remoto 2 Introdução Espectro Eletromagnético

Leia mais

Processamento Digital de Imagens

Processamento Digital de Imagens Ciência da Computação Processamento Digital de Imagens Prof. Sergio Ribeiro Tópicos Introdução Espectro Eletromagnético Aquisição e Digitalização de Imagens Efeitos da Digitalização Digitalização Sensoriamento

Leia mais

Processamento de Imagens Marcia A. S. Bissaco

Processamento de Imagens Marcia A. S. Bissaco Engenharia Biomédica Processamento de Imagens Marcia A. S. Bissaco 1 Exemplos filtros Média Mediana Passa_B Passa_A Borda_H Borda_V Sobel_Y Sobel_X Oliveira, Henrique J. Quintino (UMC-SP), 2 Media Mediana

Leia mais

Tracking de movimentos usando marcadores circulares

Tracking de movimentos usando marcadores circulares UNIVERSIDADE FEDERAL DO RIO DE JANEIRO - COPPE INTRODUÇÃO AO PROCESSAMENTO DE IMAGENS Tracking de movimentos usando marcadores circulares Jéssica de Abreu DRE:114069619 Junho de 2014 1 INTRODUÇÃO Com a

Leia mais

APLICAÇÃO DE TÉCNICAS DE PROCESSAMENTO DE IMAGENS DIGITAIS EM IMAGENS GERADAS POR ULTRA-SOM

APLICAÇÃO DE TÉCNICAS DE PROCESSAMENTO DE IMAGENS DIGITAIS EM IMAGENS GERADAS POR ULTRA-SOM VIII ERMAC 8 o Encontro Regional de Matemática Aplicada e Computacional 0- de Novembro de 008 Universidade Federal do Rio Grande do Norte Natal/RN APLICAÇÃO DE TÉCNICAS DE PROCESSAMENTO DE IMAGENS DIGITAIS

Leia mais

Transformação de Imagens Digitais em Código CNC Aprimoradas com Redes Neurais Artificiais

Transformação de Imagens Digitais em Código CNC Aprimoradas com Redes Neurais Artificiais Transformação de Imagens Digitais em Código CNC Aprimoradas com Redes Neurais Artificiais Abstract. Jader Teixeira 1, Alex Vinícios Telocken 1 1 Universidade de Cruz Alta (UNICRUZ) jader033139@unicruz.edu.br,

Leia mais

Realce de imagens parte 2: ltragem espacial SCC5830/0251 Processamento de Imagens

Realce de imagens parte 2: ltragem espacial SCC5830/0251 Processamento de Imagens Realce de imagens parte 2: ltragem espacial SCC5830/0251 Processamento de Imagens Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2013/1 Moacir Ponti

Leia mais

UNIVERSIDADE ESTADUAL DO OESTE DO PARANÁ UNIOESTE CAMPUS UNIVERSITÁRIO DE CASCAVEL CURSO DE CIÊNCIA DA COMPUTAÇÃO LISTA DE EXERCÍCIOS

UNIVERSIDADE ESTADUAL DO OESTE DO PARANÁ UNIOESTE CAMPUS UNIVERSITÁRIO DE CASCAVEL CURSO DE CIÊNCIA DA COMPUTAÇÃO LISTA DE EXERCÍCIOS UNIVERSIDADE ESTADUAL DO OESTE DO PARANÁ UNIOESTE CAMPUS UNIVERSITÁRIO DE CASCAVEL CURSO DE CIÊNCIA DA COMPUTAÇÃO Disciplina: Processamento de Imagens Digitais Prof o : Adair Santa Catarina 1 Considerando

Leia mais

Processamento Digital de Imagens. Análise de Imagens

Processamento Digital de Imagens. Análise de Imagens Processamento Digital de Imagens Análise de Imagens Eduardo A. B. da Silva Programa de Engenharia Elétrica - COPPE/UFRJ Laboratório de Sinais, Multimídia e Telecomunicações eduardo@smt.ufrj.br Sergio L.

Leia mais

Filtragem linear. jorge s. marques, questão: como remover artefactos?

Filtragem linear. jorge s. marques, questão: como remover artefactos? Filtragem linear questão: como remover artefactos? redução de ruído como reduzir o ruído de uma imagem? ideia: substituir cada piel por uma média Jm,n = m+ k n+ k k + p= m kq= n k Ip,q k= k+ k+ k= filtro

Leia mais

2. Passos fundamentais para o processamento de imagens

2. Passos fundamentais para o processamento de imagens Filtro de Canny Jeverson Siqueira 1, Wallace Caldeira 1, Miguel Matrakas 1 1 Ciência da Computacão Faculdades Anglo Americano de Foz do Iguaçu (FAA) CEP: 85868-03 Foz do Iguaçu PR Brasil siqueira.jeverson@gmail.com,

Leia mais

MAT001 Cálculo Diferencial e Integral I

MAT001 Cálculo Diferencial e Integral I 1 MAT001 Cálculo Diferencial e Integral I GEOMETRIA ANALÍTICA Coordenadas de pontos no plano cartesiano Distâncias entre pontos Sejam e dois pontos no plano cartesiano A distância entre e é dada pela expressão

Leia mais

Processamento de Imagens

Processamento de Imagens Processamento de Imagens SCC0251 Pré-processamento Material baseado nos livros do Sonka e do Gonzalez http://www.icaen.uiowa.edu/~dip/lecture/lecture.html 1 2 Propriedades de uma Imagem digital Vizinhança

Leia mais

PMR2560 ELEMENTOS DE ROBÓTICA 2016 TRABALHO DE VISÃO COMPUTACIONAL CALIBRAÇÃO DE CÂMERAS E VISÃO ESTÉREO

PMR2560 ELEMENTOS DE ROBÓTICA 2016 TRABALHO DE VISÃO COMPUTACIONAL CALIBRAÇÃO DE CÂMERAS E VISÃO ESTÉREO PMR2560 ELEMENTOS DE ROBÓTICA 2016 TRABALHO DE VISÃO COMPUTACIONAL CALIBRAÇÃO DE CÂMERAS E VISÃO ESTÉREO Esse trabalho consiste de três partes. Na primeira parte do trabalho você vai calibrar duas câmeras

Leia mais

IDENTIFICAÇÃO DE MARCADORES DE PAVIMENTAÇÃO NA ORIENTAÇÃO DE CEGOS. André Zuconelli 1 ; Manassés Ribeiro 2

IDENTIFICAÇÃO DE MARCADORES DE PAVIMENTAÇÃO NA ORIENTAÇÃO DE CEGOS. André Zuconelli 1 ; Manassés Ribeiro 2 IDENTIFICAÇÃO DE MARCADORES DE PAVIMENTAÇÃO NA ORIENTAÇÃO DE CEGOS André Zuconelli 1 ; Manassés Ribeiro 2 INTRODUÇÃO As tecnologias assistivas têm a finalidade de auxiliar pessoas com deficiência a alcançar

Leia mais

Processamento Digital de Imagens

Processamento Digital de Imagens Ciência da Computação Processamento Digital de Imagens Prof. Sergio Ribeiro Tópicos Transformações de Intensidade Transformações Logarítmicas Comparação entre Diversas Técnicas 2 Transformações de Intensidade

Leia mais

Processamento de Imagem. Convolução Filtragem no Domínio da Frequência (Fourier) Professora Sheila Cáceres

Processamento de Imagem. Convolução Filtragem no Domínio da Frequência (Fourier) Professora Sheila Cáceres Processamento de Imagem Convolução Filtragem no Domínio da Frequência (Fourier) Professora Sheila Cáceres Lembrando Filtragem Correlação A correlação e a convolução sãos dois conceitos relacionados a filtragem.

Leia mais

Universidade Federal do Rio de Janeiro. Flávio Henrique Schuindt da Silva. Estimativa de Fluxo Ótico com o método de Lukas-Kanade

Universidade Federal do Rio de Janeiro. Flávio Henrique Schuindt da Silva. Estimativa de Fluxo Ótico com o método de Lukas-Kanade Universidade Federal do Rio de Janeiro Programa de Engenharia de Sistemas e Computação Introdução ao Processamento de Imagens Flávio Henrique Schuindt da Silva Estimativa de Fluxo Ótico com o método de

Leia mais

Dr. Sylvio Barbon Junior. Departamento de Computação - UEL. 1 o Semestre de 2015

Dr. Sylvio Barbon Junior. Departamento de Computação - UEL. 1 o Semestre de 2015 Introdução a Computação Gráfica [5COP100] Dr. Sylvio Barbon Junior Departamento de Computação - UEL 1 o Semestre de 2015 Assunto Aula 7 Filtros de Imagens Digitais 2 de 47 Sumário Conceitos Filtragem no

Leia mais

UMA VISÃO SOBRE O PROCESSAMENTO DE IMAGENS. Rogério Vargas DCET UESC Home page: rogerio.in

UMA VISÃO SOBRE O PROCESSAMENTO DE IMAGENS. Rogério Vargas DCET UESC Home page: rogerio.in UMA VISÃO SOBRE O PROCESSAMENTO DE IMAGENS Rogério Vargas DCET UESC Home page: rogerio.in Exemplo de aplicações: automação e visão artificial reconhecimento de caracteres análise de cromossomos veículos

Leia mais

Um Estudo das Técnicas de Obtenção de Forma a partir de Estéreo e Luz Estruturada para Engenharia

Um Estudo das Técnicas de Obtenção de Forma a partir de Estéreo e Luz Estruturada para Engenharia Um Estudo das Técnicas de Obtenção de Forma a partir de Estéreo e Luz Estruturada para Engenharia Aluno: Gabriel Malizia Orientador: Professor Marcelo Gattass Co-Orientador: Professor Paulo Cezar Carvalho

Leia mais

Descritores de Imagem

Descritores de Imagem Descritores de Imagem André Tavares da Silva 31 de março de 2014 1 Descritores de imagem (continuação) 1.1 Frameworks de detecção de objetos SIFT (scale-invariant features transform) (Lowe, 1999) SIFT

Leia mais

PRÁTICA 5 Prof. Dr. Evandro Luis Linhari Rodrigues

PRÁTICA 5 Prof. Dr. Evandro Luis Linhari Rodrigues PRÁTICA 5 Prof. Dr. Evandro Luis Linhari Rodrigues Além da solução usando Matlab, todos os exercícios deverão ser implementados também usando Python e OpenCV. Segmentação de Imagens Parte 1. 1) Detecção

Leia mais

5. Detecção de bordas

5. Detecção de bordas 5. Detecção de bordas Uma borda, também chamada de edgel, é definida como sendo uma mudança ou descontinuidade local na luminosidade de uma imagem. Classificação : métodos de realce / limiar ( enhancement

Leia mais

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

API para transformação de imagem em cartum utilizando plataforma ios. Acadêmico Christian Hess Orientador Dalton Solano dos Reis 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

Leia mais

Processamento de Imagens Filtragem Digital

Processamento de Imagens Filtragem Digital Filtragem Digital Consiste na aplicação de técnicas de transformação (operadores máscaras) com o objetivo de corrigir, suavizar ou realçar determinadas características de uma imagem dentro de uma aplicação

Leia mais

Derivadas Parciais Capítulo 14

Derivadas Parciais Capítulo 14 Derivadas Parciais Capítulo 14 DERIVADAS PARCIAIS Como vimos no Capítulo 4, no Volume I, um dos principais usos da derivada ordinária é na determinação dos valores máximo e mínimo. DERIVADAS PARCIAIS 14.7

Leia mais

Processamento de Imagens: fundamentos. Julio C. S. Jacques Junior

Processamento de Imagens: fundamentos. Julio C. S. Jacques Junior Processamento de Imagens: fundamentos Julio C. S. Jacques Junior juliojj@gmail.com Fronteiras do Processamento de Imagens Processamento de dados Dados / Informação Visão Computacional Computação Gráfica

Leia mais

SEL5886 Visão Computacional Prof. Dr. Marcelo Andrade da Costa Vieira

SEL5886 Visão Computacional Prof. Dr. Marcelo Andrade da Costa Vieira SEL5886 Visão Computacional Prof. Dr. Marcelo Andrade da Costa Vieira Prática 2 Processamento no Domínio do Espaço Instruções: Essa prática consiste de 12 exercícios (E_1 a E_12). Deve ser gerado um arquivo

Leia mais

Fundamentos de Processamento Gráfico. Aula 3. Introdução ao Processamento de Imagens. Profa. Fátima Nunes

Fundamentos de Processamento Gráfico. Aula 3. Introdução ao Processamento de Imagens. Profa. Fátima Nunes Fundamentos de Processamento Gráfico Aula 3 Introdução ao Processamento de Imagens Profa. Fátima Nunes AULA 3 / 1 Definições Sobre o pixel são definidas algumas relações básicas: vizinhança, conectividade,

Leia mais

4 Detecção de Silhueta

4 Detecção de Silhueta 4 Detecção de Silhueta No decorrer deste capítulo é proposto um modelo de detecção da silhueta da mão capaz de lidar com os erros da segmentação e ruídos na sua morfologia. Num primeiro passo são considerados

Leia mais

FILTROS ESPACIAIS PASSA-BAIXA

FILTROS ESPACIAIS PASSA-BAIXA UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL PROGRAMA DE PÓS-GRADUAÇÃO EM COMPUTAÇÃO CMP65 - INTRODUÇÃO AO PROCESSAMENTO DE IMAGENS PROFESSOR JACOB SCARCHANSKI FILTROS ESPACIAIS PASSA-BAIXA POR DANIEL NEHME

Leia mais

Processamento Digital de Imagens

Processamento Digital de Imagens Ciência da Computação Processamento Digital de Imagens Propriedades de Imagem Digital Prof. Sergio Ribeiro Tópicos Propriedades de uma Imagem Digital Vizinhança Conectividade Operações Lógicas e Aritméticas

Leia mais

Processamento Digital de Imagens

Processamento Digital de Imagens Ciência da Computação Processamento Digital de Imagens Propriedades de Imagem Digital Prof. Sergio Ribeiro Tópicos Propriedades de uma Imagem Digital Vizinhança e Aritméticas Efeitos de em Pixel a Pixel

Leia mais

Processamento de Imagens

Processamento de Imagens Processamento de Imagens Prof. Julio Arakaki Ciência da Computação 1 Imagem Digital Full Color Image (Matriz de Pixels) RGB (24 bits): Red (8 bits) Green (8 bits) Blue (8 bits) 2 Imagem Digital Um modelo

Leia mais

6. FILTRAGEM DE FREQUÊNCIAS ESPACIAIS

6. FILTRAGEM DE FREQUÊNCIAS ESPACIAIS 6. FILTRAGEM DE FREQUÊNCIAS ESPACIAIS 6.1 Introdução A. P. Crósta, Processamento Digital de Imagens de Sensoriamento Remoto 1992 Em uma imagem qualquer de sensoriamento remoto, considerada em uma de suas

Leia mais

Trabalho - Photochopp Divulgação: 06/09/2014 Atualizado em: 29/09/2014 Entrega: vide cronograma

Trabalho - Photochopp Divulgação: 06/09/2014 Atualizado em: 29/09/2014 Entrega: vide cronograma 1 UFF Universidade Federal Fluminense TIC Instituto de Computação TCC Departamento de Ciência da Computação Disciplina: TCC 00.174 Programação de Computadores II / Turma: A-1 / 2014.2 Professor: Leandro

Leia mais

Filtragem de Imagens no Domínio Espacial. 35M34 Sala 3D5 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 227

Filtragem de Imagens no Domínio Espacial. 35M34 Sala 3D5 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 227 Filtragem de Imagens no Domínio Espacial 35M34 Sala 3D5 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 227 Image Enhancement 2 Image enhancement em Português significa algo como melhoria de imagens, mas o

Leia mais

Processamento de Imagens

Processamento de Imagens Processamento de Imagens SCE 5830 Pré-processamento Material baseado no livro do Sonka e Gonzalez http://www.icaen.uiowa.edu/~dip/lecture/lecture.html Propriedades de uma Imagem digital Vizinhança Conectividade

Leia mais

Introdução ao Processamento Digital de Imagem MC920 / MO443

Introdução ao Processamento Digital de Imagem MC920 / MO443 Introdução ao Processamento Digital de Imagem MC920 / MO443 Prof. Hélio Pedrini Instituto de Computação UNICAMP 1º Semestre de 2017 Roteiro 1 Segmentação Detecção de Descontinuidades Detecção de Pontos,

Leia mais

Orientação de Bordas em Imagens Digitais: Abordagem por Análise de Vizinhança Local

Orientação de Bordas em Imagens Digitais: Abordagem por Análise de Vizinhança Local Orientação de Bordas em Imagens Digitais: Abordagem por Análise de Vizinhança Local Inês Aparecida Gasparotto Boaventura DCCE-IBILCE-UNESP Rua Cristovão Colombo, 2265 15054-000, São José do Rio Preto,

Leia mais

2 Animação com Harmônicos de Variedade

2 Animação com Harmônicos de Variedade 2 Animação com Harmônicos de Variedade Hoje em dia, podemos encontrar vários métodos de visualização de música, porém muito poucos relacionam a música à deformações (ou até movimentos rígidos) de modelos

Leia mais

3. Limites e Continuidade

3. Limites e Continuidade 3. Limites e Continuidade 1 Conceitos No cálculo de limites, estamos interessados em saber como uma função se comporta quando a variável independente se aproxima de um determinado valor. Em outras palavras,

Leia mais

Descritores de Imagem (introdução)

Descritores de Imagem (introdução) Descritores de Imagem (introdução) André Tavares da Silva andre.silva@udesc.br Roteiro da aula Definição de descritor de imagem Extração de Característica Tipos Geral x Específico Global (cor, textura,

Leia mais

Capítulo 4 LEITURA E INTERPRETAÇÃO DE DESENHOS

Capítulo 4 LEITURA E INTERPRETAÇÃO DE DESENHOS Capítulo 4 LEITURA E INTERPRETAÇÃO DE DESENHOS Definição e Pré-Requisitos Ler um desenho significa entender a forma espacial do objeto representado no desenho bidimensional resultante das projeções ortogonais.

Leia mais

Exemplos. Propagação (Reconstrução)

Exemplos. Propagação (Reconstrução) Processamento de Imagens Médicas Morfologia Matemática em Imagens Prof. Luiz Otavio Murta Jr. Informática Biomédica Depto. de Física e Matemática (FFCLRP/USP) Propagação (Reconstrução) lgoritmos Baseados

Leia mais

Data-Based Motion Simulation Through a Green s Function Approach (Análise de Movimentos)

Data-Based Motion Simulation Through a Green s Function Approach (Análise de Movimentos) Data-Based Motion Simulation Through a Green s Function Approach (Análise de Movimentos) Abstract 1 Resultados Experimentais Sequências de movimento animadas ilustrando as aplicações da nossa abordagem

Leia mais

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO ESCOLA DE ENGENHARIA DEPARTAMENTO DE ELETRÔNICA E DE COMPUTAÇÃO

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO ESCOLA DE ENGENHARIA DEPARTAMENTO DE ELETRÔNICA E DE COMPUTAÇÃO UNIVERSIDADE FEDERAL DO RIO DE JANEIRO ESCOLA DE ENGENHARIA DEPARTAMENTO DE ELETRÔNICA E DE COMPUTAÇÃO FILTRO SIGMA COM DETEÇÃO DE BORDAS PARA CANCELAMENTO DE RUIDO GAUSSIANO EM IMAGENS PRETO E BRANCO

Leia mais

PROCESSAMENTO DIGITAL DE IMAGENS

PROCESSAMENTO DIGITAL DE IMAGENS UNIVERSIDADE DE SÃO PAULO ESCOLA SUPERIOR DE AGRICULTURA LUIZ DE QUEIROZ DEPARTAMENTO DE ENGENHARIA DE BIOSSISTEMAS DISCIPLINA: LEB450 TOPOGRAFIA E GEOPROCESSAMENTO II PROF. DR. CARLOS ALBERTO VETTORAZZI

Leia mais

Filtragem. Processamento digital de imagens. CPGCG/UFPR Prof. Dr. Jorge Centeno

Filtragem. Processamento digital de imagens. CPGCG/UFPR Prof. Dr. Jorge Centeno Filtragem Processamento digital de imagens CPGCG/UFPR Prof. Dr. Jorge Centeno Operações de vizinhança (Filtros) Filtros lineares Filtro passa-baixas (suavização) Filtro passa-altas (realce) Filtros direcionais

Leia mais

Cálculo Numérico BCC760 Raízes de equações algébricas e transcendentes

Cálculo Numérico BCC760 Raízes de equações algébricas e transcendentes Cálculo Numérico BCC760 Raízes de equações algébricas e transcendentes Departamento de Computação Página da disciplina http://www.decom.ufop.br/bcc760/ Introdução Dada uma função y = f(x), o objetivo deste

Leia mais

Visão Computacional. Alessandro L. Koerich. Programa de Pós-Graduação em Engenharia Elétrica Universidade Federal do Paraná (UFPR)

Visão Computacional. Alessandro L. Koerich. Programa de Pós-Graduação em Engenharia Elétrica Universidade Federal do Paraná (UFPR) Visão Computacional Alessandro L. Koerich Programa de Pós-Graduação em Engenharia Elétrica Universidade Federal do Paraná (UFPR) Processamento da Informação Capturei uma Imagem! E agora? Assumindo que

Leia mais

7 Conclusões e desenvolvimentos futuros

7 Conclusões e desenvolvimentos futuros 7 Conclusões e desenvolvimentos futuros 7.1 Conclusões Este trabalho apresentou novas soluções para a determinação da posição de terminais de comunicações móveis com base em medidas de ToA. Nos métodos

Leia mais

Realce de imagens parte 1: operações pontuais SCC0251 Processamento de Imagens

Realce de imagens parte 1: operações pontuais SCC0251 Processamento de Imagens Realce de imagens parte 1: operações pontuais SCC0251 Processamento de Imagens Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2013/1 Moacir Ponti Jr.

Leia mais

Implementação do algoritmo SIFT para detecção de objetos em imagens.

Implementação do algoritmo SIFT para detecção de objetos em imagens. Universidade Federal do Rio de Janeiro Instituto Alberto Luiz Coimbra de Pós-Graduação e Pesquisa de Engenharia Programa de Engenharia de Sistemas e Computação Rio de Janeiro, RJ - Brasil Implementação

Leia mais

2 Trabalhos Relacionados

2 Trabalhos Relacionados 2 Trabalhos Relacionados Este capítulo apresenta os algoritmos já existentes que são utilizados nesta dissertação para obter pontos homólogos entre duas imagens de um par estéreo. Pode-se classificar essas

Leia mais

APLICAÇÃO DA VISÃO COMPUTACIONAL PARA SEGMENTAÇÃO DE OBJETOS EM IMAGENS CAPTURADAS POR EQUIPAMENTOS MÓVEIS.

APLICAÇÃO DA VISÃO COMPUTACIONAL PARA SEGMENTAÇÃO DE OBJETOS EM IMAGENS CAPTURADAS POR EQUIPAMENTOS MÓVEIS. APLICAÇÃO DA VISÃO COMPUTACIONAL PARA SEGMENTAÇÃO DE OBJETOS EM IMAGENS CAPTURADAS POR EQUIPAMENTOS MÓVEIS. João Marcelo RIBEIRO 1 Heber Rocha MOREIRA 2 Fiama F. S. do AMARAL 3 RESUMO Através da visão

Leia mais

INTRODUÇÃO AO PROCESSAMENTO DIGITAL DE IMAGENS SENSORIAMENTO REMOTO

INTRODUÇÃO AO PROCESSAMENTO DIGITAL DE IMAGENS SENSORIAMENTO REMOTO INTRODUÇÃO AO PROCESSAMENTO DIGITAL DE IMAGENS SENSORIAMENTO REMOTO PROCESSAMENTO DE IMAGENS Introdução Conceitos básicos Pré-processamento Realce Classificação PROCESSAMENTO DE IMAGENS Extração de Informações

Leia mais

fig.1 Programa implementado durante a realização do trabalho

fig.1 Programa implementado durante a realização do trabalho 1- INTRODUÇÃO Com este trabalho pretendia-se fazer a extracção de contornos de imagens. Para se poder atingir os objectivos aos quais era proposto, foram implementadas diversas estratégias de detecção

Leia mais

Universidade Federal de Pernambuco Graduação em Engenharia da Computação Centro de Informática

Universidade Federal de Pernambuco Graduação em Engenharia da Computação Centro de Informática Universidade Federal de Pernambuco Graduação em Engenharia da Computação Centro de Informática DETECÇÃO DE BORDAS DE IMAGENS UTILIZANDO ELEMENTOS DE MORFOLOGIA MATEMÁTICA PROPOSTA DE TRABALHO DE GRADUAÇÃO

Leia mais

Colégio Politécnico da UFSM DPADP0024 : Processamento Digital de Imagens (Prof. Dr. Elódio Sebem)

Colégio Politécnico da UFSM DPADP0024 : Processamento Digital de Imagens (Prof. Dr. Elódio Sebem) A filtragem digital é uma transformação da imagem mediante operações locais. Na imagem filtrada o ND de cada pixel está em função do NDs dos pixels do seu entorno na imagem inicial, sem modificações de

Leia mais

Métodos Numéricos - Notas de Aula

Métodos Numéricos - Notas de Aula Métodos Numéricos - Notas de Aula Prof a Olga Regina Bellon Junho 2007 Zeros de equações transcendentes e Tipos de Métodos polinomiais São dois os tipos de métodos para se achar a(s) raízes de uma equação:

Leia mais

4 Extração direta das PELs

4 Extração direta das PELs 4 Extração direta das PELs A detecção de arestas em imagens está relacionada à extração de feições, sendo uma ferramenta fundamental em processamento de imagens e visão computacional. Essa detecção visa

Leia mais

Processamento de Imagem. A Imagem digital Professora Sheila Cáceres

Processamento de Imagem. A Imagem digital Professora Sheila Cáceres Processamento de Imagem A Imagem digital Professora Sheila Cáceres Visão Humana Processamento de Imagens 2 Semelhança entre o sistema visual humano e uma câmera fotográfica Várias semelhanças podem ser

Leia mais