Title: Algoritmo de bsqueda de bordes en una imagen digital'
1Algoritmo de búsqueda de bordes en una imagen
digital.
- Obtención del código de fisuras y de cadenas
Grupo José Manuel Berrio Morgado Francisco José
Carrasquilla Ortiz María Jesús León Peña María
del Mar López Maraver
2Contenido
- 1. Introducción
- 2. Teoría
- 2.1. Búsqueda de bordes.
- 2.2. Etiquetado de componentes conexas.
- 2.3. Crack following (fisuras).
- 2.4. Border following (cadenas).
3Contenido
- 3. Detalles de implementación
- 3.1. Estructura del fichero.
- 3.2. Estructura de la matriz.
- 3.3. Estructura de un píxel.
- 3.4. Estructura de un borde.
4Contenido
- 4. Complejidad
- 4.1. Búsqueda de bordes.
- 4.2. Etiquetado de componentes conexas.
- 4.3. Crack following.
- 4.4. Border following.
5Introducción
Objetivos Analizar una imagen digital, y
encontrar todos los bordes de la misma, tanto
exteriores como interiores. Para cada borde
encontrado, se realizará un seguimiento con dos
métodos código de fisuras (crack
following). código de cadenas (border
following). Requisitos Para realizar una
correcta búsqueda, se ha implementado el
algoritmo de etiquetado de componentes conexas.
6Teoría
Búsqueda de bordes
1. Detección de bordes. 2. El problema de la
repetición de bordes. Marcado. 3. El problema de
la detección de bordes exteriores e
interiores simultáneamente.
7Búsqueda de bordes
Detección de bordes
00000000000000000 00000011111111000 00000011111111
000 00000010000001000 00000010000001000 0000001111
1111000 00000000000000000
8Búsqueda de bordes
Detección de bordes
00000000000000000 00000011111111000 00000011111111
000 00000010000001000 00000010000001000 0000001111
1111000 00000000000000000
9Búsqueda de bordes
Detección de bordes
00000000000000000 00000011111111000 00000011111111
000 00000010000001000 00000010000001000 0000001111
1111000 00000000000000000
10Búsqueda de bordes
Detección de bordes
00000000000000000 00000011111111000 00000011111111
000 00000010000001000 00000010000001000 0000001111
1111000 00000000000000000
11Búsqueda de bordes
Detección de bordes
00000000000000000 00000011111111000 00000011111111
000 00000010000001000 00000010000001000 0000001111
1111000 00000000000000000
12Búsqueda de bordes
Detección de bordes
00000000000000000 00000011111111000 00000011111111
000 00000010000001000 00000010000001000 0000001111
1111000 00000000000000000
13Búsqueda de bordes
Detección de bordes
00000000000000000 00000011111111000 00000011111111
000 00000010000001000 00000010000001000 0000001111
1111000 00000000000000000
14Búsqueda de bordes
El problema de la repetición de bordes
00000000000000000 00000011111111000 00000011111111
000 00000010000001000 00000010000001000 0000001111
1111000 00000000000000000
15Búsqueda de bordes
Solución a la repetición Marcado
00000000000000000 00000011111111000 00000011111111
000 00000010000001000 00000010000001000 0000001111
1111000 00000000000000000
16Búsqueda de bordes
Bordes exteriores e interiores simultáneamente
00000000000000000 00000011111111000 00000011111111
000 00000010000001000 00000010000001000 0000001111
1111000 00000000000000000
17Búsqueda de bordes
Bordes exteriores e interiores simultáneamente
00000000000000000 00000011111111000 00000011111111
000 00000010000001000 00000010000001000 0000001111
1111000 00000000000000000
18Búsqueda de bordes
Bordes exteriores e interiores simultáneamente
00000000000000000 00000011111111000 00000011111111
000 00000010000001000 00000010000001000 0000001111
1111000 00000000000000000
19Búsqueda de bordes
Marcado en función de la componente conexa del
blanco
00000000000000000 00000011111111000 00000011111111
000 00000010000001000 00000010000001000 0000001111
1111000 00000000000000000
20Etiquetado de componentes conexas
11111111111111111 111111
111 111111 111 1 333333
111 1 2222 333333 111 1
111 11111111111111111
21Etiquetado de componentes conexas
00000000000000000 000000
000 000000 000 0 000000
000 0 0000 000000 000 0
000 10000000000000000
22Etiquetado de componentes conexas
00000000000000000 000000
000 000000 000 0 000000
000 0 0000 000000 000 1
000 11000000000000000
23Etiquetado de componentes conexas
00000000000000000 000000
000 000000 000 0 000000
000 1 0000 000000 000 1
000 11100000000000000
24Etiquetado de componentes conexas
00000000000000000 000000
000 000000 000 1 000000
000 1 0000 000000 000 1
000 11110000000000000
25Etiquetado de componentes conexas
00000000000000000 000000
000 110000 000 1 000000
000 1 0000 000000 000 1
000 11111000000000000
26Etiquetado de componentes conexas
00000000000000000 111000
000 111000 000 1 000000
000 1 0000 000000 000 1
000 11111100000000000
27Etiquetado de componentes conexas
11111111111111111 111111
111 111111 111 1 000000
111 1 0000 000000 111 1
111 11111111111111111
28Etiquetado de componentes conexas
11111111111111111 111111
111 111111 111 1 000000
111 1 2000 000000 111 1
111 11111111111111111
29Etiquetado de componentes conexas
11111111111111111 111111
111 111111 111 1 000000
111 1 2200 000000 111 1
111 11111111111111111
30Etiquetado de componentes conexas
11111111111111111 111111
111 111111 111 1 000000
111 1 2222 000000 111 1
111 11111111111111111
31Etiquetado de componentes conexas
11111111111111111 111111
111 111111 111 1 000000
111 1 2222 300000 111 1
111 11111111111111111
32Etiquetado de componentes conexas
11111111111111111 111111
111 111111 111 1 330000
111 1 2222 330000 111 1
111 11111111111111111
33Etiquetado de componentes conexas
11111111111111111 111111
111 111111 111 1 333000
111 1 2222 333000 111 1
111 11111111111111111
34Etiquetado de componentes conexas
11111111111111111 111111
111 111111 111 1 333333
111 1 2222 333333 111 1
111 11111111111111111
35Teoría
Crack following
0000000000 0000111000 0000111000 0000111000 000011
1000 0000000000
36Teoría
Crack following
0000000000 0000111000 0000111000 0000111000 000011
1000 0000000000
37Teoría
Crack following
0000000000 0000111000 0000111000 0000111000 000011
1000 0000000000
38Teoría
Crack following
0000000000 0000111000 0000111000 0000111000 000011
1000 0000000000
PU UV VQ QP QV PQ UP VU
U V P Q Giro - 1 V Q Derecha 1 0 U V No 0 0 P
U Izquierda
8 adyacencia
Código 122
39Teoría
Crack following
0000000000 0000111000 0000111000 0000111000 000011
1000 0000000000
PU UV VQ QP QV PQ UP VU
U V P Q Giro - 1 V Q Derecha 1 0 U V No 0 0 P
U Izquierda
8 adyacencia
Código 1222
40Teoría
Border following
000000000000 000011111000 000011011000 0000110110
00 000011111000 000000000000
41Teoría
Border following
000000000000 000011111000 000011011000 0000110110
00 000011111000 000000000000
Código 0
42Teoría
Border following
000000000000 000011111000 000011011000 0000110110
00 000011111000 000000000000
Código 00
43Teoría
Border following
000000000000 000011111000 000011011000 0000110110
00 000011111000 000000000000
Código 000
44Teoría
Border following
000000000000 000011111000 000011011000 0000110110
00 000011111000 000000000000
Código 0000
45Teoría
Border following
000000000000 000011111000 000011011000 0000110110
00 000011111000 000000000000
Código 00002
46Teoría
Border following
000000000000 000011111000 000011011000 0000110110
00 000011111000 000000000000
000000000000 000011111000 000011011000 0000110110
00 000011111000 000000000000
321 4P0 567
Movimientos
Código 00002
Código 000022
47Detalles de implementación
3,4,2,4,8 0000 0110 0000
Número de filas Número de columnas Número de
colores Adyacencia para el negro Adyacencia para
el blanco Matriz binaria
48Detalles de implementación
define F 20 define C 50 struct MatBin int
filas int columnas int numcolores int
adnegro int adblanco pxl pixelFC
49Detalles de implementación
struct pxl char color int compconexa int
marcado
50Detalles de implementación
struct Borde int fila int columna int
codigoCadena150 int codigoFisura150
51Complejidad
- Búsqueda de bordes O(N2)
- Etiquetado de componentes conexas O(N2)
- Crack following O(M)
- Border following O(M)
- N nº de filas/columnas de la matriz.
- M nº de pixels del borde.