Segmentação de imagens Pré-processamento segmentação descrição / análise • Não existe uma única e definitiva abordagem ao problema da segmentação • A descrição pode ser feita a partir de diferentes partes da cena • Pode haver várias formas de se extrair as regiões de interesse a serem descritas/analisadas Conclusão: a segmentação é uma etapa dependente do problema, importante na análise de imagens Classificação geral • Completa: resulta num conjunto de regiões disjuntas • Parcial: não corresponde diretamente a imagens de objetos Técnicas de segmentação: • baseada em conhecimento global • baseada no contorno dos objetos • baseada nas regiões definidas pelos objetos Ou equivalentemente: • baseada em descontinuidades (contornos) dos níveis de cinza • baseada em similaridades (regiões) dos níveis de cinza • Descontinuidades: detecção de pontos isolados, primitivas e contornos etc • similaridade: limiarização, crescimento de regiões, subdivisão de regiões, fusão de regiões etc Tudo isto em imagens estáticas ou dinâmicas Detecção de descontinuidades • Em geral, pode-se considerar máscaras representando modelos de descontinuidades Exemplo: Detecção de pontos isolados w1 w4 w7 w2 w5 w8 w3 w6 w9 A resposta R da máscara para um ponto da imagem é: R w1 z1 w2 z 2 ... w9 z9 9 w i zi i 1 zi é a intensidade do pixelassociado ao coeficiente wi da máscara Um ponto isolado é detectado se | R | T , T é um limiar Exemplo de máscara 1 1 1 1 8 1 1 1 1 imagem máscara 0 0 0 1 1 1 1 8 1 1 1 1 0 1 0 0 0 0 R 0 0 0 0 8 0 0 0 0 Exemplo: Detecção de ponto isolado Original f R máscara 1 1 1 1 8 1 1 1 1 e limiar T = max(|R|) Detecção de linhas Exemplo: Considerar máscaras representando modelos de linhas em possíveis direções na malha discreta 1 1 1 1 1 2 1 2 1 2 1 1 2 1 2 1 1 2 1 1 2 2 1 1 1 2 1 1 1 2 2 1 1 1 horizontal R1 +45 R2 vertical -45 R3 R4 Se | Ri || R j |, i j, entãoo ponto está associado a uma linha na direção i 1 2 Exemplo: Detecção de linhas de espessura 1 pixel na direção -45 graus Original máscara 2 1 1 1 2 1 1 -45 1 2 Reposta da máscara (R) espessura de 1 pixel Reposta da máscara (R) |R| Resposta após limiarização com T = max(|R|) Casamento de padrões (template matching) • Outra forma simples de se extrair padrões de uma imagem é a partir do conceito de correlação visto anteriormente. Correlação de f(x,y) e h(x,y): c( x, y) f ( x s, y t )h(s, t ), para x 0,1,2...M-1, y 0,1,2...N-1 s t • Pode-se usar a FFT para o casamento com padrões muito grandes Exemplo 1: f h c Pontos de c > T=60 (o max valor dos pixels em c é 68) Exemplo 2: f h c pontos de c > T=315 Exemplo 3: f h Detecção de bordas • Uma borda é uma fronteira entre duas regiões com relativa diferença de níveis de cinza • Estes métodos de segmentação são ideais quando as regiões são suficientemente homogêneas • A ideia básica consiste do emprego de um operador derivativo local (como estudado anteriormente) • Os detectores de contorno vistos anteriormente (Roberts, Sobel, LoG, Prewitt, Canny etc) podem ser empregados aqui. O Laplaciano, por exemplo, é utilizado na localização das bordas considerando-se a propriedade do zero-crossing (Método de Marr-Hildreth). Lembrando: Este conceito baseia-se na convolução de uma imagem com o Laplaciano de uma função gaussiana (LoG) 2-D do tipo: h( x, y) e ( x2 y 2 2 2 ) , é o desvio padrão O Laplaciano de h é dado por r h 4 2 2 2 e r2 2 2 2h • O zero-crossing ocorre quando r • A forma desta função corresponde ao modelo das máscaras laplacianas do tipo 0 1 0 h 1 4 1 0 1 0 •Filtragem passa-altas: 2 H (u, v) • Suaviza a imagem proporcionalmente a . Isto significa que este operador filtra a imagem e serve para detectar a posição dos seus contornos. suavização + deteccão de bordas Exemplo: Original LoG Exemplo: Original Sobel Exemplo: Original Canny LoG Original Sobel Máscara laplaciana Função gaussiana LoG LoG limiarizado: Zero-crossing f(x,y) > 0 Reconexão de contornos (edge linking) • após detecção, os contornos geralmente não são conexos: problemas de iluminação irregular, ruído etc. • os detectores podem ser seguidos de métodos para reconectá-los. Processamento local • Considera pequenas vizinhanças (e.g., 3x3, 5x5) de um ponto de contorno e une aqueles vizinhos que compartilham propriedades comuns. - Propriedades: a resposta ao operador gradiente, f , e a sua direção Um pixel (x’, y’), na vizinhança de (x, y), é similar em magnitude a este se: | f ( x, y) f ( x' , y' ) | T , T é um limiar positivo Um pixel (x’, y’) tem um ângulo próximo ao do seu vizinho (x, y) se: | ( x, y) ( x' , y' ) | A, A é um limiar angular e como antes: ( x, y) tg 1[ y f ( x, y) / x f ( x, y)] • Assim, um ponto numa dada vizinhança de (x, y) será conectado ao pixel (x, y) se os critérios de magnitude e direção forem satisfeitos. Este procedimento pode ser repetido um certo número de vezes para cada posição da imagem. Exemplo: Reconexão de contornos