Upload
goito-antolin
View
239
Download
0
Embed Size (px)
Citation preview
Detectores de Borde
Extracción de Características
• Detección de Líneas.
• Detección de Puntos de Borde.
• Detección de Contornos.
Puntos de Borde
• Puntos de la imagen en que hay un cambio brusco o discontinuidad en los valores de intensidad.
Métodos de Detección de Bordes
–Operadores de gradiente.–Operadores de segunda derivada.–Múltiples respuestas a diferentes
orientaciones.–Detector de Canny
Máscaras
w1 w2
w4 w5
w3
w6
w7 w8 w9
992211 wIwIwIR
Imagen de Entrada
Detección de Bordes
Gonzales Wood
Perfil
Primera derivada
Segunda derivada
Operadores de gradiente
• Se basan en calcular aproximaciones del gradiente:
f = (df/dx, df/dy)
• Magnitud del gradiente:
f| = [ (df/dx)2 + (df/dy)2 ]1/2
Aproximación del gradiente
• Se utiliza diferencia de valores de intensidad.
• Para una sección de 2 x 2:
df/dx = I 1,2 - I 1,1
df/dy = I 2,1 - I 1,1
1,1 1,2
2,1 2,2
Aproximación del gradiente
• Otra opción es considerar las diferencias cruzadas:
df/dx = I 1,1 - I 2,2
df/dy = I 1,2 - I 2,1
1,1 1,2
2,1 2,2
Aproximación del gradiente
• Podemos también considerar una sección de 3 x 3 y aproximar el gradiente de la siguiente forma:
df/dx = ( I 1,3 + I 2,3 + I 3,3 ) - ( I 1,1 + I 2,1 + I 3,1 )
df/dy = ( I 3,1 + I 3,2 + I 3,3 ) - ( I 1,1 + I 1,2 + I 1,3 )
1,1 1,2
2,1 2,2
1,3
2,3
3,1 3,2 3,3
Las aproximaciones anteriores se implementan como filtros espaciales (máscaras)
Operadores como el deRoberts, Prewitt y Sobel,se implementan con dosmáscaras: una para dx y otra para dy, luego se hace una síntesis con ambas.
Implementación
Síntesis
Máximo
Mínimo
Promedio
Operadores de Roberts
Corresponden a las diferencias cruzadas de 2 x 2
0 1
-1 0
1 0
0 -1
Ejemplo: Operador de Roberts
Operadores de Prewitt
Corresponden a las diferencias en secciones de 3 x 3
-1 -1
0 0
-1
0
1 1 1
-1 0
-1 0
1
1
-1 0 1
Ejemplos con los operadores de Prewitt
Operadores de Sobel
-1 -2
0 0
-1
0
1 2 1
-1 0
-2 0
1
2
-1 0 1
Ejemplos con operadores de Sobel
Comparación
Prewitt RobertsSobel
Operadores de segunda derivada
• Ejemplos de estos detectores son:– Laplaciano.– Laplaciano del Gaussiano (LOG).
– Y luego buscar los cruces por cero.
Detector basado en el Laplaciano
• Laplaciano de una función de 2 variables:
2f = (d2f/dx2, d2f/dy2)
• El cual se puede aproximar en forma discreta como:
2f = 4 * I 2,2 - I 1,2 - I 2,1 - I 2,3 - I 3,2
Máscara para el operador Laplaciano
0 -1
-1 4
0
-1
0 -1 0
Ejemplo
original Máscara Cruces por cero
Problema:
Se observan muchos bordes falsos
Solución:Evaluación Local de la varianza
Evaluación Local de la Varianza
,...2,1
,),(12
1),(
2
2212
1
1
2
2
M
kjmkjfM
nnMn
Mnj
Mn
Mnkff
Estimación de la varianza:
Mn
Mnj
Mn
Mnkf kjf
Mnnm
1
1
2
2
),(12
1),( 221
Evaluación local de la varianza (cont.)
• La varianza se compara con un umbral.
• Se calcula localmente, solo para aquellos puntos (n1,n2) para los cuales hay un cambio de signo en el laplaciano.
• Esto reduce la posibilidad de encontrar bordes falsos.
Ejemplos
20
10
30
Laplaciano del Gaussiano
• Combina el efecto de una suavizamiento gaussiano con el Laplaciano, en una sola máscara.
• El Laplaciano del Gaussiano (LOG) es:
2G= (d2G/dx2, d2G/dy2)• El cual también se puede aproximar con una
máscara.
Máscara para el operador Laplaciano del Gaussiano
1 -2
-2 4
1
-2
1 -2 1
Ejemplos con operador LOG
Operadores direccionales
• A veces es útil conocer no sólo la magnitud del borde sino también su dirección:
• Esto se puede obtener con los operadores de de Prewitt y Sobel, así como con otros operadores direccionales más sofisticados
dxdf
dydftan
/
/1
Operadores de Kirsch
• Detectan la máxima respuesta en direcciones espaciadas 45°, es decir en orientaciones de 0, 45, 90 y 135 grados - 4 máscaras
• Se pueden definir a diferentes tamaños: 2x2, 3x3, 5x5
Máscaras para operadores de Kirsch de 3x3
5 5
-3 0
5
-3
-3 -3 -3
5 -3
5 0
-3
-3
5 -3 -3
5 5
5 0
-3
-3
-3 -3 -3
-3 -3
5 0
-3
-3
5 5 -3
Otros Detectores• Al aplicar los detectores básicos de borde se tienen
varios problemas, como:– Bordes estriados– Ruido– Bordes falsos
• Operadores más sofisticados utilizan técnicas para mejorar los resultados. Algunas son:– Detector de Canny– Detector de SUSAN
Canny
3 etapas:1. Suavizamiento y diferenciación
• Convolución con una gaussiana• Obtener las derivadas, dx, dy• Calcular magnitud y dirección
2. Supresión de no máximos• Eliminar bordes que no sean máximos en la dirección
perpendicular al borde.
• Umbralización con Histéresis
Supresión de no máximos
1. Computar la magnitud de borde en 4 direcciones utilizando máscaras de borde.
2. Para cada pixel con magnitud de borde no cero, inspeccionar los pixels adyacentes indicados en la dirección de su borde.
3. Si la magnitud de cualquiera de los dos pixels adyacentes es mayo que la del pixel en cuestión, entonces borrarlo como borde.
Umbralización con histéresis
Pueden ocurrir respuestas falsas a un borde causadas por ruido, formando un estriado.
1. Elegir dos umbrales t1,t2.
2. Marcar todos los pixels con magnitud mayor que t2 como correctos y los menores que t1 como incorrectos.
3.Los pixels cuya magnitud de borde está entre t1 y t2 y están conectados con un borde, se marca también como borde. La conectitud puede ser 4- conexo u 8 –conexo.
Ejemplo
Canny
Prewitt
Sobel
S.U.S.A.N(Smallest Univaluate
Segment Assimilating Nucleus)
1.Ubicar una máscara circular alrededor de cada pixel.
2. Calcular la cantidad de pixels dentro de la máscara que tienen el mismo nivel de gris que el núcleo, salvo un umbral.
r0 pixel central
r otro pixel dentro de la máscara.
casootroen
trIrIsirrc
0
)()(1),( 0
0
t=27
Susan
r
rrcrn ),()( 00
N
rnrs
)(1)( 0
0
75.0)(
5.0)(
0)(
0
0
0
rs
rs
rs r0 no es un borde
r0 es un borde
r0 es una esquina
Susan: Ventajas
1.Detecta bordes y esquinas.
2. No usa derivadas.
3.No necesita eliminar el ruido.
4. Usa una máscara circular de 37 pixels.
Ejemplos
Ejercicios• Implementar detectores de borde:1.Hacer un programa para implementar las
máscaras de Sobel en x, y; desplegando c/u y la magnitud.
2.Mejorar las bordes utilizando el esquema de post-procesamiento de Canny (después de Sobel), desplegando los bordes antes y después del post-procesamiento.
3. Impementar el detector de SUSAN.