25
Filtros lineales Filtros de rango Filtros en el dominio espacial Lecci´ on 05.2 Dr. Pablo Alvarado Moya CE5201 Procesamiento y An´ alisis de Im´ agenes Digitales ´ Area de Ingenier´ ıa en Computadores Tecnol´ogico de Costa Rica I Semestre, 2017 P. Alvarado — TEC — 2017 Operaciones espaciales 1 / 22

Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Filtros en el dominio espacialLeccion 05.2

Dr. Pablo Alvarado Moya

CE5201 Procesamiento y Analisis de Imagenes DigitalesArea de Ingenierıa en Computadores

Tecnologico de Costa Rica

I Semestre, 2017

P. Alvarado — TEC — 2017 Operaciones espaciales 1 / 22

Page 2: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Contenido

1 Filtros linealesMascaras de suavizamientoAproximacion del gradienteLaplaciano

2 Filtros de rango

P. Alvarado — TEC — 2017 Operaciones espaciales 2 / 22

Page 3: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Mascaras de suavizamientoAproximacion del gradienteLaplaciano

Filtros lineales

Suavizamiento (Filtros paso-bajo)

Aproximacion de derivacion (Filtros paso-alto)

Laplaciano (Filtros paso-alto)

Nitidez

P. Alvarado — TEC — 2017 Operaciones espaciales 3 / 22

Page 4: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Mascaras de suavizamientoAproximacion del gradienteLaplaciano

Filtros de media movil

h(x , y) =1

N2

11...1

[1 1 . . . 1]

=1

N2

1 1 . . . 11 1 . . . 1...

.... . .

...1 1 . . . 1

P. Alvarado — TEC — 2017 Operaciones espaciales 4 / 22

Page 5: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Mascaras de suavizamientoAproximacion del gradienteLaplaciano

Filtros gaussianos y binomiales

Gaussiano:

g(x , y , σ) = g(x , σ)g(y , σ)

g(x , σ) =1

σ√

2πe

12 ( x

σ )2

Binomial:

BN(x , y) = BN(x)BN(y)

BN(x) =1

K

(Nx

) (Nx

)=

N!

(N − n)!N!K =

N∑x=0

(Nx

)

P. Alvarado — TEC — 2017 Operaciones espaciales 5 / 22

Page 6: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Mascaras de suavizamientoAproximacion del gradienteLaplaciano

Triangulo de Pascal

11 1

1 2 11 3 3 1

1 4 6 4 11 5 10 10 5 1

1 6 15 20 15 6 11 7 21 35 35 21 7 1

1 8 28 56 70 56 28 8 1...

BN = 1K [1 1] ∗ [1 1] ∗ · · · ∗ [1 1]︸ ︷︷ ︸

N veces

P. Alvarado — TEC — 2017 Operaciones espaciales 6 / 22

Page 7: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Mascaras de suavizamientoAproximacion del gradienteLaplaciano

Gradiente

En espacio continuo:

∇f =

∂xf (x , y)

∂yf (x , y)

Con frecuencia se utilizan

|∇f | =

√(∂

∂xf (x , y)

)2

+

(∂

∂yf (x , y)

)2

∠∇f = arctan

(∂∂y f (x , y)

∂∂x f (x , y)

)

P. Alvarado — TEC — 2017 Operaciones espaciales 7 / 22

Page 8: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Mascaras de suavizamientoAproximacion del gradienteLaplaciano

Gradiente en el espacio discreto (1)Aproximacion por diferencias

Aproximacion hacia atras (Kernel [1↑− 1]):

∂xf (x , y) ≈f (x , y)− f (x − 1, y)

∂yf (x , y) ≈f (x , y)− f (x , y − 1)

Aproximacion hacia adelante (Kernel [1 −1↑

]):

∂xf (x , y) ≈f (x + 1, y)− f (x , y)

∂yf (x , y) ≈f (x , y + 1)− f (x , y)

P. Alvarado — TEC — 2017 Operaciones espaciales 8 / 22

Page 9: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Mascaras de suavizamientoAproximacion del gradienteLaplaciano

Gradiente en el espacio discreto (2)Aproximacion por diferencias

Aproximacion centrada (Kernel

[12 0

↑− 1

2

]):

∂xf (x , y) ≈1

2(f (x + 1, y)− f (x − 1, y))

∂yf (x , y) ≈1

