filtros lineares - instituto de computaçãoafalcao/mo443/slides-aula6.pdf · i;i) e um kernel k^ =...

29
Filtros Lineares Alexandre Xavier Falc˜ ao Instituto de Computa¸c˜ ao - UNICAMP [email protected] Alexandre Xavier Falc˜ ao MO443/MC920 - Introdu¸ ao ao Proc. de Imagem Digital

Upload: others

Post on 26-Mar-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros Lineares

Alexandre Xavier Falcao

Instituto de Computacao - UNICAMP

[email protected]

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 2: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Introducao

Dada uma imagem cinza I = (DI , I ) e um kernel K = (A,K ),a convolucao J = (DJ , J) = I ∗ K e uma filtragem linear.

Para simplificar, podemos assumir que DJ = DI e que o filtroK ja esta refletido em relacao a origem de A.

Nos proximos slides, a escolha do filtro passa a seressencialmente a escolha da relacao de adjacencia A e dospesos em K .

A origem da relacao de adjacencia A e normalmente nocentro da imagem de pesos.

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 3: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Introducao

Dada uma imagem cinza I = (DI , I ) e um kernel K = (A,K ),a convolucao J = (DJ , J) = I ∗ K e uma filtragem linear.

Para simplificar, podemos assumir que DJ = DI e que o filtroK ja esta refletido em relacao a origem de A.

Nos proximos slides, a escolha do filtro passa a seressencialmente a escolha da relacao de adjacencia A e dospesos em K .

A origem da relacao de adjacencia A e normalmente nocentro da imagem de pesos.

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 4: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Introducao

Dada uma imagem cinza I = (DI , I ) e um kernel K = (A,K ),a convolucao J = (DJ , J) = I ∗ K e uma filtragem linear.

Para simplificar, podemos assumir que DJ = DI e que o filtroK ja esta refletido em relacao a origem de A.

Nos proximos slides, a escolha do filtro passa a seressencialmente a escolha da relacao de adjacencia A e dospesos em K .

A origem da relacao de adjacencia A e normalmente nocentro da imagem de pesos.

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 5: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Introducao

Dada uma imagem cinza I = (DI , I ) e um kernel K = (A,K ),a convolucao J = (DJ , J) = I ∗ K e uma filtragem linear.

Para simplificar, podemos assumir que DJ = DI e que o filtroK ja esta refletido em relacao a origem de A.

Nos proximos slides, a escolha do filtro passa a seressencialmente a escolha da relacao de adjacencia A e dospesos em K .

A origem da relacao de adjacencia A e normalmente nocentro da imagem de pesos.

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 6: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de suavizacao

Filtros de suavizacao (blurring) reduzem ruıdo de alta frequencia,mas borram as bordas da imagem.

Filtro Media

K =

1/9 1/9 1/91/9 1/9 1/91/9 1/9 1/9

Filtro Gaussiano

K =1

16∗

1 2 12 4 21 2 1

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 7: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de suavizacao

Filtros de suavizacao (blurring) reduzem ruıdo de alta frequencia,mas borram as bordas da imagem.

Filtro Media

K =

1/9 1/9 1/91/9 1/9 1/91/9 1/9 1/9

Filtro Gaussiano

K =1

16∗

1 2 12 4 21 2 1

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 8: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de suavizacao

Filtros de suavizacao (blurring) reduzem ruıdo de alta frequencia,mas borram as bordas da imagem.

Filtro Media

K =

1/9 1/9 1/91/9 1/9 1/91/9 1/9 1/9

Filtro Gaussiano

K =1

16∗

1 2 12 4 21 2 1

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 9: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de suavizacao

Os exemplos anteriores foram de filtros 3x3 pixels. Considerandouma adjacencia circular, q ∈ A(p) se ‖q − p‖2 ≤ r2 (ou esfericaem 3D), de raio r , os coeficientes do filtro Gaussiano podem sercalculados por:

K (q − p) =exp

(−‖q−p‖

2

2σ2

)∑∀s∈A(p) K (s − p)

onde σ = r/3 e p e o centro do disco (origem de A).

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 10: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de suavizacao

Filtragem Gaussiana:

original filtrada

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 11: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de realce de bordas

