# Detecção de borda

Detecção de borda é uma técnica de processamento de imagem e visão computacional para determinar pontos de uma imagem digital em que a intensidade luminosa muda repentinamente. Mudanças repentinas em imagens geralmente refletem eventos importantes no cenário, como a descontinuação da profundidade (transição entre o objeto e o fundo), descontinuação da orientação da superfície, mudança das propriedades do material ou variações na iluminação da cena.
A detecção de borda é bastante usada na área de extração de características. Sua utilização reduz significativamente a quantidade de dados a serem processados, e descarta informação que é considerada menos relevante, ainda que preservando importantes propriedades estruturais de uma imagem. A detecção pode ser prejudicada por bordas falsas criadas por ruídos na imagem (provenientes da digitalização, compressão ou através do próprio processo de captura da imagem). Isso pode ser amenizado ao utilizar alguma técnica de redução de ruído antes da detecção de borda.

## Motivação

Quando se fala em análise de imagens, o primeiro passo geralmente é a segmentação da imagem em subdivisões de suas partes constituintes ou objetos. O quanto a imagem deve ser subdividida depende unicamente do domínio do problema a ser resolvido, por exemplo, uma imagem obtida de um radar de trânsito provavelmente terá como objetivo a identificação de veículos, sendo assim deve ser realizado uma segmentação de objetos que tenham formato e tamanho de um carro. Para realizar essa segmentação de forma automátizada técnicas de detecção de bordas, que serão apresentadas ao longo desse artigo, são amplamente utilizadas.
Outra aplicação para técnicas de detecção de borda é a extração de caracteristicas de forma, auxiliando na detecção de padrões e reconhecimento automático de imagens.

## Técnicas de Detecção de Bordas

Existem diversos métodos de aplicar detecção de bordas, nessa seção serão apresentados alguns métodos. A utilização de cada um vária de acordo com o dominio do problema a ser resolvido. Para a aplicação dessas técnicas é importante frisar que uma imagem, de modo computacional, é uma função $f(x,y)$, que representa o nível de cor em uma determinada coordenada $(x,y)$.

### Gradiente

O gradiente de uma imagem é computado pela váriação da mesma nas direções de x e y, o vetor gradiente é marcado na direção de maior váriabilidade. O gradiente é dado pela seguinte formula:
$\triangledown f={\begin{bmatrix}Gx\\Gy\end{bmatrix}}$, Onde $Gx={\partial f \over dx}$ e $Gy={\partial f \over dy}$
O gradiente também pode ser expresso da seguinte forma:
$\nabla f=mag(\nabla f)=[Gx^{2}+Gy^{2}]^{\frac {1}{2}}$
Porém para facilitar a implementação, costuma-se fazer a seguinte aproximação:
$\nabla f\approx |Gx|+|Gy|$
Diversas técnicas de detecção de bordas costumam utilizar uma técnica de gradiente através de mascaras.

### Filtro de Sobel

O filtro de Sobel utiliza a técnica de Gradiente utilizando máscaras para representar $Gx$ e $Gy$. Essas máscaras são convoluidas na imagem original. As mascaras são dadas pelas seguintes matrizes 3x3:
$Gx={\begin{bmatrix}-1&-2&-1\\0&0&0\\1&2&1\end{bmatrix}}$e $Gy={\begin{bmatrix}-1&0&1\\-2&0&2\\-1&0&1\end{bmatrix}}$

### Gradiente Morfológico

Seja $f$ uma imagem, $b$ um elemento estruturante, $\oplus$ a dilataçãomorfologica e $\Theta$ a erosão morfológica temos que o Gradiente Morfológico é dado por:
$g=(f\oplus b)-(f\Theta b)$