Download - Capitulo 2 Filtrado Filtrado Espacial Visión de Máquina Ingeniería en Automática Industrial
Capitulo 2Capitulo 2FiltradoFiltrado
Filtrado Espacial
Visión de Máquina
Ingeniería en Automática Industrial
Filtrado EspacialFiltrado EspacialSon filtros que se realizan directamente sobre
la imagen y por tanto en el dominio del espacio.
Aplicaciones:◦ Reducción de ruido◦ Detección de bordes en una dirección◦ Contornos◦ Suavizado
Los píxeles de la nueva imagen dependen del píxel de la imagen original y sus vecinos.
Filtrado EspacialFiltrado EspacialEquivalencia de los filtros en el plano frecuencial son
las mascaras de convolución en el dominio espacial.
Filtrado EspacialFiltrado Espacial
g(x,y)Imagen procesada
g(x,y) = T[ f(x,y) ]
w1
w2
w3
w4
w5
w6
w7
w8
w9
f(x,y)Imagen de entrada
w:máscara, kernel,
ventana,filtro
w1
w2
w3
w4
w5
w6
w7
w8
w9
ConvoluciónConvoluciónLa convolución es una operación matemática
que suma una función f consigo misma repetidas veces en todo el dominio de otra función h, utilizando en cada suma como valor de escala el valor de h en ese punto de su dominio.
Su formulación matemática es:
( )* ( ) ( ) ( )f x h x f x h u x dx
Convolución discretaConvolución discretaModifica el nivel de gris de los pixeles de la
imagen teniendo en cuenta los pixeles de su entorno de vecindad
La máscara h debe ser rotada antes de efectuar el producto con f.
( , ) * ( , ) ( , )m n
g i j f h f m n h i m j n
EjemploEjemplo
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
f
8 1 6
3 5 7
4 9 2
h
2 9 4
7 5 3
6 1 8
g(2,4) = 1*2+8*9+15*4+7*7+14*5+16*3+13*6+20*1+22*8 = 575
A = magic(5); h = [8 1 6; 3 5 7; 4 9 2];% Convolucion de dos matricesg=conv2(A,h,'same')
A = magic(5); h = [8 1 6; 3 5 7; 4 9 2];% Convolucion de dos matricesg=conv2(A,h,'same')
Filtro espacial pasa bajoFiltro espacial pasa bajoPromediado del entornoDifumina los bordes y otros detalles
g(x,y) es simplemente la media de todos los niveles de gris del área de la máscara
1 1 1
1 1 1
1 1 1
1*
9
Filtro espacial pasa altoFiltro espacial pasa alto La suma de los coeficientes es cero.
Si la máscara esta sobre un nivel de gris constante o lentamente variable, la salida proporcionada por la máscara es cero o un valor pequeño
Reducción del valor medio de la imagen Mejora de los bordes
-1 -1 -1
-1 8 -1
-1 -1 -1
1*
9
Filtro de la medianaFiltro de la medianaEl nivel de gris se reemplaza por la mediana
de los niveles de gris de la vecindad.
Carga computacional elevada
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
4,5,6,7,10,12,13,19,23
Mediana
g(3,2)=10
Considere f(x) que representa un perfil de línea
El perfil muestra las variaciones al pasar de una zona clara a una zona oscura y viceversa
La primera derivada detecta la variación. El máximo del valor absoluto coincide con el punto central del borde
La segunda derivada detecta los cambios en la pendiente y los cambios de la primera derivada. Los pasos por cero coinciden con el centro del borde
Filtro diferencial - Filtro diferencial - GradienteGradiente
Filtro diferencial - Filtro diferencial - GradienteGradientePara una función f(x,y) el gradiente de f en el
punto de coordenadas (x,y) se define como el vector,
La derivada apunta en la dirección de máxima variación de f(x,y).
( , )
( , )x
y
ff x yx
ff f x yy
2 2( , ) ( ( , )) ( ( , ))x yf x y f x y f x y
1 ( , )( , ) tan
( , )y
x
f x yx y
f x y
Aprox discreta del Aprox discreta del gradientegradienteAprox por diferencia de pixeles adyacentes
Máscaras
Gradiente de fila Gradiente de columna
z1 z2 z3
z4 z5 z6
z7 z8 z9
y
x2 2
5 8 5 6( , ) ( ) ( )f x y z z z z
5 8 5 6( , )f x y z z z z
0 0 0
0 1 -1
0 0 0
0 0 0
0 1 0
0 -1 0
Aprox discreta del Aprox discreta del gradientegradienteAprox por diferencias cruzadas
Máscaras de Roberts
Extremada sensibilidad al ruido
z1 z2 z3
z4 z5 z6
z7 z8 z9
2 25 9 6 8( , ) ( ) ( )f x y z z z z y
x5 9 6 8( , )f x y z z z z
0 0 0
0 1 0
0 0 -1
0 0 0
0 0 1
0 -1 0
1 ( , )( , ) tan
4 ( , )y
x
f x yx y
f x y
Aprox discreta del Aprox discreta del gradientegradienteOperadores de Prewitt
Se involucran a los vecinos de filas/columnas adyacentes para proporcionar mayor inmunidad al ruido.
-1 -1 -1
0 0 0
1 1 1
-1 0 1
-1 0 1
-1 0 1
7 8 9 1 2 3
3 6 9 1 4 7
( , ) ( ) ( )
( ) ( )
f x y z z z z z z
z z z z z z
1*
31
*3
Aprox discreta del Aprox discreta del gradientegradienteOperadores de Sobel
Más sensible a los bordes diagonales
-1 -2 -1
0 0 0
1 2 1
-1 0 1
-2 0 2
-1 0 1
7 8 9 1 2 3
3 6 9 1 4 7
( , ) ( 2 ) ( 2 )
( 2 ) ( 2 )
f x y z z z z z z
z z z z z z
1*
41
*4
ImplementaciónImplementación
x yf f ( , )f x y
Imagen Gradiente
( , )f x y Imagen binaria
Punto de borde
No es Punto del borde
NO
SI
LaplacianoLaplacianoEl laplaciano de una función bidimensional
esta definido por: 2 22
2 2
f ff
x y
f(i-1,j) f(i,j) f(i+1,j)
y
x ( , ) ( 1, )
( , ) ( 1, )
y
y
f f i j f i j
f f i j f i j
2
2( , ) ( 1, )yy y
fff i j f i j
y y
2
2( , ) ( 1, ) ( , ) ( 1, )
( 1, ) 2 ( , ) ( 1, )
ff i j f i j f i j f i j
y
f i j f i j f i j
LaplacianoLaplaciano
Lapalciano de 4 vecinos. Sensible al ruidoPosibilidad de detectar bordes de manera más precisa
mediante la determinación de los cruces por cero.
0 0 0
-1 2 -1
0 0 0
0 -1 0
0 2 0
0 -1 0
0 -1 0
-1 4 -1
-0 -1 0
1*
4
Comandos MatlabComandos Matlab