Filtros de realce de bordas destacam bordas da imagem em umadada direcao, mas podem amplificar o ruıdo.

Realce por filtros de Sobel

Ky =

−1 −2 −10 0 01 2 1

Kx =

−1 0 1−2 0 2−1 0 1

Kx e Ky realcam bordas nas direcoes x (bordas verticais) e y(bordas horizontais), respectivamente.

Sendo Gx = I ∗ Kx e Gy = I ∗ Ky , ~G (p) = Gx(p)~i + Gy (p)~j edito vetor gradiente em p, o qual aponta para a direcao demaior crescimento de brilho na imagem I em torno de p. Suamagnitude |~G (p)| e muito usada.

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 12: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de realce de bordas

Filtros de realce de bordas destacam bordas da imagem em umadada direcao, mas podem amplificar o ruıdo.

Realce por filtros de Sobel

Ky =

−1 −2 −10 0 01 2 1

Kx =

−1 0 1−2 0 2−1 0 1

Kx e Ky realcam bordas nas direcoes x (bordas verticais) e y(bordas horizontais), respectivamente.

Sendo Gx = I ∗ Kx e Gy = I ∗ Ky , ~G (p) = Gx(p)~i + Gy (p)~j edito vetor gradiente em p, o qual aponta para a direcao demaior crescimento de brilho na imagem I em torno de p. Suamagnitude |~G (p)| e muito usada.

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 13: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de realce de bordas

Filtros de realce de bordas destacam bordas da imagem em umadada direcao, mas podem amplificar o ruıdo.

Realce por filtros de Sobel

Ky =

−1 −2 −10 0 01 2 1

Kx =

−1 0 1−2 0 2−1 0 1

Kx e Ky realcam bordas nas direcoes x (bordas verticais) e y(bordas horizontais), respectivamente.

Sendo Gx = I ∗ Kx e Gy = I ∗ Ky , ~G (p) = Gx(p)~i + Gy (p)~j edito vetor gradiente em p, o qual aponta para a direcao demaior crescimento de brilho na imagem I em torno de p. Suamagnitude |~G (p)| e muito usada.

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 14: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de realce de bordas

Realce de bordas

Sobel em x Sobel em y Magnitude

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 15: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de realce de bordas

A magnitude de um vetor gradiente realca bordas em todas asdirecoes. De um modo mais geral:

Considerando uma adjacencia circular, q ∈ A(p) se ‖q − p‖2 ≤ r2

(ou esferica em 3D) de raio r , o vetor gradiente ~G (p) pode sercalculado por

~G (p) =∑

∀q∈A(p)

[I (q)− I (p)] ~pq,

onde ~pq = (xq−xp√

(xq−xp)2+(yq−yp)2,

yq−yp√(xq−xp)2+(yq−yp)2

)

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 16: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de realce de bordas

A magnitude de um vetor gradiente realca bordas em todas asdirecoes. De um modo mais geral:Considerando uma adjacencia circular, q ∈ A(p) se ‖q − p‖2 ≤ r2

(ou esferica em 3D) de raio r , o vetor gradiente ~G (p) pode sercalculado por

~G (p) =∑

∀q∈A(p)

[I (q)− I (p)] ~pq,

onde ~pq = (xq−xp√

(xq−xp)2+(yq−yp)2,

yq−yp√(xq−xp)2+(yq−yp)2

)

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 17: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de realce de bordas

A magnitude de um vetor gradiente realca bordas em todas asdirecoes. De um modo mais geral:Considerando uma adjacencia circular, q ∈ A(p) se ‖q − p‖2 ≤ r2

(ou esferica em 3D) de raio r , o vetor gradiente ~G (p) pode sercalculado por

~G (p) =∑

∀q∈A(p)

[I (q)− I (p)] ~pq,

onde ~pq = (xq−xp√

(xq−xp)2+(yq−yp)2,

yq−yp√(xq−xp)2+(yq−yp)2

)

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 18: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de realce de bordas

O filtro de Sobel em uma dada direcao x , por exemplo, equivale aduas operacoes:

Uma suavizacao na direcao y , calculada por filtragem linear

com K =

121

, e

Uma derivada da imagem I em x , Ix = (DI ,dIdx ), calculada por

