Você está na página 1de 8

CENTRO UNIVERSITRIO FEEVALE

INSTITUTO DE CINCIAS EXATAS E TECNOLGICAS


CURSO DE SISTEMAS DE INFORMAO FISEM

Mtodo de deteco de bordas Sobel

Rafael Kunz
Tiago Joner
Marcelo Laux
Jean Meiners

Computao Grfica
Professora Marta Rosecler Bez El Boukhair

Novo Hamburgo, novembro de 2009.

Introduo
Os mtodos de deteco de bordas so ferramentas de grande utilidade dentro da
rea de tratamento de imagens. Neste trabalho iremos abordar o mtodo Sobel,
explicando seu funcionamento e suas caractersticas.

Mtodo de deteco de bordas Sobel


Conceito de deteco de bordas
Deteco de bordas so chamadas as tcnicas de processamento de imagens
computacional. Neste trabalho iremos abordar o mtodo Sobel.
Estas tcnicas determinam pontos em uma imagem digital, onde h mudana
repentina de luminosidade. Estas mudanas geralmente representam traos importantes
da imagem como descontinuao da profundidade ou superfcie, mudana das
propriedades do material ou variao luminosa. Isto, por exemplo, pode significar a
transio entre o objeto e o ambiente onde ele se encontra na imagem.

Histria
Os primeiros trabalhos neste campo foram apresentados da dcada de 80. Este
processo de deteco de imagens era feito atravs da convoluo da imagem original
com o Laplaciano da funo Gaussina. Em 1984 surgiu o trabalho de Koenderink, que
relacionava a estrutura das imagens equao do calor, utilizando a evoluo temporal
para a suavizao das imagens. A aplicao pura da equao demarcava as bordas, mas
tambm deteriorava a imagem.
Sethian props a equao do fluxo da curvatura mdia. Primeiramente os
resultados eram satisfatrios, porm ainda no eram capazes de preservar a localizao
das bordas da imagem.
Perona & Malik introduziram o modelo de suavizao seletiva da imagem,
combinaram a difuso direcionada com o processo de deteco de bordas. Este modelo
passou a ser referenciado como modelo de difuso linear e fornecia um bom algoritmo
para deteco de bordas, remoo de rudos e segmentao de imagens.

Filtro Gaussiano
Forma discreta 3x3 aproximada da funo Gaussiana

1 2 1
1

Z=
2
4
2

16
1 2 1
O operador de suavizamento Gaussiano basicamente uma operao de convoluo,
utilizada para borrar uma imagem digital com o objetivo de remover detalhes e
rudos.
// Cdigo fonte, desenvolvido o filtro gaussiano em Delphi.
for i := 1 to (Resultado_Gauss.Width - 2) do
begin
for j := 1 to (Resultado_Gauss.Height - 2) do
begin
// aplicando a matriz de Gauss.
VarZ :=
(i-1,j-1) * MatrizZ[0,0] +
(i ,j-1) * MatrizZ[1,0] +
(i+1,j-1) * MatrizZ[2,0] +
(i-1, j) * MatrizZ[0,1] +
(i , j) * MatrizZ[1,1] +
(i+1, j) * MatrizZ[2,1] +
(i-1,j+1) * MatrizZ[0,2] +
(i ,j+1) * MatrizZ[1,2] +
(i+1,j+1) * MatrizZ[2,2] ;
Resultado_Gauss.Canvas.Pixels[i, j] := Trunc(VarZ / 16);
end;
End;

Mtodo Sobel
O filtro Sobel consiste num operador que calcula diferenas finitas, dando uma
aproximao do gradiente da intensidade dos pixels da imagem. Ele calcula o gradiente
da intensidade da imagem em cada ponto, dando a direo da maior variao de claro
para escuro e a quantidade de variao nesta direo. Assim obtm-se uma noo de
como varia a luminosidade em cada ponto, de forma mais suave ou expressiva.
Com isto consegue-se estimar a presena de uma transio de claro para escuro,
ou vice e versa, e qual a orientao desta transio. Como as variaes bruscas de
tonalidade, luz e cor correspondem a fronteiram bem definidas entre objetos, o mtodo
consegue fazer a deteco e delimitao dos contornos.

Matematicamente o operador Sobel utiliza duas matrizes 3x3 que so


convoludas com a imagem original para calcular a aproximao das derivadas, uma
para as variaes horizontais e outra para as verticais. Sendo A a imagem inicial ento,
Gx e Gy sero duas imagens que em cada ponto contm uma aproximao s derivadas
horizontal e vertical de A.
| -1

0 +1 |

Gx = | -2

0 +2 |

| -1

0 +1 |

| +1 +2 +1 |
e

Gy = | 0

0 |

| -1 -2 -1 |

Portanto a magnitude, G, e a direo, , do gradiente so dados por:


G = (Gx + Gy)
= arctan (Gy/Gx)
// Cdigo fonte aplicando Sobel
for i := 1 to (Resultado_Gauss.Width - 2) do
begin
for j := 1 to (Resultado_Gauss.Height - 2) do
begin
// algoritmo de Sobel.
VarX :=
(i-1,j-1) * MatrizX[0,0] +
(i

,j-1) * MatrizX[1,0] +

(i+1,j-1) * MatrizX[2,0] +
(i-1,j+1) * MatrizX[0,2] +
(i

,j+1) * MatrizX[1,2] +

(i+1,j+1) * MatrizX[2,2];
VarY :=
(i-1,j-1) * MatrizY[0,0] +
(i-1,

j) * MatrizY[0,1] +

(i-1,j+1) * MatrizY[0,2] +
(i+1,j-1) * MatrizY[2,0] +
(i+1,

j) * MatrizY[2,1] +

(i+1,j+1) * MatrizY[2,2];
// Inicia a criaao da nova imagem aplicando Sobel.
// Eleva ao quadrado e extrai a raiz quadrada
VarG := VarX * VarX + VarY * VarY
Cinza := round(sqrt(VarG));

//sqrt funcao da raiz quadrada

Concluso
O mtodo de deteco de borda Sobel bastante sofisticado. Trata-se de um
algoritmo complexo, mas bastante adaptativo, pois esta apto a ser utilizado para
deteco de bordas de qualquer imagem.
Devido a grande quantidade de rudos que as imagens de teste tiveram buscamos
implementar o filtro Gaussiano e notamos que a utilizao deste mtodo de suavizao
melhorou significativamente a aplicao do mtodo Sobel deixando a borda com mais
qualidade.
Tivemos algumas dificuldades em encontrar material terico sobre o mtodo
Sobel na internet e os poucos materiais que encontramos no aprofundavam o suficiente
para nosso melhor entendimento. Porm, diferente da parte terica a parte prtica teve
grande importncia para nos facilitar o entendimento e agilizar o nosso trabalho,
utilizamos trechos de cdigo fonte disponibilizados na internet para a implementao do
mtodo de Sobel.

Bibliografias
http://pt.wikipedia.org/wiki/Filtro_Sobel
http://pt.wiktionary.org/wiki/borda
http://www.imagesurvey.com.br/2009/10/deteccao-de-bordas/

Você também pode gostar