• Nenhum resultado encontrado

Fundamentação Teórica

2.1 Conceitos de Processamento Digital de Imagens

2.1.4 Filtros Passa-Altas

Filtros passa-altas, como o próprio nome já indica, deixam passar apenas os sinais de alta frequência, produzindo assim um realce nas bordas da imagem. A seguir, são apresentados dois filtros (Sobel e laplaciano) que o executa, assim como um método de detecção de bordas, com base em Sobel, chamado Canny.

2.1.4.1 Filtro de Sobel

O filtro de Sobel é usado para detectar bordas. Antigamente, quando ainda não existiam técnicas de detecção de bordas fundadas com uma base teórica, foi o mais popular detector de bordas, por se sobressair entre seus contemporâneos [3]. Sua diferença está no fato de possuir duas componentes kernels, sendo uma para o eixo x e outra para o eixo y, que são normalmente matrizes quadradas de ordem 3 — embora haja como construir maiores através de algoritmos. A Figura 2.7mostra como os operadores x e y do filtro de Sobel.

Figura 2.7: Componentesx e y do filtro de Sobel [3].

Observando o arranjo de elementos das matrizes Mx e My, constata-se que a segunda é sim-plesmente a transposta da primeira.

Considerando-se que existem uma matriz imagem I a ser processada e queSx e Sy são resul-tados da convolução de Mx e My I, respectivamente, têm-se as Equações 2.6e 2.7:

Sx=IMx (2.6)

Sy =IMy (2.7)

Daí, juntam-se essas duas componentes para formar a Equação 2.8, cujo resultado da combi-nação produz um vetor gradiente no píxel p. Tal vetor aponta para o maior crescimento de brilho da imagem I em volta do píxel p[5].

S(p) =Sx(p)−→

i +Sy(p)−→

j =IM (2.8)

A Figura2.8detalha o efeito de cada uma das componentesMx eMy, bem como o efeito delas em conjunto.

(a) Imagem original.

(b) Sobel emx. (c) Sobel emy. (d) Sobel.

Figura 2.8: Realce de contornos por meio do operador de Sobel [5].

É importante salientar queMxrealça as bordas na direçãox, afetando assim as bordas verticais, como é possível visualizar na Subfigura 2.8(b). Da mesma forma,My torna as bordas horizontais mais visíveis, como na Subfigura 2.8(c).

2.1.4.2 Filtro Laplaciano

O filtro Laplaciano é usado para implementar uma derivada de segunda ordem em imagens.

Como se deve saber, uma derivada de segunda ordem avaliada em um píxel x pode ser expressa da forma que se encontra na Equação2.9:

f00(x)∼=f0(x)−f0(x+ 1) (2.9) Por Séries de Taylor, todavia, sabe-se que a derivada de primeira ordem em torno do píxel x é dada pela Equação 2.10:

f0(x)∼= f(x+ ∆x)−f(x)

xO(∆x) (2.10)

em queO(∆x) é o erro associado a operação sendo realizada no sistema, que é significativo somente para distâncias relativamente grandes [3], e ∆x é a distância do píxel que está sendo avaliado até outro mais próximo em unidade de píxel, que no caso é 1, por se tratar de vizinhos imediatos.

Assim sendo, desconsidera-se a existência deO(∆x), por causa do erro associado ser ínfimo. Dessa maneira, a Equação 2.10fica sendo equivalente a Equação2.11:

f0(x) =f(x+ 1)−f(x) (2.11)

Substituindo, então, a Equação2.11 na Equação 2.9, chega-se à Equação2.12:

f00(x)∼=f(x+ 1)−f(x)−f(x+ 2) +f(x+ 1) =−1·f(x) + 2·f(x+ 1)−1·f(x+ 2) (2.12) Com isso, uma parte do kernel é obtida, a qual é a derivada de segunda ordem horizontal.

Para encontrar o restante do kernel, combinam-se tal parte com a derivada de segunda ordem vertical, unindo e somando seus respectivos píxeis centrais. Finalmente, encontra-se o kernel do filtro laplaciano como é apontado pela Figura 2.9:

Figura 2.9: Kernel laplaciano gerado por meio da composição das derivadas de segunda ordem em x ey [3].

Outros kernels de filtro laplaciano são apresentados pelas matrizesKlapl1e Klapl2 [5]:

