Detección de bordes de una imagen en Matlab

36
Introduccion. Desarrollo te´ orico Deteccion de bordes Detecci´ on de bordes de una imagen Luis Marchena Escuela polit´ ecnica Universidad de Extremadura

Transcript of Detección de bordes de una imagen en Matlab

Page 1: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Deteccion de bordes de una imagen

Luis Marchena

Escuela politecnicaUniversidad de Extremadura

Page 2: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Esquema

1 Introduccion.Concepto:

2 Desarrollo teoricoMetodos de aproximacion a la derivadaDerivadas de orden dos y tresDerivadas de orden dos y tresDerivadas de orden dos y tresTaylor y la derivada.Ejemplo.Ejemplo.

3 Deteccion de bordesDeteccion de bordes.

MejorasBordes en color

Page 3: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Esquema

1 Introduccion.Concepto:

2 Desarrollo teoricoMetodos de aproximacion a la derivadaDerivadas de orden dos y tresDerivadas de orden dos y tresDerivadas de orden dos y tresTaylor y la derivada.Ejemplo.Ejemplo.

3 Deteccion de bordesDeteccion de bordes.

MejorasBordes en color

Page 4: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Esquema

1 Introduccion.Concepto:

2 Desarrollo teoricoMetodos de aproximacion a la derivadaDerivadas de orden dos y tresDerivadas de orden dos y tresDerivadas de orden dos y tresTaylor y la derivada.Ejemplo.Ejemplo.

3 Deteccion de bordesDeteccion de bordes.

MejorasBordes en color

Page 5: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Esquema

1 Introduccion.Concepto:

2 Desarrollo teoricoMetodos de aproximacion a la derivadaDerivadas de orden dos y tresDerivadas de orden dos y tresDerivadas de orden dos y tresTaylor y la derivada.Ejemplo.Ejemplo.

3 Deteccion de bordesDeteccion de bordes.

MejorasBordes en color

Page 6: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

1-Introduccion

Derivadas⇒ ¿Que tienen que ver las derivadas con los bordes de unaimagen?⇒ Aplicacion sobre la imagen.Como hacemos que:

Resultados

Que esta imagen

Pase a esta otra

¿Como haremos los bordes en color?

Page 7: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

1-Introduccion

Derivadas⇒ ¿Que tienen que ver las derivadas con los bordes de unaimagen?⇒ Aplicacion sobre la imagen.Como hacemos que:

Resultados

Que esta imagen

Pase a esta otra

¿Como haremos los bordes en color?

Page 8: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

1-Introduccion

Derivadas⇒ ¿Que tienen que ver las derivadas con los bordes de unaimagen?⇒ Aplicacion sobre la imagen.Como hacemos que:

Resultados

Que esta imagen

Pase a esta otra

¿Como haremos los bordes en color?

Page 9: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

1-Derivadas. Metodo de diferencias finitas

1.1-Concepto de derivada:Geometricamente, la derivada de una funcion en un punto es la pendientede la recta tangente en ese punto.

¿Para que nos sirve esto?

Page 10: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

1-Derivadas. Metodo de diferencias finitas

1.2 -¿Como vamos a calcular la aproximacion de derivada?Mediante rectas secantes entre dos puntos vamos a aproximar la tangentehaciendo cada vez menor la distancia entre esos puntos. La pendiente de lasrectas secantes se puede calcular de tres formas:

Metodo de diferencias progresivas: f(x) =f(x+ h)− f(x)

h

Metodo de diferencias regresivas: f(x) =f(x)− f(x− h)

h

Metodo de diferencias centradas: f(x) =f(x+ h)− f(x− h)

2h

Page 11: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

1-Derivadas. Metodo de diferencias finitas

1.3 Derivadas de orden dos y tres:

Progresivas:

Regresivas:

Centradas:

Page 12: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

1-Derivadas. Metodo de diferencias finitas

1.3 Derivadas de orden dos y tres:

Progresivas:

Regresivas:

Centradas:

Page 13: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

1-Derivadas. Metodo de diferencias finitas

1.3 Derivadas de orden dos y tres:

Progresivas:

Regresivas:

Centradas:

Page 14: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

1-Taylor y la derivada.

1.4 Taylor y la derivada.

Ejemplo

Veamos que ocurre si desarrollamos f(x+ h)

Page 15: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

1-POLINOMIO DE INTERPOLACION DE LAGRANGE Y SUDERIVADA.

Ejemplo:

S = [(0, 0,3927), (0,2, 0,5672), (0,4, 0,6982), (0,6, 0,7941), (0,8, 0,8614), (1, 0,9053)]

Page 16: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

1-Aproximacion por diferencias finitas

Ejemplo:

Por el comando diff (rojo): y = 0′6533x + 0′44161 y por diferencias finitas(verde):y = 0′6550x + 0′4411

Page 17: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Gradiente de una imagen

Gradiente: La derivada proporciona variaciones locales de la variable, elvalor de la derivada es mayor cuanto mayores son las variaciones.En el caso de las funciones bidimensionales la derivada es un vector queapunta a la maxima variacion de f(x,y). A este vector se le llama gradiente.

∇f(x, y) =

[∂f(x,y)

∂x∂f(x,y)

∂y

]Mag[∇f(x, y)] =

√(∂f(x, y)

∂x

)2

+

(∂f(x, y)

∂y

)2

Page 18: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Gradiente de una imagen

¿Como podemos aplicar esto a una imagen digital?

∂f(x, y)

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

∂f(x, y)

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

|G(i, j)| =√Gf

2 +Gc2≈ Gf (i, j) +Gc(i, j)

