40
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 / thresholding”) 1) operadores diferenciais 2) operadores direcionais métodos de adaptação de bordas (“edge fitting”) NPDI - DCC - UFMG 1

Detecção de Bordas

Embed Size (px)

DESCRIPTION

Apostila para detecção de bordas

Citation preview

Page 1: 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 / thresholding”) 1) operadores diferenciais 2) operadores direcionais • métodos de adaptação de bordas

(“edge fitting”)

NPDI - DCC - UFMG 1

Page 2: Detecção de Bordas

NPDI - DCC - UFMG 2

Page 3: Detecção de Bordas

NPDI - DCC - UFMG 3

Page 4: Detecção de Bordas

Em b), valores negativos em tons pretos, valores positivos em tons brancos, valores próximos de zero em tons de cinza.

NPDI - DCC - UFMG 4

Page 5: Detecção de Bordas

5.1. Métodos de realce / limiar 5.1.1. Operadores diferenciais

Em geral, utiliza-se o operador gradiente :

No caso discreto :

GR(m, n) = { [I(m, n) – I(m+1, n+1)]2 +

[I(m, n+1) – I(m+1, n)]2 } GA(m, n) = | I(m, n) – I(m+1, n+1) | +

| I(m, n+1) – I(m+1, n) | GM(m, n) = max( | I(m, n) – I(m+1, n+1) | ,

| I(m, n+1) – I(m+1, n) |)

NPDI - DCC - UFMG 5

Page 6: Detecção de Bordas

Gradiente de Roberts

M1 = [ 1 0 0 -1 ] M2 = [ 0 1

-1 0 ] A aplicação de um operador gradiente gera a chamada imagem gradiente-analógico : G (m , n) = I (m , n) * M (m , n) Para eliminar pequenas respostas, utiliza-se a aplicação de um limiar : Se G (m , n) > T → E (m , n) que gera a chamada imagem mapa binário de bordas.

NPDI - DCC - UFMG 6

Page 7: Detecção de Bordas

Exemplo : 10 12 11 50 50 3 0 77 0 0 0 0 255 0 0 10 11 12 50 50 → 0 1 76 0 0 → 0 0 255 0 0 11 10 12 50 50 0 1 76 0 0 0 0 255 0 0

I (m , n) G (m , n) E (m , n) Outras variações da aplicação de limiar são possíveis, como veremos a seguir. Variações da aplicação de limiar : 1. g(m, n) = G(m, n) imagem gradiente