Klapl1 =

−1 −1 −1

−1 8 −1

−1 −1 −1

Klapl2 =

1 −2 1

−2 4 −2 1 −2 1

No caso do kernel da Figura 2.9, percebe-se que é feita a diferença entre um píxel e a média aritmética de seus quatro vizinhos imediatos. Já em Klapl1, é realizada a diferença entre um píxel e a média de seus oito vizinhos imediatos.

Para qualquer um doskernels de operador laplaciano vistos até aqui, ressalta-se a inversão de sinal de seus elementos não afeta em nada na funcionalidade do filtro. O que importa, na verdade, é que a soma dos coeficientes seja igual a zero, para que bordas não sejam detectadas em regiões de brilho uniforme [3].

Uma aplicação da filtragem com o operador laplaciano é aludida pela Figura2.10. A detecção de bordas é realizada a matriz imagem da Subfigura2.10(a)e se revela na Subfigura2.10(b)como sendo os zeros que apareceram nas bordas da matriz L.

2.1.4.3 Canny

Canny é um método de detecção de bordas bastante popular. A fim de entender como ele funciona, por ser um algoritmo multifase, é interessante seguir alguns passos determinados pelo seu criador, John Canny, os quais são enumerados abaixo [6]:

(a) Matriz imagem original. (b) Depois da aplicação do operador laplaciano.

Figura 2.10: Efeito da filtragem com o operador laplaciano [3].

1o passo: Reduzir ruídos

Uma vez que ruídos podem atrapalhar a detecção de bordas, um operador gaussiano 5×5 é utilizado para removê-los.

2o passo: Encontrar gradientes de intensidade da imagem

Implementa-se o operador Sobel tanto na direção horizontal quanto na vertical para obter os gradientes respectivos Gx e Gy, gerando duas imagens filtradas. Destas duas, encontra-se a magnitude e o ângulo do gradiente de cada píxel por meio das Equações 2.13 e2.14:

|G|=qG2x+G2y (2.13)

θ= tan1 G2y G2x

!

(2.14) Na Equação2.14, o gradiente, que é sempre perpendicular às bordas, tem seu ângulo arredon-dado para um dos quatro ângulos que representam a vertical, a horizontal, e as duas diagonais.

3o passo: Suprimir pontos de não-máximos

É feita uma varredura por ao longo das bordas para checar se não há píxeis enganosos, que eventualmente não constituem bordas. Para tal, o máximo local é analisado para cada píxel, tendo em vista sua adjacência na direção do gradiente do conjunto. A Figura2.11exemplifica isso. Nela, compara-se o píxel A, que está em uma borda, com os píxeis C e B, pelo fato de todos estarem na direção horizontal do gradiente. Como A é um máximo local na adjacência que compõe uma borda, o valor de sua magnitude permanece o mesmo. Caso contrário, a magnitude zero seria atribuída ao seu valor de intensidade no momento da varredura.

Figura 2.11: Análise de píxeis para descobrir o máximo local [6].

4o passo: Limiarizar a histerese

Define-se aqui quais píxeis são bordas de verdade e quais não são. Para isso, escolhem valores para dois limiares: um máximo e outro mínimo. Todo píxel cuja intensidade está acima do limiar máximo é considerado uma borda-verdadeira. Em contrapartida, todo aquele cuja intensidade se encontra abaixo do limiar mínimo é definitivamente não-borda. Mas aqueles que estão entre os dois limiares são classificados de acordo com a sua conectividade mútua. Nesse caso, se um deles está ligado a um píxel borda-verdadeira, este passa a ser considerado parte da borda. Caso contrário, ele é descartado. Isso fica claro na Figura 2.12:

Figura 2.12: Limiares de máximo e mínimo que definem o que é borda de verdade [6].

Na Figura2.12,Aé um píxel considerado borda-verdadeira, por estar acima do limiar máximo.

Com isso, C torna-se um píxel componente da borda, já que está conectado a feature da qualA faz parte. No entanto, o píxelB não é considerado integrante de nenhuma borda. Sua magnitude, então, é alterada para zero.

Tendo em vista os quatro passos apresentados, a aplicação do filtro de Canny produz a detecção de bordas mostrada na Figura 2.13:

Documentos relacionados