2(f (x , y + 1)− f (x , y − 1))

P. Alvarado — TEC — 2017 Operaciones espaciales 9 / 22

Page 10: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Mascaras de suavizamientoAproximacion del gradienteLaplaciano

Gradiente en el espacio discretoKernel de Roberts

Aproximaciones por diferencias: componentes desplazadas

+1

+1

+1+1+1

0

0

0

0

−1

−1

−1

−1−1

−1

Aproximacion con kernels de Roberts

+1

+1

+1+1+1

0

0

0

0

−1

−1

−1

−1−1

−1

Derivacion amplifica ruido de alta frecuencia

Reduccion de ruido en direccion ortogonal con filtro pasa-bajos

P. Alvarado — TEC — 2017 Operaciones espaciales 10 / 22

Page 11: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Mascaras de suavizamientoAproximacion del gradienteLaplaciano

Gradiente en el espacio discretoKernel de Roberts

Aproximaciones por diferencias: componentes desplazadas

+1

+1

+1+1+1

0

0

0

0

−1

−1

−1

−1−1

−1

Aproximacion con kernels de Roberts

+1

+1

+1+1+1

0

0

0

0

−1

−1

−1

−1−1

−1

Derivacion amplifica ruido de alta frecuencia

Reduccion de ruido en direccion ortogonal con filtro pasa-bajos

P. Alvarado — TEC — 2017 Operaciones espaciales 10 / 22

Page 12: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Mascaras de suavizamientoAproximacion del gradienteLaplaciano

Gradiente en el espacio discretoKernel de Roberts

Aproximaciones por diferencias: componentes desplazadas

+1

+1

+1+1+1

0

0

0

0

−1

−1

−1

−1−1

−1

Aproximacion con kernels de Roberts

+1

+1

+1+1+1

0

0

0

0

−1

−1

−1

−1−1

−1

Derivacion amplifica ruido de alta frecuencia

Reduccion de ruido en direccion ortogonal con filtro pasa-bajos

P. Alvarado — TEC — 2017 Operaciones espaciales 10 / 22

Page 13: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Mascaras de suavizamientoAproximacion del gradienteLaplaciano

Gradiente en el espacio discretoKernel de Roberts

Aproximaciones por diferencias: componentes desplazadas

+1

+1

+1+1+1

0

0

0

0

−1

−1

−1

−1−1

−1

Aproximacion con kernels de Roberts

+1

+1

+1+1+1

0

0

0

0

−1

−1

−1

−1−1

−1

Derivacion amplifica ruido de alta frecuencia

Reduccion de ruido en direccion ortogonal con filtro pasa-bajos

P. Alvarado — TEC — 2017 Operaciones espaciales 10 / 22

Page 14: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Mascaras de suavizamientoAproximacion del gradienteLaplaciano

Gradiente en el espacio discretoKernel de Prewitt

+1

+1+1+1

+1+1+1

+1

+1

+1

+1

+1

+1

+1 0 00 0

0

0

0

0 −1 −1−1−1

−1

−1

−1

−1

Reduccion de ruido utilizando filtro de media movil

Aproximacion central para gradiente

Factor de normalizacion de 1/6

Origen: aproximacion cuadratica de imagen en Vecindad-8

P. Alvarado — TEC — 2017 Operaciones espaciales 11 / 22

Page 15: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Mascaras de suavizamientoAproximacion del gradienteLaplaciano

Gradiente en el espacio discretoKernel de Sobel

+1

+1+1

+1+1

+1

+1

+1

+1

+1

0 00 0

0

0

0

0 −1 −1−1

−1

−1

−1 +2

+2

+2+2

−2

−2

Reduccion de ruido utilizando filtro binomial

Aproximacion central para gradiente

Factor de normalizacion de 1/8

Origen: aproxima DoG

P. Alvarado — TEC — 2017 Operaciones espaciales 12 / 22

Page 16: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Mascaras de suavizamientoAproximacion del gradienteLaplaciano

Otros kernels para gradientes

Robinson (no separable)

+1 +1+1

+1+1

+1

+1

+1

+1

+1 −1 −1−1

−1

−1

−1

−2−2

Kirsch (no separable, 4 direcciones)

−5

−5

−5

+3

−5 −5

+3 +3

+3 +3+3

−5

+3

+3

+3

+3

00

