Prueba libre de Geografía para obtención título Bachillerato - 2024
Cit112011 principios procimagenes
1. Principios de filtrado y convoluci´on en im´agenes digitales
Rodrigo Rojas Moraleda
April 8, 2011
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 1/32
2. Outline
1 Vectores y sus representaciones
2 Matrices y sus representaciones
3 Sistemas Lineales
4 Detecci´on de bordes
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 2/32
3. Outline
1 Vectores y sus representaciones
2 Matrices y sus representaciones
3 Sistemas Lineales
4 Detecci´on de bordes
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 3/32
4. Vectores
representaciones
Vector v =
x
y
z
Base vectorial y
coordenadas
r
Px
y
O
x
Producto Interno a · b = a1b1 + a2b2 + a3b3 = abt
= a1 a2 a3
b1
b2
b3
Norma a
2
= aat
=
√
a1a1 + a2a2 + a3a3
Ortogonalidad = a · b = 0, ⊥
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 4/32
5. Outline
1 Vectores y sus representaciones
2 Matrices y sus representaciones
3 Sistemas Lineales
4 Detecci´on de bordes
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 5/32
7. Matrices
Operaciones con vectores
Al Multiplicar una matriz cuadrada a un vector se obtiene otro vector
a1,1 a1,2
a2,1 a2,2
·
x
y
=
x
y
Ejemplo: la matriz de
rotaci´on 2D
coseno(θ) −seno(θ)
seno(θ) coseno(θ)
O
v
v'
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 7/32
8. Valores propios y vectores propios
A partir de una transformaci´on A se busca resolver
a1,1 a1,2
a2,1 a2,2
·
x
y
= λ
x
y
v'=λv
v
v'
Al resolver en una matriz 2D los vectores propios son rotaciones
V = v1 v2 =
coseno(θ) −seno(θ)
seno(θ) coseno(θ)
, v1 · v2 = 0, ⊥
V tAV =
cos(θ) sen(θ)
−sen(θ) cos(θ)
a1,1 a1,2
a2,1 a2,2
cos(θ) −sen(θ)
sen(θ) cos(θ)
=
λ1 0
0 λ2
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 8/32
9. Outline
1 Vectores y sus representaciones
2 Matrices y sus representaciones
3 Sistemas Lineales
4 Detecci´on de bordes
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 9/32
10. Operador del sistema
Un sistema convierte una entrada f(x) en una salida g(x) don de x es una
variable independiente.
f(x)
System
H
g(x)
Es requerido que la salida del sistema este completamente determinada por
las entradas.
g(x) = H[f(x)]
H es el operador del sistema que mapea el conjunto de las posibles salidas
{g(x)} con cada una de las posibles entradas {f(x)}.
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 10/32
11. Operador lineal
H es un operador lineal para una clase de entradas {f(x)} si:
H[αifi(x) + αjfj(x)] = αiH[fi(x)] + αjH[fj(x)]
= αigi(x) + ajgj(x)
para toda fi(x) y fj(x) pertenecientes a {f(X)}, donde αi, αj son
constantes arbitrarias y
gi(x) = H[fi(x)]
es la salida para una entrada arbitraria fi(x) ∈ {f(x)}
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 11/32
12. Sistema lineal
Un sistema lineal es un sistema descrito por un operador lineal (y respecto
a la misma clase de entradas) que obedece las propiedades de escalado
(homogeneidad) y de superposici´on (aditiva)
H[αf(x)] = αH[f(x)]
H[f1(x) + f2(x)] = H[f1(x)] + H[f2(x)]
H g(x)
f1(x)
f2(x)
+
H
g(x)
f1(x)
f2(x)
+
H
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 12/32
13. Sistemas
Invariante en el tiempo / espacio
Un operador H es denominado invariante en el tiempo o invariante espacial
para una clase de entradas {f(x)} si
gi(x) = H[fi(x)] =⇒ gi(x + x0) = H[fi(x + x0)]
, ∀ fi(x) ∈ {f(x)} y ∀ x0
H g(x- T)f(x) T
f(x- T)
H g(x- T)f(x) T
g(x)
La forma de la salida no cambia con el retraso de la entrada, la Salida es la
misma si el retraso es colocado en la entrada o en la salida.
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 13/32
14. Sistema
Causal
Un sistema causal es aquel que es no-anticipativo; esto es, que las salidas
dependen de entradas presentes y pasadas, pero no de entradas futuras.
f(x) = 0 x < x0 ⇒ g(x) = H[f(x)] = 0 x < x0
En procesamiento de im´agenes digitales, si consideramos la variable
dependiente como los p´ıxeles de la derecha y de la izquierda (el “futuro”) de
la posici´on actual de la imagen. Entonces tendremos un sistema no-causal.
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 14/32
15. Convoluci´on
Pulso unitario
La Funci´on Delta de Dirac δ(t), conocida tambi´en como el impulso unitario
o funci´on delta es una funci´on infinitamente angosta, infinitamente alta,
cuya integral tiene un valor unitario.
∞
−∞
δ(t) dt = 1
Esta funci´on es cero en todas partes excepto en el origen
Propiedades:
f(t)δ(t) = f(0)δ(t)
∞
−∞
f(t)δ(t) dt =
∞
−∞
f(0)δ(t) dt = f(0)
∞
−∞
δ(t) dt = f(0)
∞
−∞
f(t)δ(x − t) dt = f(x)
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 15/32
16. Convoluci´on
Respuesta al impulso
∞
−∞
f(t)δ(x − t) dt = f(x)
g(x) = H[f(x)] g(x) = H
∞
−∞
f(a)δ(x − a)da
g(x) =
∞
−∞
f(a)H [δ(x − a)] da =
∞
−∞
f(a)h (x, a)) da
Se denomina respuesta al impulso al t´ermino
h(x, a) = H [δ(x − a)]
Que es la respuesta del sistema lineal a un pulso unitario localizado en la
posici´on x
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 16/32
17. Convoluci´on
Convoluci´on Integral
La expresi´on
g(x) =
∞
−∞
f(a)h(x, a) da
indica que la respuesta de un sistema lineal queda caracterizada por la
respuesta al impulso.
Si el operador H, es invariante entonces.
H [δ(x − a)] = h(x − a)
y la integral de superposici´on.
g(x) =
∞
−∞
f(a)h(x − a) da
convoluci´on Integral
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 17/32
18. Convoluci´on
Convoluci´on Integral
g(x) =
∞
−∞
f(a)h(x − a) da
Considerando que a es una variable de integraci´on
g(x) = f(x) h(x)
donde
f(x) h(x) =
∞
−∞
f(a)h(x − a) da
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 18/32
19. Convoluci´on
Representaci´on discreta
δ [n] =
1 si n = 0
0 otro caso
f [n] =
∞
k=−∞
f [k] δ [n − k]
La suma de convoluci´on queda expresada como:
g [n] =
∞
k=−∞
f [k] h [n − k]
g [n] = f [n] h [n]
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 19/32
20. Outline
1 Vectores y sus representaciones
2 Matrices y sus representaciones
3 Sistemas Lineales
4 Detecci´on de bordes
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 20/32
21. Detecci´on de bordes
Filtros del gradiente
Un borde es una transici´on local, de un objeto a otro sin ser
necesariamente una frontera, solo es una transici´on localmente
identificable.
Variaciones fuertes de la intensidad que corresponden a las fronteras de
los objetos visualizados.
M´etodos basados en el gradiente: detectan los bordes en base a las
derivadas espaciales de la imagen aproximadas en forma de operadores
de convoluci´on.
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 21/32
22. Gradiente
Detecci´on de bordes
Considerando una imagen como un campo escalar z = E(x, y), por ejemplo
de la intensidad de los pixeles.
O
=λv
v' y
x
E
∂E/∂x
∂E/∂y
(x,y,E(x,y))
Figure: Representaci´on de la evaluaci´on de la funci´on de valor de un plano
tangencial (x, y, E(x, y)) a un pixel
Gradiente grad(E) = ∂E
∂x
, ∂E
∂y
t
Vectores Normales: n− = ∂E
∂x
, ∂E
∂y
, −1
t
, n+ = −∂E
∂x
, −∂E
∂y
, +1
t
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 22/32
23. Gradiente
Detecci´on de bordes
O
=λv
v' y
x
E
∂E/∂x
∂E/∂y
(x,y,E(x,y))
Vector gradiente, E =
∂E
∂x
∂E
∂y
=
Gx
Gy
Magnitud vector gradiente E = ∂E
∂x
2
+ ∂E
∂y
2
1
2
Orientaci´on del vector gradiente: φ( f) = tan−1 Gx
Gy
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 23/32
24. Detecci´on de bordes
Aproximaci´on de derivadas
Una manera de aproximar las derivadas en un entorno discreto es utilizar
un operador explicito del tipo {+1, −1} que calcule E(xi) − E(xj) para dos
pixeles en un entorno. Esta operaci´on particular recibe el nombre de
diferencias hacia adelante.
∂I
∂x
≈ I(x + 1, y) − I(x, y)
3 4 51 1 1 1 2 5 5
F[n]
F'[n]=F[n+1] - F[n-1]
2 2 10 0 0 1 2 0 0
F'[n]=F[n] - F[n-1]
2 2 10 0 0 1 2 0 0
3 3 31 1 1 3 3 3 1
F[n]
F'[n]=F[n+1] - F[n-1]
0 0 -20 0 2 2 0 -2 0
F'[n]=F[n] - F[n-1]
1 1
0
0 0 00 0 0 2 0 -2 0 0
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 24/32
25. Detecci´on de bordes
Kernels de convoluci´on
Conexi´on con sistemas LTI
Puesto que las derivadas son operadores lineales e invariantes, la
aproximaci´on en el calculo del gradiente es realizado normalmente por
convoluci´on con una funci´on discreta denominada Kernel.
Se han propuesto numerosos kernels para aproximar este operador.
Roberts Kernels
∂E
∂x
≈ E(i + 1, j + 1) − E(i, j) ∂E
∂y
≈ E(i + 1, j) − E(i, j + 1)
Gx =
+1 0
0 -1
Gy=
0 +1
-1 0
E = (Gx E)2 + (Gy E)2
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 25/32
26. Detecci´on de bordes
Kernels de convoluci´on
Prewitt Kernels
∂E
∂x
≈ E(i + 1, j) − E(i − 1, j)/2 ∂E
∂y
≈ E(i, j + 1) − E(i, j − 1)/2
Esto corresponde con un Kernel de convoluci´on del tipo
Gx = -1 0 1
Sin embargo este kernel muestra emp´ıricamente ser sensible al ruido. El
enfoque de Prewitt reduce este problema mediante el calculo de un
promedio en y cuando se calcula la componente x del gradiente y promedio
en x en la componente y del gradiente.
Gx =
-1 0 1
-1 0 1
-1 0 1
Gy=
-1 -1 -1
0 0 0
1 1 1
E = (Gx E)2 + (Gy E)2
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 26/32
27. Detecci´on de bordes
Kernels de convoluci´on
Sobel Kernel
∂E
∂x
≈ E(i + 1, j) − E(i − 1, j)/h ∂E
∂y
≈ E(i, j + 1) − E(i, j − 1)/h
En la promediaci´on aplica mayor peso a los p´ıxeles centrales..
Gx =
-1 0 1
-2 0 2
-1 0 1
Gy=
-1 -2 -1
0 0 0
1 2 1
Este tipo de Kernel de convoluci´on se puede considerar como una
aproximaci´on 3x3 de la primera derivada de un kernel Gaussiano. Es decir
es equivalente a convolucionar con un kernel gaussiano de 3x3 y luego
calcular sus derivadas.
∂(I G)
∂x
= E ∂G
∂x
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 27/32
28. Detecci´on de bordes
M´etodos de la segunda derivada
M´etodos de la segunda derivada
Operadores que buscan m´aximos en la magnitud del gradiente. En el caso
unidimensional encontrar el borde ideal es equivalente a encontrar el punto
donde la derivada es m´axima o m´ınima dependiendo del sentido de a
pendiente. Una forma de encontrar estos puntos es volver a derivar y
encontrar los puntos donde la derivada es 0.
La b´usqueda de bordes optimos consiste en encontrar donde la segunda
derivada es 0. Este punto (D = 0) raramente se consigue en im´agenes
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 28/32
29. Detecci´on de bordes
Puntos de inflexi´on
Proporcionan dos puntos de transici´on uno positivo en la entrada a un
transici´on y otro a la salida.
son muy sensibles al ruido
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 29/32
30. Detecci´on de bordes
Puntos de inflexi´on
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 30/32
31. Detecci´on de bordes
Laplaciano
Kernel Laplaciano
El Laplaciano es invariante rotacional, y es posible encontrar los bordes de
la imagen buscando los puntos donde el laplaciano es 0 ( Marr-Hildreth
operador)
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 31/32
32. Questions ?
Rodrigo Rojas Moraleda
rodrigo.rojas@postgrado.usm.cl
Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´on en im´agenes digitales 32/32