35
Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408 Prof. Neucimar 20/05/2010

Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Embed Size (px)

Citation preview

Page 1: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Trabalho Prático IIDetecção e reconexão

de Contornos

MC920 - Introdução ao processamento de imagens

Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Prof. Neucimar20/05/2010

Page 2: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Imagens utilizadas nos testes

Page 3: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Imagens utilizadas nos testes

Page 4: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Detecção de contornos com Sobel 3X3

Funciona bem para imagens com ruído, pois faz uma pré-filtragem (máscara de convolução gaussiana) Fizemos quando necessário uma soma de constante para realçar os contornos ou uma limiarização na imagem

Page 5: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Sobel – imagem com ruído gaussiano

Limiarizado

Page 6: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Sobel – imagem com ruídos diferentes

Gaussiano – Sobel ajustado Sal e pimenta

Page 7: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Detecção de contornos com Laplace 5X5

•Detecta contornos muito bem definidos quando a imagem não tem ruído•É muito sucetível a ruído, até imagem jpg (aparentemente sem ruído) é distorcida

Lena jpg – sharpen no Laplace Tabuleiro de xadrez png

Page 8: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Laplace em imagem com ruído

Ruído gaussiano Ruído sal e pimenta

O contorno ainda é completamente detectado, porém o ruído é acentuado, então é difícil reconhecer a figura.

Page 9: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Imagens sem ruído – Sobel X LaplaceNa ausência de ruído, o Laplace apresenta resultado muito superior

ao Sobel, já que o Sobel embassa o contorno ao fazer seu filtro “da média”

Laplace

Sobel ajustado

Page 10: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Imagens sem ruído – Sobel X LaplaceNa ausência de ruído, o Laplace apresenta resultado muito superior ao Sobel, já que o Sobel embassa o contorno ao fazer seu filtro “da

média”

Sobel ajustadoLaplace

Page 11: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Imagens sem ruído – Sobel X LaplaceNa ausência de ruído, o Laplace apresenta resultado muito superior ao Sobel, já que o Sobel embassa o contorno ao fazer seu filtro “da

média”

Laplace Sobel ajustado

Page 12: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Detector de contornos de Canny•Tendo um limiar alto e um baixo, detecta contornos e já faz uma reconexão dos pontos desconsiderados inicialmente•Problema: para cada imagem é preciso ajustar os limiares

Sem ruído (jpg): 5.9 - 6Sem ruído: 0.1 – 0.3 Sem ruído: 0.5 – 1.0

Page 13: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Canny: variações nos limiares (ruído gaussiano)

Quando os limiares são muito baixos, pega mais do que só o contorno. Quando é muito alto, começa a perder contorno. Intervalo grande pega muitos vizinhos não-contorno.

0.1 – 0.2

4.9 – 5.0

7.9 – 8.0

Page 14: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Canny: variações nos limiares (sem ruído – contorno suave)

0.1 – 0.3

0.4 – 0.7

1.0 – 1.5

Conforme aumenta o limiar superior, menos pontos são selecionados.

Page 15: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Canny e ruídos diferentesSem ruído: 1.9 – 2.0

Ruído gaussiano: 1.9 – 2.0

Ruído sal e pimenta: 1.9 – 2.0

Page 16: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Histereses

•Trabalha em cima de uma imagem com os contornos já detectados

•Limites inferior e superior são passados como parâmetros

•Dados os pontos que já estão no contorno e acima do limite superior, seus vizinhos também entram para o contorno se estiverem acima do limite inferior

Page 17: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Histereses com Laplace

Mesmo aumentando muito os limiares não é possível tirar o ruído, mas perde-se pouco contorno.

histereses_laplace_2.0_2.5histereses_laplace_0.1_0.2

Page 18: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Histereses com Laplace

laplace histereses_laplace_0.2_0.3

O contorno já está bem definido, não há o que ser reconectado nele. A histeresis reconecta os ruídos, acentuando-os.

Page 19: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Histereses com Sobel limiarizadoárvore – ruído sal e pimenta

0.65 – 2.01.0 – 1.51.3 – 1.5

Page 20: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Histereses com Sobel limiarizadoCasa – ruído gaussiano

0.59 – 1.0 0.39 – 1.0

Page 21: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Histereses com Sobel AjustadoLena ruído gaussiano

histereses_sobel_0.65_0.8histereses_sobel_0.21_0.3

Para tirar o ruido gaussiano, precisa subir um pouco só o limiar superior para desviar do ruído e pegar o contorno quase todo, e deixar o intervalo bem pequeno para o ruído não ser puxado pelo contorno para reconexão.

