Algoritmo 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
Contenido 1. Introducción 2. Teoría 2.1. Búsqueda de bordes Etiquetado de componentes conexas Crack following (fisuras) Border following (cadenas).
Contenido 3. Detalles de implementación 3.1. Estructura del fichero Estructura de la matriz Estructura de un píxel Estructura de un borde.
Contenido 4. Complejidad 4.1. Búsqueda de bordes Etiquetado de componentes conexas Crack following Border following.
Introducció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.
Teorí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.
Búsqueda de bordes Detección de bordes
Búsqueda de bordes Detección de bordes
Búsqueda de bordes Detección de bordes
Búsqueda de bordes Detección de bordes
Búsqueda de bordes Detección de bordes
Búsqueda de bordes Detección de bordes
Búsqueda de bordes Detección de bordes
Búsqueda de bordes El problema de la repetición de bordes
Búsqueda de bordes Solución a la repetición: Marcado
Búsqueda de bordes Bordes exteriores e interiores simultáneamente
Búsqueda de bordes Bordes exteriores e interiores simultáneamente
Búsqueda de bordes Bordes exteriores e interiores simultáneamente
Búsqueda de bordes Marcado en función de la componente conexa del blanco
Etiquetado de componentes conexas
Etiquetado de componentes conexas
Etiquetado de componentes conexas
Etiquetado de componentes conexas
Etiquetado de componentes conexas
Etiquetado de componentes conexas
Etiquetado de componentes conexas
Etiquetado de componentes conexas
Etiquetado de componentes conexas
Etiquetado de componentes conexas
Etiquetado de componentes conexas
Etiquetado de componentes conexas
Etiquetado de componentes conexas
Etiquetado de componentes conexas
Etiquetado de componentes conexas
Teoría Crack following
Teoría Crack following
Teoría Crack following
Teoría Crack following PUUVVQQP QVPQUPVU UVP’Q’Giro -1VQDerecha 10UVNo 00PUIzquierda Código: adyacencia
Teoría Crack following PUUVVQQP QVPQUPVU UVP’Q’Giro -1VQDerecha 10UVNo 00PUIzquierda Código: adyacencia
Teoría Border following
Teoría Border following Código: 0
Teoría Border following Código: 00
Teoría Border following Código: 000
Teoría Border following Código: 0000
Teoría Border following Código: 00002
Teoría Border following Código: P0 567 Movimientos Código:
Detalles de implementación Estructura del fichero 3,4,2,4, Número de filas Número de columnas Número de colores Adyacencia para el negro Adyacencia para el blanco Matriz binaria
Detalles de implementación Estructura de la matriz #define F 20 #define C 50 struct MatBin{ int filas; int columnas; int numcolores; int adnegro; int adblanco; pxl pixel[F][C]; };
Detalles de implementación Estructura de un pixel struct pxl{ char color; int compconexa; int marcado; };
Detalles de implementación Estructura de un borde struct Borde{ int fila; int columna; int codigoCadena[150]; int codigoFisura[150]; };
Complejidad Búsqueda de bordes: O(N 2 ) Etiquetado de componentes conexas: O(N 2 ) Crack following: O(M) Border following: O(M) N: nº de filas/columnas de la matriz. M: nº de pixels del borde.