Capitulo 2 Filtrado Filtrado Espacial Visión de Máquina Ingeniería en Automática Industrial.

Post on 22-Jan-2016

222 views 0 download

Transcript of 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