Ando (optimizado para invarianza a rotacion)

P. Alvarado — TEC — 2017 Operaciones espaciales 13 / 22

Page 17: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Mascaras de suavizamientoAproximacion del gradienteLaplaciano

Notas sobre el gradiente

En literatura aparecen rotados 180◦ (inconsistente pero sinmayor efecto) ¿origen?

Sobel, Robinson y Kirsch: Versiones a ±45◦

P. Alvarado — TEC — 2017 Operaciones espaciales 14 / 22

Page 18: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Mascaras de suavizamientoAproximacion del gradienteLaplaciano

DoGDerivative of Gaussians

Idea:1 Filtrar con kernel gaussiano para reducir ruido2 Gradiente/Derivar resultado

Pero:

o(x , y) = ∇(g(x , y , σ) ∗ i(x , y))

= i(x , y) ∗ ∇g(x , y , σ)

Mas economico calcular ∇g(x , y , σ):

∂g

∂x= − x

σ2g(x , y , σ)

∂g

∂y= − y

σ2g(x , y , σ)

Sobel se considera aproximacion de DoG

P. Alvarado — TEC — 2017 Operaciones espaciales 15 / 22

Page 19: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Mascaras de suavizamientoAproximacion del gradienteLaplaciano

Laplaciano

Gradiente con dos componentes es anisotropico⇒ ambas componentes cambian si imagen rota sobre pixel

Laplaciano es isotropico⇒ unico valor no cambia si imagen rota sobre pixel

Definicion en espacio contınuo:

∇2f (x , y) =∂2f

∂x2+∂2f

∂y2

P. Alvarado — TEC — 2017 Operaciones espaciales 16 / 22

Page 20: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Mascaras de suavizamientoAproximacion del gradienteLaplaciano

Laplaciano discreto

Definicion en espacio discreto basada en aproximacion endiferencias:

∂2f

∂x2= f (x + 1, y)− 2f (x , y) + f (x − 1, y)

∂2f

∂y2= f (x , y + 1)− 2f (x , y) + f (x , y − 1)

El laplaciano discreto se implementa con

+1

+1

+1+1

0

0

0

0

−4

Otras variantes existen para reducir ruido (e.g. LoG)

Laplaciano no es separable

P. Alvarado — TEC — 2017 Operaciones espaciales 17 / 22

Page 21: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Mascaras de suavizamientoAproximacion del gradienteLaplaciano

Usos del Laplaciano

Medicion de “bordicidad” (edgeness)

Mejora de nitidez:

g(x , y) = f (x , y) + c∇2f (x , y)

(a imagen se le amplifican los bordes)

P. Alvarado — TEC — 2017 Operaciones espaciales 18 / 22

Page 22: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Filtros no lineales

Filtros de Rango

P. Alvarado — TEC — 2017 Operaciones espaciales 19 / 22

Page 23: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Filtros de rangoRank ordered filters

Tambien llamados filtros por orden (order-statistic filters)

Son no lineales ⇒ no aplica convolucion

Se toma el elemento r de los pıxeles en la vecindad,ordenados.

Ejemplos: filtro maximo, filtro mınimo, filtro mediana

P. Alvarado — TEC — 2017 Operaciones espaciales 20 / 22

Page 24: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Resumen

1 Filtros linealesMascaras de suavizamientoAproximacion del gradienteLaplaciano

2 Filtros de rango

P. Alvarado — TEC — 2017 Operaciones espaciales 21 / 22

Page 25: Filtros lineales Filtros de rango · 2020. 12. 18. · Filtros lineales Filtros de rango Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave,

Filtros linealesFiltros de rango

Este documento ha sido elaborado con software libre incluyendo LATEX, Beamer, GNUPlot, GNU/Octave, XFig,Inkscape, LTI-Lib-2, GNU-Make y Subversion en GNU/Linux

Este trabajo se encuentra bajo una Licencia Creative Commons Atribucion-NoComercial-LicenciarIgual 3.0 Unpor-ted. Para ver una copia de esta Licencia, visite http://creativecommons.org/licenses/by-nc-sa/3.0/ o envıeuna carta a Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.

© 2005-2017 Pablo Alvarado-Moya Area de Ingenierıa en Computadores Instituto Tecnologico de Costa Rica

P. Alvarado — TEC — 2017 Operaciones espaciales 22 / 22