320 likes | 517 Views
EL MALLADO HEXAGONAL. Dolores Bonilla Silva Daniel González Ortegón Remedios Gutiérrez Martínez. 1. Objetivo 2. Métodos para “hexagonizar” una imagen 3. Ejemplos de la aplicación del Método 3. 4. Propiedades aplicadas a una imagen en mallado cuadricular.
E N D
EL MALLADO HEXAGONAL Dolores Bonilla Silva Daniel González Ortegón Remedios Gutiérrez Martínez
1. Objetivo • 2. Métodos para “hexagonizar” una imagen • 3. Ejemplos de la aplicación del Método 3. • 4. Propiedades aplicadas a una imagen en mallado cuadricular. • 5. Propiedades adaptadas a una imagen en mallado hexagonal. • 6. Aplicaciones y conclusiones. • 7. Bibliografía. ÍNDICE
1. Objetivos Convertir una imagen representada por una matriz cuadricular a una imagen sobre un mallado hexagonal. Luego se verificará que esta conversión mantiene una serie de propiedades: - El número de componentes conexas - La propiedad de línea continua - La propiedad de línea recta
2. Métodos para ‘hexagonizar’ una imagen Hemos clasificado los métodos por la relación entre el número de pixeles antes de la conversión y después. - Si el número de pixeles no cambia. Una imagen de MxM pixeles cuadrados se convertiría en una imagen de MxM pixeles hexagonales. Usaríamos el método 1PC -> 1PH, en el cual un pixel cuadrado da lugar a un pixel hexagonal.
- Si el número de pixeles aumenta. Una imagen de MxM pixeles cuadrados se convertiría en una imagen de NxN pixeles hexagonales, siendo N= kM. Usaríamos el método 1PC -> MPH, en el cual un pixel cuadrado da lugar a más de un pixel hexagonal. - Si el número de pixeles disminuye. Una imagen de MxM pixeles cuadrados se convertiría en una imagen de NxN pixeles hexagonales, siendo N= M/k. Usaríamos el método MPC -> 1PH, en el cual más de un pixel cuadrado da lugar a un pixel hexagonal.
2.1. Método 1 1 PC1 PH Como hemos dicho, un pixel cuadrado da lugar a un pixel hexagonal. Hay dos formas de realizar esto: 1. Haciendo que la primera fila de la matriz de hexágonos contenga los primeros hexágonos de cada columna, y así con todas las filas, es decir, la fila n-ésima contendrá los n-ésimos hexágonos de cada columna. Esto da lugar a filas en forma de zig-zag.
2. Haciendo que las filas contengan los hexágonos pares o impares para asegurarnos que las filas tengan una forma recta.
Método: Directamente se traduce un pixel de la matriz de pixeles cuadrados a la correspondiente matriz de pixeles hexagonales. Problema: Surge por la diferencia de forma de los pixeles: - El pixel cuadrado podemos tratarlo con 4-adyacencia u 8-adyacencia - El pixel hexagonal sólo podemos tratarlo con 6-adyacencia
Por lo que en la conversión se podrían añadir adyacencias (4-adyacencia -> 6-adyacencia) o perder adyacencias (8-adyacencia -> 6-adyacencia). El pixel no adyacente con 4-adyacencia se transforma en adyacente con 6-adyacencia. Se ganan vecinos El pixel adyacente con 8-adyacencia se transforma en no adyacente con 6-adyacencia. Se pierden vecinos Por lo tanto desechamos este método
2.2. Método 2 1 PC M PH Un pixel cuadrado dará lugar a muchos píxeles hexagonales. Cada pixel cuadrado corresponderá a KxK pixeles hexagonales. La matriz de MxM pixeles cuadrados se convertirá en NxN pixeles hexagonales, siendo N=kM. Cuanto más pequeño sea k más se acercará a la imagen original, no tendrá más definición al aumentar el tamaño de k, sólo se verá más grande. Esto lo hacemos precisamente para evitar que tengamos diferente adyacencia.
Problemas: - Mantiene algunos de los problemas de la adyacencia de un mallado cuadricular, los vecinos que son 8-adyacentes pero no son 4-adyacentes no tienen lados en común. - Una línea continua deja de serlo al aumentar su grosor. Un pixel tiene más de dos vecinos. Por lo tanto desechamos este método. Problemas con los 8-vecinos
2.3. Método 3 M PC 1 PH Muchos pixeles cuadrados darán lugar a un pixel hexagonal. Método: Crear un mallado de hexágonos creado por pixeles cuadrados y superponerlo a la imagen de pixeles cuadrados, dependiendo de los pixeles cuadrados debajo de cada hexágono este hexágono se pondrá en blando o en negro. Esto soluciona también el problema de la adyacencia. Cuanto más pequeño sea el hexágono más definición tendrá la imagen resultante de la conversión.
Este método mantiene la correspondencia entre adyacencias. En cuanto al grosor, puede adelgazar la imagen, haciendo que una línea de varios pixeles de grosor se convierta en menos pixeles de grosor, pero esto no entorpecerá nuestros estudios posteriores, ya que una línea continua de pixeles cuadrados seguirá siendo una línea continua pero de pixeles hexagonales.
4. Propiedades aplicadas a una imagen en mallado cuadriculado Se realiza la comprobación de las siguientes propiedades: - Una única componente conexa. - La imagen es una línea continua, es decir, no es una curva cerrada. - La imagen es una recta. Se deben cumplir en este orden.
4.1. Componentes Conexas Proceso: 1. Se realiza barrido de la matriz Binaria hasta encontrar punto truenoetiquetado. 2. El punto encontrado se etiqueta y se expande esta etiqueta a todos sus vecinos. Esta expansión también la realizarán todos los vecinos hasta que dicha componente conexa se haya etiquetado completamente. 3. Se sigue la búsqueda del paso 1 hasta - Final matriz Sólo una comp.conexa. - Encontrar punto true sin etiquetar No única comp. conexa.
4.2. Línea Continua Proceso: 1. Se va recorriendo la matriz por columnas, comprobando para cada punto true lo siguiente: - Comprueba el número de vecinos: > 2 No línea continua. Se termina. = 1 Es punto de inicio ó punto final. Dado el punto (x,y) se comprueban los puntos vecinos: (x-1 , y-1) (x-1 , y) (x-1 , y+1) (x , y-1) P (x , y+1) (x+1, y-1) (x+1, y) (x+1 , y+1)
4.3. Línea Recta Proceso: 1. Se calcula el código de cadenas de la imagen. 2. Comprobar tres propiedades de recta: Propiedad 1: Como máximo 2 pendientes están en la cadena, y si hay 2 se difieren en menos de 45º. Propiedad 2: Al menos una de las pendientes ocurren en tramos de longitud 1. Propiedad 3: La otra pendiente ocurre en tramos cuyas longitudes son homogéneas las unas con las otras.
Cálculo de Código de cadenas Proceso: 3 2 1 4 P 0 5 6 7 A partir del punto inicial se va obteniendo el siguiente vecino en el sentido de las agujas de reloj, excluyéndose el vecino anteriormente tomado. De esta forma se van obteniendo los distintos códigos que forman el código de cadenas de la imagen, hasta llegar al punto final.
5. Propiedades adaptadas a una imagen en mallado hexagonal En el mallado hexagonal se realizarán las mismas comprobaciones: - Una única componente conexa. - La imagen es una línea continua, es decir, no es una curva cerrada. - La imagen es una recta. Pero teniendo en cuenta lo siguiente:
Dado un punto de la matriz (x,y) sus vecinos serán: Columna Par: Columna Impar: 1 2 1 0 2 P 0 3 P 5 3 4 5 4 A la hora de comprobar los vecinos de un punto tendremos que tener en cuenta si y es impar ó par.
Al realizar el cálculo del código de cadenas la única diferencia: - Códigos irán de 0 a 5. Los vecinos de un punto se van obteniendo en el sentido de las agujas de reloj. 1 2 0 P 3 5 4
Con respecto a la comprobación de si es recta o no la única diferencia propiedad 1: Propiedad 1 (en mallado cuadriculado): Como máximo 2 pendientes están en la cadena, y si hay 2 se difieren en menos de 45º. Propiedad 1 (en mallado hexagonal): Como máximo 2 pendientes están en la cadena, y si hay 2 se difieren en menos de 60º.
Parámetro Tipo de Píxel C H Direcciones inherentes al visualizar una recta. 2 3 Angulo entre estas direcciones. 90º 60º Número de Píxeles vecinos adherentes a cada cara. 4 6 Número Total de píxeles Vecinos 8 6 Distancia Mínima del centro a los píxeles vecinos. 1 1 Distancia Máxima del centro a los píxeles vecinos. 1 Cuadro Comparativo
8. Bibliografía Hexagonal Raster for computer graphic Krzysztof T. Tytkowsky IEEE 2000