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

Preview:

Citation preview

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