Descargar la presentación
La descarga está en progreso. Por favor, espere
1
7. Extracción de Contornos
Universidad de Valladolid
2
Extracción de Contornos.
1. La derivada discreta 2. La operación de filtrado Gradiente de una imagen Localización de los puntos de contorno 5. Derivada segunda. Laplaciana de gaussiana 6. Detección de contornos con MATLAB 7. Conclusiones Visión Artificial Industrial. Univ. Valladolid
3
Introducción Los contornos corresponden a transiciones bruscas en la intensidad de la imagen. Convierten una imagen 2D en un conjunto de cadenas de píxeles. Extraen las características más resaltables de la escena Visión Artificial Industrial. Univ. Valladolid
4
Introducción ¿Cómo hallar los píxeles de contorno?
Visión Artificial Industrial. Univ. Valladolid
5
Introducción Como los contornos corresponden a cambios bruscos en la intensidad de la imagen para detectar estos cambios utilizaremos derivadas que es un concepto matemático asociado al cambio de una variable. Visión Artificial Industrial. Univ. Valladolid
6
Extracción de contornos
¿Dónde está el contorno?! Máximos y mínimos de la derivada Visión Artificial Industrial. Univ. Valladolid
7
¿Cómo se puede derivar una imagen digital f[x,y]?
La derivada discreta ¿Cómo se puede derivar una imagen digital f[x,y]? Opción 1: reconstruir la imagen continua y hallar el gradiente Opción 2: Hallar la derivada discreta Visión Artificial Industrial. Univ. Valladolid
8
La derivada discreta marca los cambios
Perfil horizontal de una línea que presenta un salto de 50 niveles de gris (contorno vertical) Derivada discreta de ese perfil Visión Artificial Industrial. Univ. Valladolid
9
Extracción de contornos empleando la derivada discreta
1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 -1 1 -1 1 -1 1 -1 255 1 1 255 2 2 3 3 4 4 5 5 6 6 7 7 -1* *255 = 255 -1* *0 = 0 -1* *0 = 0 -1* *0 = 0 Visión Artificial Industrial. Univ. Valladolid
10
Extracción de contornos empleando la derivada discreta
4 5 6 7 1 2 3 1 2 3 4 5 6 7 Imagen Contornos verticales Visión Artificial Industrial. Univ. Valladolid
11
Efecto del ruido. Filtrado.
La diferenciación numérica amplifica las altas frecuencias de ruido Se precisa siempre del empleo de filtros suavizantes previos Visión Artificial Industrial. Univ. Valladolid
12
Efecto del ruido. Filtrado.
Consideremos el perfil de una fila o columna de la imagen señal Su derivada será: ¡¡¿dónde está el contorno?!!
13
Solución: Suavizar primero
Señal Kernel de Gaussiana Convolución Derivada de h*f Para obtener el contorno buscar máximo en
14
Propiedad asociativa de la convolución
Esto ahorra una operación: Señal Kernel Convolución Visión Artificial Industrial. Univ. Valladolid
15
Gradiente de una imagen
Como las imágenes son bidimensionales para derivar precisamos del concepto matemático de gradiente. En cada punto de la imagen tendremos un gradiente. Este tomará un valor muy alto en los contornos. El gradiente apunta en la dirección del cambio de la intensidad Visión Artificial Industrial. Univ. Valladolid
16
Derivada en sentido horizontal dI/dx
Las imágenes son bidimensionales Derivada en sentido horizontal dI/dx 4 5 6 7 1 2 3 1 2 3 4 5 6 7 Imagen Contornos verticales Visión Artificial Industrial. Univ. Valladolid
17
Las imágenes son bidimensionales
Derivada en sentido vertical dI/dy 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 1 2 2 3 3 4 4 5 5 6 6 7 7 Imagen Contornos horizontales Visión Artificial Industrial. Univ. Valladolid
18
Gradiente de una imagen
La intensidad de un contorno viene dada por el módulo del gradiente La dirección del gradiente viene dada por: Visión Artificial Industrial. Univ. Valladolid
19
El operador de Sobel Los operadores de Sobel son los más utilizados para calcular el gradiente -1 1 -2 2 1 2 -1 -2 Visión Artificial Industrial. Univ. Valladolid
20
Otros operadores Gradiente
(a): Roberts’ cross operator (b): 3x3 Prewitt operator (c): Sobel operator (d) 4x4 Prewitt operator Visión Artificial Industrial. Univ. Valladolid
21
Filtro de derivada primera
1 2 4 1 -1 2 -2 derivada de Gaussiana Gaussiana >> dg=imfilter(g,[1 -1]); >> mesh (dg) >> g=fspecial('gaussian',[64 64],10); >> mesh(g),axis off Visión Artificial Industrial. Univ. Valladolid
22
Imagen original Visión Artificial Industrial. Univ. Valladolid
23
Derivada Horizontal dI/dx
1 -1 2 -2 Visión Artificial Industrial. Univ. Valladolid
24
Derivada Vertical dI/dy
1 2 -1 -2 Visión Artificial Industrial. Univ. Valladolid
25
Módulo del Gradiente Visión Artificial Industrial. Univ. Valladolid
26
Eliminación de píxeles con gradiente bajo
El contorno estará formado por aquellos píxeles donde el gradiente es relativamente alto. De entrada, eliminaremos aquellos píxeles que tengan un módulo del gradiente por debajo de un umbral predeterminado. Visión Artificial Industrial. Univ. Valladolid
27
Eliminación de píxeles con gradiente bajo
Mod.Gradiente umbralizado (umbral=0.40). ¡Ojo! no es una binarización. Los píxeles con modulo por debajo del umbral se ponen a cero pero el resto mantienen los valores que tenían Visión Artificial Industrial. Univ. Valladolid
28
Búsqueda de máximos en la dirección del grad
Los contornos que quedan todavía son gordos. Un contorno tiene que tener un píxel de ancho. Detalle del diente superior donde se aprecia el grosor del contorno que hemos obtenido hasta el momento calculando el módulo del gradiente y eliminando los valores bajos. Visión Artificial Industrial. Univ. Valladolid
29
Búsqueda de máximos en la dirección del grad
Este es un detalle de la imagen de contornos que tenemos que obtener. Nótese que tiene un pixel de ancho. ¿Cómo se han logrado unos contornos finos? Visión Artificial Industrial. Univ. Valladolid
30
Búsqueda de máximos en la dirección del grad
El gradiente es una magnitud vectorial. Hasta ahora sólo hemos utilizado el módulo pero también tiene un argumento que emplearemos a continuación. Para adelgazar los contornos hallados nos quedaremos con los píxeles que tienen el valor mayor en el módulo del gradiente respecto a sus píxeles adyacentes. Visión Artificial Industrial. Univ. Valladolid
31
Búsqueda de máximos en la dirección del grad
Dirección del gradiente Detalle de la imagen donde se refleja la dirección que toma el gradiente en cada pixel. Visión Artificial Industrial. Univ. Valladolid
32
Búsqueda de máximos en la dirección del grad
¿Con qué píxeles adyacentes hay que comparar? Con los que estén en la dirección del gradiente. Por eso hay que mirar el argumento del gradiente. Cuantificamos los argumentos en 4 zonas Zona 0 Zona 1 Zona 2 Zona 3 Visión Artificial Industrial. Univ. Valladolid
33
Búsqueda de máximos en la dirección del grad
Módulo del gradiente Dirección del gradiente En la figura de la dcha. se muestra un detalle de la imagen donde están codificados en distintos niveles de gris las cuatro direcciones que consideraremos en el gradiente. Visión Artificial Industrial. Univ. Valladolid
34
Dirección del gradiente
Módulo del gradiente Dirección del gradiente Contorno Visión Artificial Industrial. Univ. Valladolid
35
Resumen Extracción de Contornos con grad
-1 -2 1 2 Máx.direc.grad. umbral 1 -1 2 -2 Img.de Contornos Visión Artificial Industrial. Univ. Valladolid
36
La derivada segunda Otra forma de detectar los cambios en la señal de la imagen es utilizar la derivada segunda. Los contornos vendrán determinados por los pasos por cero de la derivada segunda. Visión Artificial Industrial. Univ. Valladolid
37
es el operador Laplaciano:
La derivada segunda es el operador Laplaciano: Visión Artificial Industrial. Univ. Valladolid
38
Laplaciana de Gaussiana
Consideremos Señal Kernel de Laplaciana de Gaussiana Convolución Visión Artificial Industrial. Univ. Valladolid
39
Laplaciana de Gaussiana
Visión Artificial Industrial. Univ. Valladolid
40
Laplaciana de Gaussiana
Contornos: pasos por cero Visión Artificial Industrial. Univ. Valladolid
41
Filtro de derivada segunda
Laplaciana de Gaussiana Gaussiana >> l=fspecial('laplacian') l = >> log=imfilter(g,l); >> mesh(log),axis off >> g=fspecial('gaussian',[64 64],5); >> mesh(g),axis off Visión Artificial Industrial. Univ. Valladolid
42
Detección Cont. por Diferencia de Gaussianas
Original Suavizada con Gaussiana Visión Artificial Industrial. Univ. Valladolid
43
Detección Cont. por Diferencia de Gaussianas
¿Por qué funciona? suavizada – original (realzada, offset +128)
44
Laplaciana de Gaussiana
Gaussiana - Imagen Gaussiana Función delta Visión Artificial Industrial. Univ. Valladolid Laplaciana de Gaussiana
45
Extracción de contornos con MATLAB
%Derivadas con Sobel >> Sy=fspecial(‘sobel’); >> Fy=imfilter(I,Sy); >> Sx=Sy’; % Sx es la traspuesta de Sy >> Fx=imfilter(I,Sx); % Gradiente >> Grad=abs(Fx)+abs(Fy); % otra forma calculo gradiente >> [Fx,Fy] = gradient(I); % contornos directamente >> C=edge(I); >> C=edge(I,'sobel',THRESH); %Con Sobel y un determ umbral >> C=edge(I,'log',THRESH); %Con LoG y un determ umbral >> C=edge(I,'zerocross',H); %Con pasos por cero y filtro H Visión Artificial Industrial. Univ. Valladolid
46
Conclusiones La detección de contornos permite reducir la gran cantidad de datos presentes en la imagen extrayendo de ellas las zonas que contienen más información: siluetas de los objetos, cambios de color, variaciones en la orientación de las superficies, etc. Los contornos se obtienen generalmente empleando operadores diferenciales que detectan los cambios de intensidad en la imagen. Al ser las imágenes un campo bidimensional se suele emplear el gradiente para cuantificar la variación en los niveles de gris. La derivación de una señal conlleva la amplificación del ruido que contiene por lo que siempre es muy recomendable un suavizado previo. Visión Artificial Industrial. Univ. Valladolid
47
Conclusiones Uno de los filtros más conocidos para el cálculo del gradiente es el filtro de Sobel, que es un filtro lineal que suaviza y obtiene la derivada en cualquiera de las dos direcciones dependiendo de la elección de una máscara asimétrica 3x3. La detección de contornos puede llevarse a cabo también determinando los píxeles donde la derivada segunda se hace cero en la imagen. Visión Artificial Industrial. Univ. Valladolid
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.