Page 19: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Gradiente de una imagen

¿Como podemos aplicar esto a una imagen digital?

∂f(x, y)

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

∂f(x, y)

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

|G(i, j)| =√Gf

2 +Gc2≈ Gf (i, j) +Gc(i, j)

Page 20: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Gradiente de una imagen

Vamos a ver como queda en matlab y que sucede realmente en la imagen:

Original GradienteAmpliada

Page 21: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Gradiente de una imagen

Aplicando el modulo del gradiente de la intensidad de la imagen:

Resultados

Imagen Original

Aplicando la funcion gradient

Aplicando la aproximacion vista

Page 22: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Gradiente de una imagen

Aplicando el modulo del gradiente de la intensidad de la imagen:

Resultados

Imagen Original

Aplicando la funcion gradient

Aplicando la aproximacion vista

Page 23: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Gradiente de una imagen

Aplicando el modulo del gradiente de la intensidad de la imagen:

Resultados

Imagen Original

Aplicando la funcion gradient

Aplicando la aproximacion vista

Page 24: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Gradiente de una imagen

Aplicando el modulo del gradiente de la intensidad de la imagen:

Resultados

Imagen Original

Aplicando la funcion gradient

Aplicando la aproximacion vista

Page 25: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Mejoras

Filtros mejorados

Aplicando el filtro de Prewitt en el cual consideramos los pıxeles (i+1,j) y(i-1,j) en la direccion x, (i,j-1) y (i,j+1) en el eje y.

Resultados

Imagen Original

Aplicando Prewitt

Page 26: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Mejoras

Filtros mejorados

Aplicando el filtro de Prewitt en el cual consideramos los pıxeles (i+1,j) y(i-1,j) en la direccion x, (i,j-1) y (i,j+1) en el eje y.

Resultados

Imagen Original

Aplicando Prewitt

Page 27: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Mejoras

Filtros mejorados

Aplicando el filtro de Prewitt en el cual consideramos los pıxeles (i+1,j) y(i-1,j) en la direccion x, (i,j-1) y (i,j+1) en el eje y.

Resultados

Imagen Original

Aplicando Prewitt

Page 28: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Mejoras

Filtros mejorados

Para aplicar el filtro de Canny debemos hacer la derivada gaussiana en x ey, esto es:

∂f(x, y)

∂x=−x

2πσ4e− x

2−y2

2σ2

∂f(x, y)

∂y=−y

2πσ4e− x

2−y2

2σ2

Resultados

Imagen Original

Aplicando Canny

Page 29: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Mejoras

Filtros mejorados

Para aplicar el filtro de Canny debemos hacer la derivada gaussiana en x ey, esto es:

∂f(x, y)

∂x=−x

2πσ4e− x

2−y2

2σ2

∂f(x, y)

∂y=−y

2πσ4e− x

2−y2

2σ2

Resultados

Imagen Original

Aplicando Canny

Page 30: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Mejoras

Filtros mejorados

Para aplicar el filtro de Canny debemos hacer la derivada gaussiana en x ey, esto es:

∂f(x, y)

∂x=−x

2πσ4e− x

2−y2

2σ2

∂f(x, y)

∂y=−y

2πσ4e− x

2−y2

2σ2

Resultados

Imagen Original

Aplicando Canny

Page 31: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Bordes en color

Imagenes en color

Vamos a ver que pasa si queremos ver los bordes en color. Para eso hay quedescomponer la imagen en sus tres planos RGB.

Resultados

Imagen Original

Aplicando el gradiente

Aplicando Prewitt

Aplicando Canny

Page 32: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Bordes en color

Imagenes en color

Vamos a ver que pasa si queremos ver los bordes en color. Para eso hay quedescomponer la imagen en sus tres planos RGB.

Resultados

Imagen Original

Aplicando el gradiente

Aplicando Prewitt

Aplicando Canny

Page 33: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Bordes en color

Imagenes en color

Vamos a ver que pasa si queremos ver los bordes en color. Para eso hay quedescomponer la imagen en sus tres planos RGB.

Resultados

Imagen Original

Aplicando el gradiente

Aplicando Prewitt

Aplicando Canny

Page 34: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Bordes en color

Imagenes en color

Vamos a ver que pasa si queremos ver los bordes en color. Para eso hay quedescomponer la imagen en sus tres planos RGB.

Resultados

Imagen Original

Aplicando el gradiente

Aplicando Prewitt

Aplicando Canny

Page 35: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Bordes en color

Imagenes en color

Vamos a ver que pasa si queremos ver los bordes en color. Para eso hay quedescomponer la imagen en sus tres planos RGB.

Resultados

Imagen Original

Aplicando el gradiente

Aplicando Prewitt

Aplicando Canny

Page 36: Detección de bordes de una imagen en Matlab

Introduccion. Desarrollo teorico Deteccion de bordes

Bordes en color

Bibliografia

http : //www.uam.es/personalpdi/ciencias/pangulo/edpan/cap3.pdf

http : //webs.uvigo.es/calculo.infinitesimal/P5cal.pdf

http : //www.unioviedo.es/compnum/laboratoriosweb/laborat07deriv/laboratorio07deriv.html

http : //www.uhu.es/cristobal.garcia/descargas/AnalisisNumericoITema5.pdf

http : //www4.ujaen.es/ satorres/practicas/practica3vc.pdf

http : //www2.fisica.unlp.edu.ar/materias/procesamientodeimagenes/Clase5imagenes2011.pdf

http : //iimyo.forja.rediris.es/matlab/cursolatex005.html