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
Download

Segmentação1