Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de...

Preview:

Citation preview

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

Imagens utilizadas nos testes

Imagens utilizadas nos testes

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

Sobel – imagem com ruído gaussiano

Limiarizado

Sobel – imagem com ruídos diferentes

Gaussiano – Sobel ajustado Sal e pimenta

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

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.

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

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

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

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

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

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.

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

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

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

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.

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

0.65 – 2.01.0 – 1.51.3 – 1.5

Histereses com Sobel limiarizadoCasa – ruído gaussiano

0.59 – 1.0 0.39 – 1.0

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.

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.

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

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

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

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

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

Reconexão pelo gradiente com Sobel

ang10.0_magn3 ang0.05_magn4

Reconexão pelo gradiente com Sobel

ang1.0_magn7

Reconexão pelo gradiente com Sobel Moinho – luminosidade senoidal

ang2.0_magn10.0Sobel

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

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

Reconexão pelo gradiente com Sobel e Histereses

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

•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

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)

Recommended