Page 22: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Histereses com Sobel AjustadoLena ruído sal e pimenta

0.2 - 1.20.21 - 0.3

Para tirar o ruído sal e pimenta, aumentar bastante o limiar superior para não capturar o ruído e deixar um intervalo grande, para que os poucos pontos do contorno detectados "puxem" os demais para reconexão (se diminui o intervalo não sobra quase nada de contorno). Ainda assim se perde muito contorno.

Page 23: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Histereses com Sobel Ajustado

• Análise da diferença entre os limiares para remoção dos ruídos:

• Quando o Sobel calcula a diferença entre os vizinhos para detectar o contorno, no sal e pimenta há uma resposta mais forte e mais esparsa, tal como o próprio ruído

• Já no gaussiano a vizinhança é mais homogênea, então a detecção de contornos sai mais fraca embora mais frequente.

Lena sem ruído: 0.2 – 0.3

Page 24: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Histereses com SobelLatinha

Perda de contornos conforme aumenta o limiar superior, porém com diminuição do ruído

histereses_sobel_0.8_1.5 histereses_sobel_1.5_2.0

Page 25: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Canny X Detecção (Sobel/Laplace) com histereses

Canny: 9.9 - 10

Ruído sal e pimenta

Sobel com histereses: 1.0 – 1.5 Laplace com histereses: 2.0 – 2.5

Page 26: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Reconexão pelo gradiente

• Testamos a abordagem primeiro só com o detector de contornos (Sobel/Laplace)

• Depois testamos combinar a detecção de contornos, a histereses e a reconexão.

• Testamos o cálculo do delta para o gradiente usando apenas um vizinho ou usando vizinhança 3X3 com máscaras de Sobel: este último apresentou melhor resultado, portanto usamos em todas as imagens a seguir

• Também é muito difícil encontrar os limiares bons para cada imagem

Page 27: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Reconexão pelo gradiente com Laplace

ang10.0_magn180ang10.0_magn20

• Laplace quase não tem falhas de contorno (mas acentua o “ruído” jpg)• Reconexão pelo gradiente se perde• Resultados parecidos, mesmo com grandes variações de parâmetros

Page 28: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Reconexão pelo gradiente com Sobel

ang10.0_magn3 ang0.05_magn4

Page 29: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Reconexão pelo gradiente com Sobel

ang1.0_magn7

Page 30: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Reconexão pelo gradiente com Sobel Moinho – luminosidade senoidal

ang2.0_magn10.0Sobel

Page 31: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Reconexão pelo gradiente com Sobel e Histereses

ang1.0_magn10_histereses_0.59_1.0

ang1.0_magn20_histereses_0.59_1.0

ang1.0_magn50_histereses_0.59_1.0 ang1.0_magn100_histereses_0.59_1.0

Page 32: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Reconexão pelo gradiente com Sobel e Histereses

ang2.0_magn1_histereses_0.4_0.8 ang2.0_magn20_histereses_0.4_1.0

ang2.0_magn120_histereses_0.4_1.0 ang2.0_magn120_histereses_0.6_1.0

Page 33: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Reconexão pelo gradiente com Sobel e Histereses

ang10.0_magn35_histeresis_0.65_1.8ang10.0_magn35_histeresis_1.0_1.5

Page 34: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

•Não conseguimos encontrar um limiar para restringir a magnitude do gradiente que fizesse alguma diferença nos cálculos

• Os valores dos parâmetros a e b da equação da reta tinham uma variação muito grande, e valores muito elevados

•Os valores de máximo da matriz sempre ficavam na primeira linha da matriz, talvez pelo corte no tamanho da matriz, para que coubesse na memória

•Buscamos outros métodos para fazer a transformada, mas não conseguimos integrar ao projeto.

Transformada de HoughDificuldades encontradas

Page 35: Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA070299 Carolina Michelassi - RA070408

Conclusões•Não existe um método único muito bom

•É preciso ajustar parâmetros para conseguir uma imagem com contornos bem definidos e pouco ruído

•Esses parâmetros variam de acordo com a dinâmica da imagem, e encontrá-los é trabalhoso

•De forma geral a detecção é boa, mas a reconexão é difícil.

•A detecção e reconexão de contornos de Canny funciona bem mesmo em imagens com ruído e é mais fácil achar parâmetros para ele.

•A Reconexão pelo gradiente se deixa influenciar pelas diferenças de coloração da imagem, levando a resultados insatisfatórios (reconecta mas polui a imagem)