2. g(m, n) = {G(m, n) I(m, n)

, se G ≥ T , caso contrário

preservação do fundo

3. g(m, n) = {LG I(m, n)

, se G ≥ T , caso contrário

preservação do fundo

4. g(m, n) = {G(m, n) LF

, se G ≥ T , caso contrário

variação das bordas sem

interferência do fundo

5. g(m, n) = {LG LF

, se G ≥ T , caso contrário

mapa de bordas

Obs.: LG = nível de cinza p/ gradiente LF = nível de cinza p/ fundo

NPDI - DCC - UFMG 7

Page 8: Detecção de Bordas

Exemplo de realce de bordas usando gradiente:

NPDI - DCC - UFMG 8

Page 9: Detecção de Bordas

NPDI - DCC - UFMG 9

Page 10: Detecção de Bordas

Estudo Gradiente 1 :

Bureau

differences en x, en y

approximations du module du gradient: vertical, Roberts

NPDI - DCC - UFMG 10

Page 11: Detecção de Bordas

Estudo Gradiente 2 :

Bureau

gradient Roberts seuillé à 64, 128

Cany – Deriche (meilleurs paramètres)

NPDI - DCC - UFMG 11

Page 12: Detecção de Bordas

Operador laplaciano

Uma desvantagem do operador de Roberts é sua anisotropia, isto é, sua assimetria.

O operador laplaciano pode ser empregado

quando não existe preferência de orientação na imagem.

ML = 0 -1 0 -1 4 -1 0 -1 0

ML =

-1 -1 -1 -1 8 -1 -1 -1 -1

ML =

1 -2 1 -2 4 -2 1 -2 1

∇2 f(x, y) = ( δ2f / δx2 ) + ( δ2f / δy2 )

NPDI - DCC - UFMG 12

Page 13: Detecção de Bordas

No caso discreto : ∇2 I(m,n) = ∆x

2 I (m , n) + ∆y2 I (m, n)

∆x

2 I(m,n)= [ I (m , n) – I (m–1 , n) ] + [ I (m , n) – I (m+1 , n) ] ∆y

2 I(m,n)= [ I (m , n) – I (m , n–1) ] + [ I (m , n) – I (m , n+1) ] ∇2 I (m , n) = 4 I (m , n) – [ I (m-1 , n) + I (m+1 , n)

+ I (m , n–1) + I (m , n+1) ] Que corresponde a :

ML = 0 -1 0 -1 4 -1 0 -1 0

ou ML = -1 -1 -1 -1 8 -1 -1 -1 -1

onde a vizinhança é : (m–1 , n–1) (m–1 , n) (m–1 , n+1) (m , n–1) (m , n) (m , n+1) (m+1 , n–1) (m+1 , n) (m+1 , n+1) Pode-se observar que a equação acima é proporcional, pelo fator de –1/5 , a : I(m, n) = –1/5 [ I(m+1, n) + I(m–1, n) + I(m, n) + I(m, n+1) + I(m, n–1) ] que é a diferença entre a original e seu valor médio (considerando-se os 4 vizinhos imediatos). Assim, pode-se restaurar uma imagem borrada, subtraindo-se da imagem borrada o seu laplaciano (multiplicado por um certo fator)

“Unsharp Masking” : usado pela indústria gráfica/publicitária.

NPDI - DCC - UFMG 13

Page 14: Detecção de Bordas

NPDI - DCC - UFMG 14

Page 15: Detecção de Bordas

NPDI - DCC - UFMG 15

Page 16: Detecção de Bordas

NPDI - DCC - UFMG 16

Page 17: Detecção de Bordas

NPDI - DCC - UFMG 17

Page 18: Detecção de Bordas

NPDI - DCC - UFMG 18

Page 19: Detecção de Bordas

NPDI - DCC - UFMG 19

Page 20: Detecção de Bordas

Estudo Laplaciano – Unsharp masking :

Bureau

Blur 1x (média 3x3)

Blur 2x

NPDI - DCC - UFMG 20

Page 21: Detecção de Bordas

Estudo Laplaciano – Unsharp masking (2) :

Bureau

Blur 1x – Laplacian (-4)

Blur 2x – Laplacian (-4)

NPDI - DCC - UFMG 21

Page 22: Detecção de Bordas

Estudo Laplaciano – Unsharp masking (3) :

Bureau

Blur 1x – Laplacian (-8)

Blur 2x – Laplacian (-8)

NPDI - DCC - UFMG 22

Page 23: Detecção de Bordas

NPDI - DCC - UFMG 23

Page 24: Detecção de Bordas

NPDI - DCC - UFMG 24

Page 25: Detecção de Bordas

Operadores de Sobel e Prewitt

São operadores 3 X 3 que aproximam as derivadas parciais para detecção de bordas nas direções ortogonais X e Y. SOBEL PREWITT

MX = 1 2 1 0 0 0 -1 -2 -1

MX = 1 1 1 0 0 0 -1 -1 -1

MY = 1 0 -1 2 0 -2 1 0 -1

MY = 1 0 -1 1 0 -1 1 0 -1

DIREC G = ARC tg My / Mx

NPDI - DCC - UFMG 25

Page 26: Detecção de Bordas

Exemplo: 10 10 50 50 50 10 10 50 50 50 10 10 50 50 50 GSOBEL : 160 160 0 GPREWITT : 120 120 0 Laplaciano 1 : 0 40 0 Laplaciano 2 : 0 120 0 (OBS.: considerando-se valores neg = 0) GROBERTS : 0 57 0 0 57 0 GABS : 0 80 0 0 80 0 GMAX : 0 40 0 0 40 0

NPDI - DCC - UFMG 26

Page 27: Detecção de Bordas

5.1.2. Operadores direcionais

São conjuntos de 8 máscaras 3x3 que

representam aproximações discretas de bordas

ideais nas direções cardeais.

Cada operador aplica 8 máscaras em cada

vizinhança 3x3 da imagem. A magnitude do

gradiente é obtida a partir da resposta mais forte

entre as 8 máscaras. A direção é dada pela

orientação da máscara com resposta mais forte.

Os vetores gradiente e borda são ortogonais.

Como determinar a direção da borda ?

NPDI - DCC - UFMG 27

Page 28: Detecção de Bordas

A máscara norte produz uma saída máxima para

mudanças verticais na luminosidade, isto é, para

bordas horizontais.

A direção da borda é determinada de maneira que o lado claro da borda está localizado à esquerda de quem se move na direção da borda.

NPDI - DCC - UFMG 28

Page 29: Detecção de Bordas

Máscaras direcionais DIREÇ. BORDA

DIREÇ. GRAD.

MÁSC. PREWIT

MÁSC. KIRSCH

MÁSC. 3-NÍVEIS

MÁSC. 5-NÍVEIS

NORTE 1 1 1 1 -2 1 -1 -1 -1

5 5 5 -3 0 -3 -3 -3 -3

1 1 1 0 0 0 -1 -1 -1

1 2 1 0 0 0 -1 -2 -1

NOROESTE 1 1 1 1 -2 -1 1 -1 -1

5 5 -3 5 0 -3 -3 -3 -3

1 1 0 1 0 -1 0 -1 -1

2 1 0 1 0 -1 0 -1 -2

OESTE 1 1 -1 1 -2 -1 1 1 -1

5 -3 -3 5 0 -3 5 -3 -3

1 0 -1 1 0 -1 1 0 -1

1 0 -1 2 0 -2 1 0 -1

SUDOESTE 1 -1 -1 1 -2 -1 1 1 1

-3 -3 -3 5 0 -3 5 5 -3

0 -1 -1 1 0 -1 1 1 0

0 -1 -2 1 0 -1 2 1 0

SUL -1 -1 -1 1 -2 1 1 1 1

-3 -3 -3 -3 0 -3 5 5 5

-1 -1 -1 0 0 0 1 1 1

-1 -2 -1 0 0 0 1 2 1

SUDESTE -1 -1 1 -1 -2 1 -1 1 1

-3 -3 -3 -3 0 5 -3 5 5

-1 -1 0 -1 0 1 0 1 1

-2 -1 0 -1 0 1 0 1 2

LESTE -1 1 1 -1 -2 1 -1 1 1

-3 -3 5 -3 0 5 -3 -3 5

-1 0 1 -1 0 1 -1 0 1

-1 0 1 -2 0 2 -1 0 1

NORDESTE 1 1 1 -1 -2 1 -1 -1 1

-3 5 5 -3 0 5 -3 -3 -3

0 1 1 -1 0 1 -1 -1 0

0 1 2 -1 0 1 -2 -1 0

Direções das bordas

NPDI - DCC - UFMG 29

Page 30: Detecção de Bordas

Lena – original

NPDI - DCC - UFMG 30

Page 31: Detecção de Bordas

Lena – operador Roberts

NPDI - DCC - UFMG 31

Page 32: Detecção de Bordas

Lena – operador Roberts

| G | = | Gx | + | Gy |

NPDI - DCC - UFMG 32

Page 33: Detecção de Bordas

Lena – operador Sobel

NPDI - DCC - UFMG 33

Page 34: Detecção de Bordas

Lena – operador Sobel

| G | = | Gx | + | Gy |

NPDI - DCC - UFMG 34

Page 35: Detecção de Bordas

Lena – operador Prewitt

NPDI - DCC - UFMG 35

Page 36: Detecção de Bordas

Lena – operador Prewitt

| G | = | Gx | + | Gy |

NPDI - DCC - UFMG 36

Page 37: Detecção de Bordas

Lena – operador Shen & Castan

GEF – Gradient Exponential Filter

NPDI - DCC - UFMG 37

Page 38: Detecção de Bordas

Lena – operador Shen & Castan

DRF – Difference Recursive Filter

NPDI - DCC - UFMG 38

Page 39: Detecção de Bordas

Lena – operador Shen & Castan SDEF – Second Deriv. Exp. Filter

NPDI - DCC - UFMG 39

Page 40: Detecção de Bordas

NPDI - DCC - UFMG 40