Sie sind auf Seite 1von 45

Viso Articial

Deteco de Bordas
Prof. Eduardo Oliveira Freire
1
Deteco de Bordas
! A deteco de bordas uma das operaes mais utilizadas em anlise
de imagens, e provavelmente existem mais algoritmos na literatura para
delinear e detectar bordas do que sobre qualquer outro assunto.
! Dene-se borda (edge) como a fronteira entre duas regies cujos nveis
de cinza predominantes so razoavelmente diferentes.
! Tambm se dene uma borda de luminosidade como uma
descontinuidade na luminosidade de uma imagem.
! Analogamente, pode-se denir borda de textura ou borda de cor, em
imagens onde as informaes de textura ou cor, respectivamente, so
as mais importantes.
! Aqui trataremos somente de bordas de luminosidade, s quais
denominaremos simplesmente bordas.
2
Deteco de Bordas
! Uma borda um limite entre um objeto e o fundo, e indica o limite entre
objetos que se sobrepe.
! Isto signica que se as bordas em uma imagem podem ser identicados
com preciso, todos os objetos podem ser localizados e suas
propriedades bsicas como rea, permetro e forma, podem ser medidas.
! Portanto, a deteco de bordas uma ferramenta muito importante para a
viso computacional, uma vez que ela trata da identicao e
classicao de objetos em uma imagem.
! A deteco de bordas parte de um processo conhecido como
segmentao, que consiste na identicao de regies em uma imagem.
! No entanto, muitas vezes, a deteco de bordas tudo que se precisa,
especialmente quando os objetos na imagem so linhas.
3
Deteco de Bordas
! Tecnicamente, deteco de bordas o processo de localizar os pixels
que compem a borda, e o delineamento de borda ir aumentar o
contraste entre os pixels da borda e os pixels do fundo, de modo que
as bordas se tornem mais visveis.
! Na prtica, estes dois termos se confundem, pois a maioria dos
programas de deteco de borda tambm "setam" os valores dos
pixels da borda para uma determinada cor, com o objetivo de tornar a
borda visvel.
4
Deteco de Bordas
! Uma borda denida como um contorno colorido ou em cinza.
! Se esse contorno cruzado, ento o nvel de cinza varia rapidamente.
! Apesar de ser pela grande variao de nvel de cinza que se observa
quando se cruza um contorno que se pode identicar inicialmente um
pixel da borda, o fato de tais pixels estarem conectados para formar
um contorno que permite a separao do rudo dos pixels da borda,
uma vez que pixels com rudo tambm tm uma grande variao no
nvel de cinza.
5
Deteco de Bordas
! Existem essencialmente 3 tipos de operadores para a deteco de
bordas:
! O primeiro tipo o operador derivativo, projetado para identicar
locais onde ocorrem grandes variaes de intensidade.
! O segundo consiste em um esquema de vericao de combinao
de uma template, onde a borda modelada como sendo uma
pequena imagem que possui as propriedades abstratas de uma
borda ideal.
! Finalmente, existem operadores que utilizam um modelo matemtico
da borda; os melhores utilizam um modelo de rudo tambm.
6
Deteco de Bordas
! Uma vez que uma borda denida como sendo uma mudana no nvel
de cinza, um operador que seja sensitivo a esta mudana ir funcionar
como um detector de borda.
! Um operador derivativo faz exatamente isso.
! Para a deteco e realce de bordas, aplicam-se habitualmente ltros
espaciais lineares de dois tipos:
! (a) baseados no gradiente da funo de luminosidade da imagem, e
! (b) baseados no laplaciano da funo de luminosidade da imagem.
7
Operadores Derivativos
! Uma vez que imagens so bidimensionais, importante considerar as
mudanas de nvel em muitas direes.
! Por esta razo as derivadas parciais da imagem so utilizadas, com
respeito s principais direes x e y.
! Uma estimativa da verdadeira direo da borda pode ser obtida
utilizando as derivadas em x e y (que so as componentes da
verdadeira direo ao longo dos eixos) para calcular o vetor soma.
! Como operador derivativo utilizamos o gradiente, e se a imagem for
considerada como uma funo de duas variveis A(x,y), ento o
gradiente denido como:
8
!A x, y ( ) =
"A
"x
,
"A
"y
#
$
%
&
'
(
Operadores Derivativos
! Obviamente uma imagem no uma funo, e no pode ser diferenciada
da forma tradicional.
! Como a imagem discreta, ns utilizamos diferenas ao invs de
derivadas, ou seja, a derivada em um pixel aproximada pela diferena
em nveis de cinza em alguma regio local.
! A aproximao mais simples para o gradiente o operador #
1
:


! Neste caso, assume-se que os nveis de cinza variam linearmente entre
os pixels, de modo que no importa onde a derivada calculada, o seu
valor sempre a inclinao da linha.
9
!
x1
A x, y ( ) = A x, y ( ) " A x "1, y ( )
!
y1
A x, y ( ) = A x, y ( ) " A x, y "1 ( )
Operadores Derivativos
! Um problema com essa aproximao que ela no calcula o gradiente
no ponto (x,y) e sim no ponto (x-1/2, y-1/2).
! A posio da borda ser ento deslocada por meio pixel nas direes
-x e -y.
! Uma melhor escolha para a aproximao o operador #
2
:


! Este operador simtrico com relao ao pixel (x,y), apesar de no
considerar o valor do prprio pixel em (x,y).
10
!
x2
A x, y ( ) = A x +1, y ( ) " A x "1, y ( )
!
y2
A x, y ( ) = A x, y +1 ( ) " A x, y "1 ( )
Operadores Derivativos
! Qualquer que seja o operador utilizado para calcular o gradiente, o vetor
resultante contm informao sobre o quo forte a borda e qual a sua
direo.
! A magnitude do vetor gradiente (mdulo) o comprimento da hipotenusa
do tringulo retngulo que tem como lados #
x
e #
y
e isto reete a variao
de nvel de cinza ou a resposta borda em qualquer pixel.
! A direo da borda nesse mesmo pixel o ngulo que a hipotenusa
forma com o eixo x.
! Matematicamente, a resposta borda e a direo da borda so dados
respectivamente por:
11
G
mag
=
!A
!x
"
#
$
%
&
'
2
+
!A
!y
"
#
$
%
&
'
2
e G
dir
= tan
(1
!A
!y
!A
!x
"
#
$
$
$
%
&
'
'
'
Operadores Derivativos
! A magnitude da borda ser um nmero real, que normalmente
convertido para inteiro por arredondamento.
! Qualquer pixel que tenha um gradiente que exceda um certo limiar deve
ser considerado como um pixel da borda.
! Normalmente utiliza-se como limiar o valor mdio na faixa dos tons de
cinza (127 ou 128).
! Tecnicamente, um detector de bordas ir simplesmente encontrar os
pixels da borda, enquanto que um delineador de bordas ir desenhar os
pixels da borda sobre a imagem original.
12
Deteco de Bordas Baseada em Templates
! A ideia por trs da deteco de bordas baseada em templates consiste
em utilizar uma pequena template discreta como modelo de uma borda
ao invs de utilizar um operador derivativo diretamente, ou um modelo
mais global e complexo.
! A template tanto pode ser uma tentativa de modelar as mudanas de
nvel de cinza na borda, como pode ser uma tentativa de aproximar um
operador derivativo, sendo esta ltima alternativa mais comum.
! Existe uma innidade de detectores de bordas baseados em templates,
no entanto s sero apresentados em detalhes dois deles, que foram
escolhidos justamente porque eles obtm o melhor conjunto de pixels
que fazem parte da borda, ao mesmo tempo que utilizam pequenas
templates.
13
Detector de Bordas de Sobel
! O detector de bordas de Sobel utiliza templates na forma de mscaras
de convoluo que tm os seguintes valores:


! Uma forma de se encarar estas templates como uma aproximao do
gradiente no pixel que corresponde ao centro da template.
! Observe que os pesos dos elementos das diagonais menor do que os
pesos na horizontal e na vertical.
! A componente x do operador Sobel S
x
, e a componente y S
y
.
14
S
x
=
!1 0 1
!2 0 2
!1 0 1
e S
y
=
!1 !2 !1
0 0 0
1 2 1
Detector de Bordas de Sobel
! Considerando S
x
e S
y
como as componentes do gradiente, signica que
a magnitude e a direo da borda do pixel correspondente ao centro da
template (i,j) dada por:


! O que equivalente a aplicar o operador 1 a cada poro 2 X 2 da
regio 3 X 3, e ento calcular a mdia dos resultados.
! Aps S
x
e S
y
serem calculados para cada pixel da imagem, as
magnitudes resultantes devem ser comparadas com um limiar.
15
S
x
i, j ( ) = I i !1, j +1 ( ) + 2I i, j +1 ( ) + I i +1, j +1 ( ) ! I i !1, j !1 ( ) + 2I i, j !1 ( ) + I i +1, j !1 ( ) "
#
$
%
S
y
i, j ( ) = I i +1, j +1 ( ) + 2I i +1, j ( ) + I i +1, j !1 ( ) ! I i !1, j +1 ( ) + 2I i !1, j ( ) + I i !1, j !1 ( ) "
#
$
%
Detector de Bordas de Sobel
! Todos os pixels tero alguma resposta s templates, mas somente os
pixels com respostas muito grandes sero considerados como pixels
da borda.
! A forma mais precisa de se calcular a magnitude aplicando a equao
para o clculo de G
mag
, mas ela envolve o clculo de uma raiz
quadrada, o que alm de ser um procedimento lento, envolve aritmtica
de ponto utuante.
! Como alternativa pode-se utilizar a soma |S
x
|+|S
y
| ou at mesmo o
maior valor dos dois.
! A comparao com limiar pode ser feita utilizando mtodos normais.
16
Outros operadores 3 x 3 utilizados para estimar a
amplitude do gradiente atravs de uma borda
17
38 Fundamentos de Imagens Digitais

MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
cor, respectivamente, so as mais importantes. Neste livro trataremos somente de bordas de
luminosidade, s quais denominaremos simplesmente bordas.
Para a deteo e realce de bordas, aplicam-se habitualmente filtros espaciais lineares de
dois tipos: (a) baseados no gradiente da funo de luminosidade, I(x,y), da imagem, e (b)
baseados no laplaciano de I(x,y).
Tanto o gradiente quanto o laplaciano costumam ser aproximados por mscaras de
convoluo ou operadores 3 x 3. Exemplos destas mscaras so os operadores de Roberts,
Sobel, Prewitt e Frei-Chen, mostrados na tabela 5.

Tabela 5 - Operadores 3 x 3 utilizados para estimar a amplitude do gradiente atravs de uma
borda.
Operador Vertical Horizontal
Roberts
0 0 1
0 1 0
0 0 0

1 0 0
0 1 0
0 0 0

Sobel
1
4
1 0 1
2 0 2
1 0 1


1
4
1 2 1
0 0 0
1 2 1


Prewitt
1
3
1 0 1
1 0 1
1 0 1


1
3
1 1 1
0 0 0
1 1 1


Frei-Chen
1
2 2
1 0 1
2 0 2
1 0 1


1
2 2
1 2 1
0 0 0
1 2 1




(a) (b) (c)
Figura 19 - Exemplo de realce e deteo de bordas. (a) imagem original, (b) realce de bordas
utilizando os operadores de Prewitt horizontal e vertical, (c) realce de bordas utilizando os
operadores de Sobel horizontal e vertical.
A figura 19 mostra os resultados da aplicao dos operadores de Prewitt e Sobel a uma
imagem monocromtica. Os resultados obtidos com a aplicao dos operadores verticais e
Exemplos de Realce e Deteco de Bordas
18
38 Fundamentos de Imagens Digitais

MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
cor, respectivamente, so as mais importantes. Neste livro trataremos somente de bordas de
luminosidade, s quais denominaremos simplesmente bordas.
Para a deteo e realce de bordas, aplicam-se habitualmente filtros espaciais lineares de
dois tipos: (a) baseados no gradiente da funo de luminosidade, I(x,y), da imagem, e (b)
baseados no laplaciano de I(x,y).
Tanto o gradiente quanto o laplaciano costumam ser aproximados por mscaras de
convoluo ou operadores 3 x 3. Exemplos destas mscaras so os operadores de Roberts,
Sobel, Prewitt e Frei-Chen, mostrados na tabela 5.

Tabela 5 - Operadores 3 x 3 utilizados para estimar a amplitude do gradiente atravs de uma
borda.
Operador Vertical Horizontal
Roberts
0 0 1
0 1 0
0 0 0

1 0 0
0 1 0
0 0 0

Sobel
1
4
1 0 1
2 0 2
1 0 1


1
4
1 2 1
0 0 0
1 2 1


Prewitt
1
3
1 0 1
1 0 1
1 0 1


1
3
1 1 1
0 0 0
1 1 1


Frei-Chen
1
2 2
1 0 1
2 0 2
1 0 1


1
2 2
1 2 1
0 0 0
1 2 1




(a) (b) (c)
Figura 19 - Exemplo de realce e deteo de bordas. (a) imagem original, (b) realce de bordas
utilizando os operadores de Prewitt horizontal e vertical, (c) realce de bordas utilizando os
operadores de Sobel horizontal e vertical.
A figura 19 mostra os resultados da aplicao dos operadores de Prewitt e Sobel a uma
imagem monocromtica. Os resultados obtidos com a aplicao dos operadores verticais e
Imagem Original Operador de Prewitt Operador de Sobel
Laplaciano
! O Laplaciano um operador denido como:

! E pode ser aproximado pelas seguintes mscaras:
19
Fundamentos de Imagens Digitais 39
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
horizontais foram combinados por meio de uma operao lgica OR. Notar que as diferenas
so pouco perceptveis.
O laplaciano um operador definido como:

V = +
2
2
2
2
2
f x y
f
x
f
y
( , )
c
c
c
c

(2.9)

e que pode ser aproximado pelas mscaras da figura 20.

0 1 0
1 4 1
0 1 0
1 1 1 1 1
1 1 1 1 1
1 1 24 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 8 8 8 1 1 1
1 1 1 8 8 8 1 1 1
1 1 1 8 8 8

(
(
(




(
(
(
(
(
(








(
(
(
(
(
(
(
(
(
(
(
(
1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
(a) (b) (c)
Figura 20 - Mscaras para o clculo do laplaciano: (a) 3 x 3, (b) 5 x 5, (c) 9 x 9.

A figura 21 mostra os resultados obtidos com cada uma das mscaras da figura 20
aplicadas a uma imagem monocromtica.
Embora o laplaciano seja insensvel rotao, e portanto capaz de realar ou detetar
bordas em qualquer direo, seu uso restrito devido a sua grande suscetibilidade a rudo.
A figura 22 mostra um exemplo de aplicao do laplaciano 3 x 3 acima a uma imagem
monocromtica com e sem rudo.

(a) (b)
Figura 21 - Resultados da aplicao da mscara do laplaciano: (a) 3 x 3, (b) 5 x 5, (c) 9 x 9, (d)
imagem original.

Fundamentos de Imagens Digitais 39
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
horizontais foram combinados por meio de uma operao lgica OR. Notar que as diferenas
so pouco perceptveis.
O laplaciano um operador definido como:

V = +
2
2
2
2
2
f x y
f
x
f
y
( , )
c
c
c
c

(2.9)

e que pode ser aproximado pelas mscaras da figura 20.

0 1 0
1 4 1
0 1 0
1 1 1 1 1
1 1 1 1 1
1 1 24 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 8 8 8 1 1 1
1 1 1 8 8 8 1 1 1
1 1 1 8 8 8

(
(
(




(
(
(
(
(
(








(
(
(
(
(
(
(
(
(
(
(
(
1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
(a) (b) (c)
Figura 20 - Mscaras para o clculo do laplaciano: (a) 3 x 3, (b) 5 x 5, (c) 9 x 9.

A figura 21 mostra os resultados obtidos com cada uma das mscaras da figura 20
aplicadas a uma imagem monocromtica.
Embora o laplaciano seja insensvel rotao, e portanto capaz de realar ou detetar
bordas em qualquer direo, seu uso restrito devido a sua grande suscetibilidade a rudo.
A figura 22 mostra um exemplo de aplicao do laplaciano 3 x 3 acima a uma imagem
monocromtica com e sem rudo.

(a) (b)
Figura 21 - Resultados da aplicao da mscara do laplaciano: (a) 3 x 3, (b) 5 x 5, (c) 9 x 9, (d)
imagem original.

Laplaciano
20
Fundamentos de Imagens Digitais 39
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
horizontais foram combinados por meio de uma operao lgica OR. Notar que as diferenas
so pouco perceptveis.
O laplaciano um operador definido como:

V = +
2
2
2
2
2
f x y
f
x
f
y
( , )
c
c
c
c

(2.9)

e que pode ser aproximado pelas mscaras da figura 20.

0 1 0
1 4 1
0 1 0
1 1 1 1 1
1 1 1 1 1
1 1 24 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 8 8 8 1 1 1
1 1 1 8 8 8 1 1 1
1 1 1 8 8 8

(
(
(




(
(
(
(
(
(








(
(
(
(
(
(
(
(
(
(
(
(
1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
(a) (b) (c)
Figura 20 - Mscaras para o clculo do laplaciano: (a) 3 x 3, (b) 5 x 5, (c) 9 x 9.

A figura 21 mostra os resultados obtidos com cada uma das mscaras da figura 20
aplicadas a uma imagem monocromtica.
Embora o laplaciano seja insensvel rotao, e portanto capaz de realar ou detetar
bordas em qualquer direo, seu uso restrito devido a sua grande suscetibilidade a rudo.
A figura 22 mostra um exemplo de aplicao do laplaciano 3 x 3 acima a uma imagem
monocromtica com e sem rudo.

(a) (b)
Figura 21 - Resultados da aplicao da mscara do laplaciano: (a) 3 x 3, (b) 5 x 5, (c) 9 x 9, (d)
imagem original.

40 Fundamentos de Imagens Digitais

MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
(c)
(d)
Figura 21 - Continuao.

(a)

(b)
(c) (d)
Figura 22 - Exemplo de utilizao do laplaciano: (a) imagem original, (b) imagem ruidosa, (c)
laplaciano sobre (a), (d) laplaciano sobre (b).

Existem outros operadores direcionais, que nada mais so que conjuntos de mscaras
que representam aproximaes discretas de bordas ideais em vrias direes. Estes operadores
incluem as mscaras direcionais introduzidas por Prewitt [Prewitt 1970], Kirsch [Kirsch 1971],
e as mscaras simples de 3 e 5 nveis de Robinson [Robinson 1977]. A tabela 6 mostra estas
mscaras com suas respectivas direes cardeais.
Laplaciano 3x3 Laplaciano 5x5
Laplaciano 9x9 Imagem Original
Laplaciano
! Embora o laplaciano seja insensvel rotao, e portanto capaz de realar ou detectar
bordas em qualquer direo, seu uso restrito, devido a sua grande suscetibilidade a
rudo.
21
40 Fundamentos de Imagens Digitais

MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
(c)
(d)
Figura 21 - Continuao.

(a)

(b)
(c) (d)
Figura 22 - Exemplo de utilizao do laplaciano: (a) imagem original, (b) imagem ruidosa, (c)
laplaciano sobre (a), (d) laplaciano sobre (b).

Existem outros operadores direcionais, que nada mais so que conjuntos de mscaras
que representam aproximaes discretas de bordas ideais em vrias direes. Estes operadores
incluem as mscaras direcionais introduzidas por Prewitt [Prewitt 1970], Kirsch [Kirsch 1971],
e as mscaras simples de 3 e 5 nveis de Robinson [Robinson 1977]. A tabela 6 mostra estas
mscaras com suas respectivas direes cardeais.
40 Fundamentos de Imagens Digitais

MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
(c)
(d)
Figura 21 - Continuao.

(a)

(b)
(c) (d)
Figura 22 - Exemplo de utilizao do laplaciano: (a) imagem original, (b) imagem ruidosa, (c)
laplaciano sobre (a), (d) laplaciano sobre (b).

Existem outros operadores direcionais, que nada mais so que conjuntos de mscaras
que representam aproximaes discretas de bordas ideais em vrias direes. Estes operadores
incluem as mscaras direcionais introduzidas por Prewitt [Prewitt 1970], Kirsch [Kirsch 1971],
e as mscaras simples de 3 e 5 nveis de Robinson [Robinson 1977]. A tabela 6 mostra estas
mscaras com suas respectivas direes cardeais.
O Detector de Bordas de Kirsch
! O segundo exemplo do uso de templates o que foi inicialmente
descrito por Kirsch.
! O operador de Kirsch tem uma motivao diferente do de Sobel.
! Enquanto o operador de Sobel busca aproximar um operador
derivativo, o operador de Kirsch busca modelar as mudanas que
ocorrem nos nveis de cinza nas bordas.
! Assim como o operador de Kirsch, existem outros operadores
direcionais, que nada mais so que conjuntos de mscaras que
representam aproximaes discretas de bordas ideais em vrias
direes.
22
O Detector de Bordas de Kirsch
! O operador de Kirsch para o caso onde se utilizam templates 3 X 3,
utiliza as seguintes templates:
23
K7 =
!3 !3 !3
!3 0 5
!3 5 5
K6 =
!3 !3 !3
!3 0 !3
5 5 5
K5 =
!3 !3 !3
5 0 !3
5 5 !3
K0 =
!3 !3 5
!3 0 5
!3 !3 5
K4 =
5 !3 !3
5 0 !3
5 !3 !3


K1=
!3 5 5
!3 0 5
!3 !3 !3
K2 =
5 5 5
!3 0 !3
!3 !3 !3
K3 =
5 5 !3
5 0 !3
!3 !3 !3
O Detector de Bordas de Kirsch
! Estas mscaras so uma tentativa de modelar o tipo de mudana nos nveis
de cinza que se observa nas proximidades de uma borda sob vrias
orientaes.
! Existe uma mscara para cada uma das oito direes.
! Por exemplo, uma alta resposta mascara K0 indica uma borda vertical
(gradiente horizontal), no pixel correspondente ao centro da mscara.
! Para detectar as bordas, uma imagem I deve ser convoluida com cada uma
das mscaras em cada posio de pixel.
! A resposta do operador de Kirsch em um pixel a maior das respostas de
qualquer uma das 8 mscaras.
! A direo da borda no pixel em questo quantizada em uma das 8
possibilidades, e dada por i*(!/4), onde i o nmero da mscara que teve
a maior resposta (Ki).
24
Outros Detectores de Borda
25
Fundamentos de Imagens Digitais 41
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Tabela 6 - Mscaras de Prewitt, Kirsch e Robinson.
Direo
da borda
Direo
grad.
Prewitt Kirsch Robinson 3
nveis
Robinson 5
nveis
1 1 1 5 5 5 1 1 1 1 2 1
0 N 1 -2 1 -3 0 -3 0 0 0 0 0 0
-1 -1 -1 -3 -3 -3 -1 -1 -1 -1 -2 -1

1 1 1 5 5 -3 1 1 0 2 1 0
1 NO 1 -2 -1 5 0 -3 1 0 -1 1 0 -1
1 -1 -1 -3 -3 -3 0 -1 -1 0 -1 -2

1 1 -1 5 -3 -3 1 0 -1 1 0 -1
2 O 1 -2 -1 5 0 -3 1 0 -1 2 0 -2
1 1 -1 5 -3 -3 1 0 -1 1 0 -1

1 -1 -1 -3 -3 -3 0 -1 -1 0 -1 -2
3 SO 1 -2 -1 5 0 -3 1 0 -1 1 0 -1
1 1 1 5 5 -3 1 1 0 2 1 0

-1 -1 -1 -3 -3 -3 -1 -1 -1 -1 -2 -1
4 S 1 -2 1 -3 0 -3 0 0 0 0 0 0
1 1 1 5 5 5 1 1 1 1 2 1

-1 -1 1 -3 -3 -3 -1 -1 0 -2 -1 0
5 SE -1 -2 1 -3 0 5 -1 0 1 -1 0 1
1 1 1 -3 5 5 0 1 1 0 1 2

-1 1 1 -3 -3 5 -1 0 1 -1 0 1
6 E -1 -2 1 -3 0 5 -1 0 1 -2 0 2
-1 1 1 -3 -3 5 -1 0 1 -1 0 1

1 1 1 -3 5 5 0 1 1 0 1 2
7 NE -1 -2 1 -3 0 5 -1 0 1 -1 0 1
-1 -1 1 -3 -3 -3 -1 -1 0 -2 -1 0

Fator de
escala
1/5

1/15

1/3

1/4


Leitura complementar
Aos interessados em um aprofundamento matemtico dos aspectos abordados nesta seo,
recomendamos os captulos 7 e 16 de [Pratt 1991].
A seo 6.4 de [Haralick e Shapiro 1992] trata dos temas convoluo e correlao. A
questo de deteo de bordas e linhas vista no captulo 7 do mesmo livro.
O captulo 3 de [Dougherty e Giardina 1987] inteiramente dedicado deteo de
bordas.
O artigo de Dawson [Dawson 1987] traz fragmentos de cdigo em C para a convoluo
de imagens com mscaras 3 x 3 e explica sua possvel utilizao em processos de filtragem e
deteo de bordas.
Prosise [Prosise 1994a] apresenta exemplos de mscaras de convoluo teis para
produo de efeitos em imagens, tais como realce, borramento (blurring) e o efeito de baixo
relevo (emboss).
Jain [Jain 1989] apresenta o conceito de gradientes estocsticos para resolver o
problema da deteo de bordas em imagens ruidosas.
Detector de Bordas de Marr-Hildreth
! No incio da dcada de 70, David Marr tentou combinar o que se sabia
a respeito dos sistemas de viso biolgicos em um modelo que
pudesse ser utilizado para viso computacional.
! Baseado em estudos sobre o sistema visual dos mamferos, David Marr
estabeleceu 5 pontos principais para um detector de bordas:
! Em imagens naturais, as caractersticas de interesse ocorrem em
uma variedade de escalas. Nenhum operador sozinho pode
funcionar em todas estas escalas, ento o resultado de operadores
em cada uma das muitas escalas devem ser combinados.
! Uma cena natural no parece consistir em padres difratados ou
outros efeitos semelhantes, deste modo, alguma forma de mdia
local (suavizao) deve ser realizada.
26
Detector de Bordas de Marr-Hildreth
! O ltro de suavizao timo, que atende a todos os requerimentos
observados na viso biolgica, (suave e localizado no domnio do
espao e suave e limitado em faixa no domnio da freqncia), o
ltro Gaussiano.
! Quando uma mudana de intensidade (uma borda) ocorre, resulta
em um valor extremo na primeira derivada da intensidade. Isto
corresponde a um cruzamento por 0 na segunda derivada.
! O operador diferencial independente da orientao de menor ordem
o Laplaciano.
! Cada um dos cinco pontos anteriores ou baseia-se na observao de
sistemas de viso ou derivado matematicamente.
27
Detector de Bordas de Marr-Hildreth
! Desse modo, baseado nos cinco pontos estabelecidos, possvel
estabelecer um detector de bordas da seguinte maneira:
! Algoritmo de deteco de bordas:
! Execute a convoluo da imagem I com uma funo Gaussiana
bidimensional.
! Calcule o Laplaciano da imagem convoluda e chame a isto de L;
! Os pixels das bordas so aqueles para os quais existe um
cruzamento por 0 em L.
28
Detector de Bordas de Marr-Hildreth
! Os resultados das convolues com funes Gaussianas de diferentes
desvios padres so combinados para formar uma nica imagem com
as bordas delineadas.
! Neste caso, o desvio padro uma medio de escala.
! Funo Gaussiana:
29
Detector de Bordas de Marr-Hildreth
! Para executar a convoluo na imagem digital, a funo Gaussiana
deve ser amostrada e criar uma pequena imagem bidimensional.
! Aps a operao, o operador Laplaciano pode ser aplicado, e pode ser
calculado por diferenas.

! Tanto faz:
! amostrar a funo gaussiana e depois aplicar o Laplaciano;
! ou aplicar o Laplaciano funo Gaussiana ainda no amostrada
(clculo analtico), e somente ento, realizar o processo de
amostragem, criando uma mscara de convoluo que dever ser
aplicada imagem.
30
!
2
=
"
2
f
"x
2
+
"
2
f
"y
2
Detector de Bordas de Marr-Hildreth
! O Laplaciano da Gaussiana dado por:



! O algoritmo inicialmente cria uma verso bidimensional amostrada do
Laplaciano da Gaussiana.
! Depois, efetua a convoluo desta mscara com a imagem que est
sendo processada.
! Em seguida, os cruzamentos por zero so identicados, e os pixels
correspondentes a estas posies so marcados.
31
!
2
G
!
x, y ( ) =
r
2
" 2!
2
!
4
#
$
%
&
'
(
e
"r
2!
2
#
$
%
&
'
(
onde:
r = x
2
+ y
2
Detector de Bordas de Marr-Hildreth
! Um cruzamento por 0 no pixel P signica que os valores de dois pixels
vizinhos opostos em alguma direo possuem sinais opostos.
! Por exemplo, se a borda que passa por P for vertical, ento o pixel
esquerda de P ter um sinal diferente do pixel sua direita.
! Existem 4 casos a serem testados:
! acima e abaixo;
! esquerda e direita;
! as duas diagonais.
! O teste deve ser executado para cada pixel do resultado do Laplaciano
da Gaussiana.
32
Detector de Bordas de Marr-Hildreth
! Com o objetivo de garantir que uma variedade de escalas ser
utilizada, o algoritmo utiliza funes Gaussianas com dois desvios
padres diferentes (#-0,8 e #+0,8, onde # o desvio padro passado
como parmetro).
! Ento, os pixels que apresentarem cruzamentos por zero em ambos os
casos sero selecionados como pixels da borda na imagem de sada.
33
O Detector de Bordas de Canny
! O detector de bordas de Canny, apesar de datar de 1986, ainda
considerado um dos mtodos de deteco de bordas padro, e ainda usado
em pesquisas.
! O objetivo de seu criador foi o de desenvolver um algoritmo que fosse timo
segundo os seguintes critrios:
! Deteco: a probabilidade de detectar pontos que realmente estejam na
borda deve ser maximizada, enquanto que a probabilidade de falsa
deteco deve ser minimizada.
! Localizao: as bordas detectadas devem ser to prximas quanto
possvel das bordas reais.
! Nmero de respostas: para cada borda real deve corresponder uma borda
detectada.
! O detector de bordas de Canny considerado como timo para a deteco
de bordas do tipo degrau.
34
O Detector de Bordas de Canny
! O algoritmo de Canny consiste em 5 passos:
! Suavizao: borrar a imagem para remover rudo
! Encontrar os gradientes: as bordas devem ser marcadas onde os
gradientes da imagem possuem as maiores magnitudes
! Supresso dos pontos que no correspondam a mximos locais:
somente mximos locais devem ser marcados como bordas
! Limiarizao dupla: bordas em potencial so determinadas por
limiarizao
! Busca de bordas por histerese: as bordas nais devem ser
determinadas suprimindo todas as bordas que no estejam
conectadas com bordas fortes".
35
O Detector de Bordas de Canny
! Suavizao:
! A imagem deve ser suavizada usando um ltro Gaussiano.
! O kernel 5x5 de um ltro Gaussiano com desvio padro igual a 1,4
dado por:
36
Figure 1: The image used as example of Canny edge detection.
Histogram-stretching, so that the image uses the entire gray-scale. This step may not be
necessary, but it is included to counter-compensate for automatic light adjustment in the
used web camera.
2 The Canny Edge Detection Algorithm
The algorithm runs in 5 separate steps:
1. Smoothing: Blurring of the image to remove noise.
2. Finding gradients: The edges should be marked where the gradients of the image has
large magnitudes.
3. Non-maximum suppression: Only local maxima should be marked as edges.
4. Double thresholding: Potential edges are determined by thresholding.
5. Edge tracking by hysteresis: Final edges are determined by suppressing all edges that
are not connected to a very certain (strong) edge.
Each step is described in the following subsections.
2.1 Smoothing
It is inevitable that all images taken from a camera will contain some amount of noise. To
prevent that noise is mistaken for edges, noise must be reduced. Therefore the image is rst
smoothed by applying a Gaussian lter. The kernel of a Gaussian lter with a standard deviation
of = 1.4 is shown in Equation (1). The eect of smoothing the test image with this lter is
shown in Figure 2.
B =
1
159

2 4 5 4 2
4 9 12 9 4
5 12 15 12 5
4 9 12 9 4
2 4 5 4 2

(1)
2
(a) Original (b) Smoothed
Figure 2: The original grayscale image is smoothed with a Gaussian lter to suppress noise.
2.2 Finding gradients
The Canny algorithm basically nds edges where the grayscale intensity of the image changes
the most. These areas are found by determining gradients of the image. Gradients at each pixel
in the smoothed image are determined by applying what is known as the Sobel-operator. First
step is to approximate the gradient in the x- and y-direction respectively by applying the kernels
shown in Equation (2).
K
GX
=

1 0 1
2 0 2
1 0 1

K
GY
=

1 2 1
0 0 0
1 2 1

(2)
The gradient magnitudes (also known as the edge strengths) can then be determined as an
Euclidean distance measure by applying the law of Pythagoras as shown in Equation (3). It
is sometimes simplied by applying Manhattan distance measure as shown in Equation (4) to
reduce the computational complexity. The Euclidean distance measure has been applied to the
test image. The computed edge strengths are compared to the smoothed image in Figure 3.
|G| =

G
2
x
+G
2
y
(3)
|G| = |G
x
| + |G
y
| (4)
where:
G
x
and G
y
are the gradients in the x- and y-directions respectively.
It is obvious from Figure 3, that an image of the gradient magnitudes often indicate the edges
quite clearly. However, the edges are typically broad and thus do not indicate exactly where
the edges are. To make it possible to determine this (see Section 2.3), the direction of the edges
must be determined and stored as shown in Equation (5).
= arctan

|G
y
|
|G
x
|

(5)
3
O Detector de Bordas de Canny
! Determinao dos gradientes:
! O algoritmo de Canny, assim como vrios outros, basicamente
encontra bordas onde a intensidade de nvel de cinza na imagem
varia mais.
! Tais reas podem ser encontradas determinando o gradiente da
imagem, o que pode ser feito usando o operador de Sobel.
! Entretanto, os pixels que se destacam aps a aplicao do operador
de Sobel normalmente esto espalhados, e no indicam claramente
a posio da borda.
! Para tratar esse problema, a direo das bordas ($ = atan(S
y
/S
x
))
deve ser obtida.
37
(a) Smoothed (b) Gradient magnitudes
Figure 3: The gradient magnitudes in the smoothed image shown in 3b as well as their directions are
determined by applying e.g. the Sobel-operator.
2.3 Non-maximum suppression
The purpose of this step is to convert the blurred edges in the image of the gradient magnitudes
to sharp edges. Basically this is done by preserving all local maxima in the gradient image,
and deleting everything else. The algorithm is for each pixel in the gradient image:
1. Round the gradient direction to nearest 45

, corresponding to the use of an 8-connected


neighbourhood.
2. Compare the edge strength of the current pixel with the edge strength of the pixel in the
positive and negative gradient direction. I.e. if the gradient direction is north (theta =
90

), compare with the pixels to the north and south.


3. If the edge strength of the current pixel is largest; preserve the value of the edge strength.
If not, suppress (i.e. remove) the value.
A simple example of non-maximum suppression is shown in Figure 4. Almost all pixels have
gradient directions pointing north. They are therefore compared with the pixels above and
below. The pixels that turn out to be maximal in this comparison are marked with white
borders. All other pixels will be suppressed. Figure 5 shows the eect on the test image.
5
3 4 1
6
3 1
3 2
4
5
7 5
4
6
4 6
2 3
7
Figure 4: Illustration of non-maximum suppression. The edge strengths are indicated both as colors and
numbers, while the gradient directions are shown as arrows. The resulting edge pixels are marked with
white borders.
4
O Detector de Bordas de Canny
! Supresso dos pontos que no correspondam a mximos locais:
! O propsito desse passo o de converter as bordas borradas obtidas na
imagem da magnitude dos gradientes em bordas precisas.
! A ideia consiste em preservar os mximos locais na imagem da magnitude
dos gradientes, e eliminar o restante.
! O algoritmo, a ser aplicado a cada pixel na imagem do gradiente consiste
em:
1. Arredonde a direo do gradiente $ para o mltiplo de 45
o
mais
prximo, o que corresponde a usar uma vizinhana 8.
2. Compare a magnitude da borda no pixel corrente com a magnitude da
borda do pixel que esteja na direo positiva e negativa do gradiente.
3.Se a magnitude da borda no pixel corrente a maior, preserve o valor da
magnitude da borda no pixel corrente, caso contrrio remova o valor.
38
O Detector de Bordas de Canny
! Supresso dos pontos que no correspondam a mximos locais:
39
(a) Smoothed (b) Gradient magnitudes
Figure 3: The gradient magnitudes in the smoothed image shown in 3b as well as their directions are
determined by applying e.g. the Sobel-operator.
2.3 Non-maximum suppression
The purpose of this step is to convert the blurred edges in the image of the gradient magnitudes
to sharp edges. Basically this is done by preserving all local maxima in the gradient image,
and deleting everything else. The algorithm is for each pixel in the gradient image:
1. Round the gradient direction to nearest 45

, corresponding to the use of an 8-connected


neighbourhood.
2. Compare the edge strength of the current pixel with the edge strength of the pixel in the
positive and negative gradient direction. I.e. if the gradient direction is north (theta =
90

), compare with the pixels to the north and south.


3. If the edge strength of the current pixel is largest; preserve the value of the edge strength.
If not, suppress (i.e. remove) the value.
A simple example of non-maximum suppression is shown in Figure 4. Almost all pixels have
gradient directions pointing north. They are therefore compared with the pixels above and
below. The pixels that turn out to be maximal in this comparison are marked with white
borders. All other pixels will be suppressed. Figure 5 shows the eect on the test image.
5
3 4 1
6
3 1
3 2
4
5
7 5
4
6
4 6
2 3
7
Figure 4: Illustration of non-maximum suppression. The edge strengths are indicated both as colors and
numbers, while the gradient directions are shown as arrows. The resulting edge pixels are marked with
white borders.
4
(a) Gradient values (b) Edges after non-maximum sup-
pression
Figure 5: Non-maximum suppression. Edge-pixels are only preserved where the gradient has local
maxima.
2.4 Double thresholding
The edge-pixels remaining after the non-maximum suppression step are (still) marked with their
strength pixel-by-pixel. Many of these will probably be true edges in the image, but some may
be caused by noise or color variations for instance due to rough surfaces. The simplest way to
discern between these would be to use a threshold, so that only edges stronger that a certain
value would be preserved. The Canny edge detection algorithm uses double thresholding. Edge
pixels stronger than the high threshold are marked as strong; edge pixels weaker than the low
threshold are suppressed and edge pixels between the two thresholds are marked as weak. The
eect on the test image with thresholds of 20 and 80 is shown in Figure 6.
(a) Edges after non-maximum sup-
pression
(b) Double thresholding
Figure 6: Thresholding of edges. In the second image strong edges are white, while weak edges are grey.
Edges with a strength below both thresholds are suppressed.
2.5 Edge tracking by hysteresis
Strong edges are interpreted as certain edges, and can immediately be included in the nal
edge image. Weak edges are included if and only if they are connected to strong edges. The
5
O Detector de Bordas de Canny
! Limiarizao dupla:
! Os pixels da borda que restarem aps a supresso dos pixels que
no correspondam a mximos locais podem ser de fato devido a
bordas reais, mas tambm podem ser devido a rudos ou variaes
de cor.
! A maneira mais simples de discernir entre esses dois casos consiste
em usar um limiar, de modo que somente bordas que sejam mais
intensas do que certo valor sejam mantidas.
! O detector de bordas de Canny utiliza uma limiarizao dupla.
40
O Detector de Bordas de Canny
! Limiarizao dupla:
! Pixels cuja a magnitude associada seja maior do que um limiar
superior so marcados como fortes.
! Pixels cuja magnitude associada for menor do que um determinado
limiar baixo so eliminados.
! E pixels cuja magnitude associada esteja entre o limiar inferior e o
superior so marcados como fracos.
41
(a) Gradient values (b) Edges after non-maximum sup-
pression
Figure 5: Non-maximum suppression. Edge-pixels are only preserved where the gradient has local
maxima.
2.4 Double thresholding
The edge-pixels remaining after the non-maximum suppression step are (still) marked with their
strength pixel-by-pixel. Many of these will probably be true edges in the image, but some may
be caused by noise or color variations for instance due to rough surfaces. The simplest way to
discern between these would be to use a threshold, so that only edges stronger that a certain
value would be preserved. The Canny edge detection algorithm uses double thresholding. Edge
pixels stronger than the high threshold are marked as strong; edge pixels weaker than the low
threshold are suppressed and edge pixels between the two thresholds are marked as weak. The
eect on the test image with thresholds of 20 and 80 is shown in Figure 6.
(a) Edges after non-maximum sup-
pression
(b) Double thresholding
Figure 6: Thresholding of edges. In the second image strong edges are white, while weak edges are grey.
Edges with a strength below both thresholds are suppressed.
2.5 Edge tracking by hysteresis
Strong edges are interpreted as certain edges, and can immediately be included in the nal
edge image. Weak edges are included if and only if they are connected to strong edges. The
5
Pixels fortes so brancos
limiar superior: 80
Pixels fracos so cinza
limiar inferior: 20
O Detector de Bordas de Canny
! Busca de bordas por histerese:
! Pixels fortes da borda so considerados como "bordas efetivas, e
podem ser imediatamente includos na imagem nal das bordas.
! Por outro lado, os pixels fracos da borda sero includos se e
somente se estiverem conectados a pixels fortes da borda.
! A lgica por trs dessa operao de que a ocorrncia de rudo e
outras pequenas variaes no devem resultar em pixels fortes
(desde que o algoritmo esteja bem ajustado).
! Dessa forma, pixels fortes devem ser devidos somente a bordas
reais na imagem original.
42
O Detector de Bordas de Canny
! Busca de bordas por histerese:
! Por outro lado, os pixels fracos podem ser devido a bordas reais ou a
rudos ou variaes de cores.
! Os pixels fracos decorrentes de rudos ou variaes de cores devem estar
espalhados ao longo de toda a imagem, independentemente da existncia
de bordas na imagem original, e portanto somente uma pequena parcela
deles que estar localizada nas adjacncias de pixels fortes.
! Pixels fracos que sejam de fato devidos a bordas reais provavelmente
estaro conectados diretamente a pixels fortes da borda.
43
logic is of course that noise and other small variations are unlikely to result in a strong edge
(with proper adjustment of the threshold levels). Thus strong edges will (almost) only be due to
true edges in the original image. The weak edges can either be due to true edges or noise/color
variations. The latter type will probably be distributed independently of edges on the entire
image, and thus only a small amount will be located adjacent to strong edges. Weak edges due
to true edges are much more likely to be connected directly to strong edges.
Edge tracking can be implemented by BLOB-analysis (Binary Large OBject). The edge pixels
are divided into connected BLOBs using 8-connected neighbourhood. BLOBs containing at
least one strong edge pixel are then preserved, while other BLOBs are suppressed. The eect
of edge tracking on the test image is shown in Figure 7.
(a) Double thresholding (b) Edge tracking by hysteresis (c) Final output
Figure 7: Edge tracking and nal output. The middle image shows strong edges in white, weak edges
connected to strong edges in blue, and other weak edges in red.
3 Implementation of Canny Edge Detection
As noted in Section 1, all images in this worksheet (except the original) are produced by our
implementation. A few things should be noted with regards to this:
1. The (source) image and the thresholds can be chosen arbitrarily.
2. Only a smoothing lter with a standard deviation of = 1.4 is supported (the one shown
in Equation 1).
3. The implementation uses the correct Euclidean measure for the edge strengths, described
in Section 2.2.
4. The dierent lters cannot be applied to edge pixels. This causes the output image to be
8 pixels smaller in each direction.
The last step in the algorithm known as edge tracking can be implemented as either iterative
or recursive BLOB analysis [4]. A recursive implementation can use the grass-re algorithm.
However, our implementation uses the iterative approach. First all weak edges are scanned
for neighbour edges and joined into groups. At the same time it is marked which groups are
adjacent. Then all of these markings are examined to determine which groups of weak edges are
6
O Detector de Bordas de Canny
44
connected to strong edges (directly or indirectly). All weak edges that are connected to strong
edges are marked as strong edges themselves. The rest of the weak edges are suppressed. This
can be interpreted as BLOB analysis where only BLOBs containing strong edges are preserved
(and considered as one BLOB).
Figure 8 shows the complete edge detection process on the test image including all intermediate
results.
(a) Original (b) Smoothed (c) Gradient magnitudes (d) Edges after non-
maximum suppression
(e) Double thresholding (f) Edge tracking by hys-
teresis
(g) Final output
Figure 8: All steps of the edge detection.
References
[1] Sergei Azernikov. Sweeping solids on manifolds. In Symposium on Solid and Physical Mod-
eling, pages 249255, 2008.
[2] John Canny. A computational approach to edge detection. Pattern Analysis and Machine
Intelligence, IEEE Transactions on, PAMI-8(6):679698, Nov. 1986.
[3] F. Mai, Y. Hung, H. Zhong, and W. Sze. A hierarchical approach for fast and robust ellipse
extraction. Pattern Recognition, 41(8):25122524, August 2008.
[4] Thomas B. Moeslund. Image and Video Processing. August 2008.
7
Marr-Hildrett x Canny
45
Marr-Hildrett Canny
! = 1 ! = 2
! = 3 ! = 4
! = 1 ! = 2
! = 3 ! = 4

Das könnte Ihnen auch gefallen