filtragem linear com K =[−1 0 1

].

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 19: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de realce de bordas

Em 3D, as fatias do filtro ao longo de x seriam:

Kx ,1 =

−1 −2 −1−2 −4 −2−1 −2 −1

Kx ,2 =

0 0 00 0 00 0 0

Kx ,3 =

1 2 12 4 21 2 1

* Similarmente ao longo de y e z .

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 20: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de realce de bordas

O realce de bordas em 8 direcoes pode ser ainda representadopelos seguintes filtros.

Norte 1 1 11 −2 1−1 −1 −1

Nordeste 1 1 1

−1 −2 1−1 −1 1

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 21: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de realce de bordas

O realce de bordas em 8 direcoes pode ser ainda representadopelos seguintes filtros.

Leste −1 1 1−1 −2 1−1 1 1

Sudeste −1 −1 1

−1 −2 11 1 1

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 22: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de realce de bordas

O realce de bordas em 8 direcoes pode ser ainda representadopelos seguintes filtros.

Sul −1 −1 −11 −2 11 1 1

Sudoeste 1 −1 −1

1 −2 −11 1 1

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 23: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de realce de bordas

O realce de bordas em 8 direcoes pode ser ainda representadopelos seguintes filtros.

Oeste 1 1 −11 −2 −11 1 −1

Noroeste 1 1 1

1 −2 −11 −1 −1

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 24: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de realce de bordas

Os filtros anteriores realcam bordas com deslocamento em relacaoa posicao real delas. Os filtros Laplacianos equivalem a derivadasegunda da imagem (e.g., d2I

dx2 + d2Idy2 ), localizando as bordas entre

valores negativos e positivos (zero crossings). Exemplos de kernels: 0 −1 0−1 4 −10 −1 0

−1 −1 −1−1 8 −1−1 −1 −1

1 −2 1−2 4 −21 −2 1

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 25: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de realce de bordas

No entanto, a imagem e normalmente suavizada antes doLaplaciano, para reduzir a amplificacao de ruıdo.O Laplaciano da Gaussiana (LoG) e usado no caso geral de umaadjacencia A : q ∈ A(p) se ‖q − p‖2 ≤ r2 (circular ou esferica).

K (q − p) = − 1

πσ4

[1− ‖q − p‖2

2σ2

]exp

(−‖q − p‖2

2σ2

)onde σ = r/3 e p e o centro (origem) de A.

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 26: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de realce de bordas

Outra forma de realce de bordas, bastante popular, e a Diferencade Gaussianas (DoG) (chapeu mexicano). Explorando apropriedade I ∗ K1 − I ∗ K2 = I ∗ (K1 − K2), o kernelK = (K1 − K2) pode ser definido como:

A : q ∈ A(p) se ‖q − p‖2 ≤ r2.

K (q − p), q ∈ A(p), p sendo a origem de A:

K (q − p) =1

2πσ21

exp

(−‖q − p‖2

2σ21

)− 1

2πσ22

exp

(−‖q − p‖2

2σ22

)onde σ2 > σ1 e σ2 = r/3.

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 27: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtros de realce de bordas

Diferenca de Gaussianas

Original Magnitude de Sobel DoG

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 28: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtro de realce de imagem

A soma da imagem com o realce de bordas causa uma melhordefinicao do contraste na imagem (sharpness). 0 −1 0

−1 4 −10 −1 0

+

0 0 00 1 00 0 0

=

0 −1 0−1 5 −10 −1 0

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital

Page 29: Filtros Lineares - Instituto de Computaçãoafalcao/mo443/slides-aula6.pdf · I;I) e um kernel K^ = (A;K), a convolu˘c~ao J^ = (D J;J) = ^I K^ e uma ltragem linear. Para simpli car,

Filtro de realce de imagem

Outros exemplos sao:

0 0 −1 0 00 −1 −2 −1 0−1 −2 17 −2 −10 −1 −2 −1 00 0 −1 0 0

−1 −1 −1−1 9 −1−1 −1 −1

1 −2 1−2 5 −21 −2 1

Alexandre Xavier Falcao MO443/MC920 - Introducao ao Proc. de Imagem Digital