Problema de inclusión en una Curva Digital Por Orellana Muñoz, Alfonso Paz Vicente, Rafael Pérez Medina, Gerardo Rodríguez Naranjo.

Slides:



Advertisements
Presentaciones similares
UN MUNDO LLENO DE PROBLEMAS
Advertisements

ALGORITMOS GENETICOS EVOLUCIÓN DE UNA POBLACIÓN DE
INTEGRANTES Aguilar Pastor, Sara Blancas Tunqui, Alicia
Diseño y análisis de algoritmos
También conocido como Diseño Lógico Rodrigo Salvatierra Alberú.
Funciones y sus Propiedades Básicas
Problemas resueltos del Teorema Fundamental del Cálculo
Problemas resueltos de áreas e integrales definidas
FACTORIZACIÓN LU Bachilleres:
Convertidores A/D y D/A
La maquina de Turing La máquina de Turing es una caja negra (tan simple como una máquina de escribir y tan compleja como un ser humano) capaz no sólo de.
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Unidad académica: Ingenierías
PROGRAMACION DE ESTRUCTURAS DE DATOS
Compensación utilizando Métodos de respuesta en frecuencia
Algoritmos Aleatorizados
Ecuaciones diferenciales de 1er orden :
PARADIGMA Es un esquema de pensamiento que nos lleva a concebir las cosas de una manera determinada. el término paradigma puede indicar el concepto de esquema.
Juan José Cortés Orozco. Antonio Muñoz Torres.
GRAFOS HUGO ARAYA CARRASCO.
INIVERSIDAD AUTÓNOMA DE GUADALAJARA
Teoria de grafos.-clase 4
PROCESO DE DESARROLLO. Introducción Mediante esta presentación se pretende describir el proceso de desarrollo del TALLER I.
Programación en Matlab
Universidad de los Andes-CODENSA
Programación Lineal Unidad 1 Parte 3.
DR. ERNESTO SUAREZ.
UNIDAD 2:Crear, abrir y cerrar una base de datos Hacer clic sobre la opción Nuevo de la pestaña Archivo. Se mostrarán las distintas opciones para nuevos.
Procesamiento de Imágenes Digitales
PANTALLAS DE ALTA RESOLUCION
DEFINICIONES Sea (P) el siguiente problema de programación lineal:
Ricardo Ayala Rodríguez Javier Sánchez Romero PREOGRAMACION E INTERNET
PROGRAMACIÓN DE RECURSOS.
Reconocimiento y resolución de ecuaciones impresas Luis Fernández Pérez Marco Antonio Formoso Trigo.
EL MALLADO HEXAGONAL Dolores Bonilla Silva Daniel González Ortegón Remedios Gutiérrez Martínez.
Graficación II. Algoritmos.
Unidad aritmético-lógica
M. en C. José Andrés Vázquez Flores
Procesamiento Digital de Imágenes
Capacidad de Proceso.
Adelgazamiento de Imágenes RGB
CARPLATE Reconocimiento del marco de la matrícula de un coche
Imágenes en el PC Fuente: Curso HTML del CNICE. Tipos de imagen A grandes rasgos podríamos dividir las imágenes digitales en dos grupos: Imágenes vectoriales,
Tema 3: Filtros.
Microsoft OFFICE Word MBA. Lida Loor Macías.
MoMento S Grupo 33: Ignacio Ayllón Benito Félix A. Velázquez Salas.
Eliminación de ruido y Tratamiento de partes alargadas en imágenes digitales.
ACCESS.
Parte I. Estructuras de Datos.
1 Condiciones de extremo Proceso para derivar las condiciones De problema más simple a más complejo Progresión de problemas: Problema sin restricciones.
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
UCLA – DAC M. Sc. Jorge E. Hernández H.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
Metodología de la programación
Diseño de Sistemas.
Hoja de Cálculo EXCEL Introducción a la informática
Las fórmulas más usadas en excel
Direcciones mixtas Desde un punto de vista práctico, podemos decir que mientras que el empleo de direcciones relativas y absolutas.
Pixelación de imágenes avanzada usando el algoritmo slic
FLUJO DE TRÁFICO.

ARREGLOS BIDIMENSIONALES MATRICES Son un espacio de almacenamiento continuo, que contiene una serie de elementos del mismo tipo de datos. Desde el punto.
Objetivos del tema. Hemos visto lo que es la estructura de un programa, los datos, que esos datos en realidad se convierten en variables de distinto.
Matrices Pág. 1. Matrices Pág. 2 Se llama matriz traspuesta de A, y se representa por A t a la matriz que resulta de intercambiar las filas y las columnas.
Unidad 2 Matrices.
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
Mini-video 2 de 5 Materia: Límites de funciones Continuidad de funciones Prácticas con Introducción a Funciones de una variable.
P O W E R P O I N T CONCEPTOS BÁSICOS 1.
Mapas de Karnaugh y método de Quine McCluskey Ing. Mónica Patricia René_2010 1Ing. Mónica P. René_2010.
Transcripción de la presentación:

Problema de inclusión en una Curva Digital Por Orellana Muñoz, Alfonso Paz Vicente, Rafael Pérez Medina, Gerardo Rodríguez Naranjo

Indice Introducción Consideraciones Solución al Problema Algoritmo propuesto Algoritmo implementado Problemas surgidos Ejemplo de ejecución

Introducción ¿Qué es el problema de la inclusión en una curva digital? Dada una curva cerrada simple C en la pantalla del ordenador y un pixel p que no pertenece a la curva, pretendemos determinar si p se encuentra o no en la región acotada limitada por C. C p

Consideraciones Curva Digital: Hemos considerado como curva digital una sucesión continua de unos dentro de la matriz. Curva Digital Cerrada: Una curva digital que estableciendo un sentido al recorrido, se empieza y termina en el mismo punto. La curva deberá delimitar el plano en dos componentes conexas.

Consideraciones En principio debemos suponer que todo punto de la curva sólo tiene dos adyacentes, tanto en 4-adyacencia como en 8-adyacencia. Esto es debido a que se presentan problemas a la hora de conocer el borde de la imagen. En la explicación del algoritmo implementado se mostrará las implicaciones que esta suposición nos acarrea.

Consideraciones Según tengamos 4 u 8 adyacencia tendremos los siguientes curvas mínimas: Adyacencia 4-Adyacencia Además la curva debe estar completamente contenida dentro de la imagen, es decir, que el borde de la imagen no corte a la curva. Sí se permite que la curva sea tangente al borde de la imagen.

Consideraciones Ejemplo de curva aceptable : Ejemplo de curva incorrecta:

Consideraciones Formato del fichero de entrada : Se nos debe proporcionar un fichero de texto que contenga una matriz binaria que cumpla las restricciones anteriores, además no debe haber espacios entre los elementos de una fila de la matriz y no haber líneas intermedias en blanco entre cada fila. Las matrices que se usan son de 128 filas por 128 columnas.

Solución al Problema La solución a este problema se basa en contar el número de cruces de la curva con un camino de salida desde el punto hasta el borde de la imagen. Si el número de cruces con la curva es impar se puede afirmar que el punto está dentro de la misma. Si es par se obtiene lo contrario, el punto está fuera de la curva. 5 cruces : está dentro.6 Cruces : está fuera.

Algoritmo Propuesto En la documentación Angel Francés nos propone un algoritmo para implementar esta solución. Principalmente se basa en un recorrido de todos los puntos de la curva de forma ordenada y secuencial. El camino de salida es una línea horizontal con respecto a la cual se cuentan el número de veces que se pasa de un punto que esté por encima hasta otro siguiente que esté por debajo o viceversa. Esto implica que la codificación de la curva sea una lista de puntos ordenados que defina un recorrido secuencial de la curva.

Algoritmo Propuesto El algoritmo analiza todos los puntos de la curva, aunque sólo almacena información a cerca de aquellos cruces que se producen a la derecha del punto. 5 cruces : está dentro.

Algoritmo Propuesto P = Punto de origen Para cada punto pc de la curva Hacer Si pc está a la derecha de P Entonces Si está por encima de P Y antes estaba debajo Entonces incrementar contador Si está por debajo de P Y antes estaba por encima Entonces incrementar contador Fin Si Fin Para

Algoritmo Implementado No hemos implementado el algoritmo propuesto por la complejidad que supone pasar de la matriz binaria a un recorrido de la curva, este problema no es de nuestro dominio. Además hemos encontrado un método más fácil y que no desperdicia tanto cálculo. El cambio introducido, a parte del uso de la matriz binaria, se basa en que recorremos el camino de salida, en vez de los puntos de la curva, contando los puntos de corte.

Algoritmo Implementado P = Punto de origen Para cada punto pc del camino de salida Hacer Si pc corta a la curva Entonces Si hay puntos adyacentes por encima de pc Y hay puntos adyacentes por debajo de pc Entonces incrementar contador Si NO se trata de una tangencia y no contamos como cruce Fin Si Fin Para

Problemas Surgidos Adyacencia :Necesitamos dos funciones distintas para calcular el número de cruces según se tome 4 u 8 adyacencia. Al calcular los adyacentes superiores e inferiores, son distintos. XX X X P XX X X 4- Adyacentes 8- Adyacentes

Problemas Surgidos Tangencias : se nos presentó un problema al controlar las tangencias de la curva con el camino de salida. Este problema puede ser muy serio ya que nos puede contar como un cruce de más, y por lo tanto considerar el punto en un sitio equivocado. Este problema lo hemos solucionado mediante el uso de unas gurdas que colocan los contadores de los adyacentes a 0 solo en el caso de que haya un cruce y se tome un punto en blanco. En el caso de que no exista un cruce, como en el punto X los contadores no se ponen a cero. X

Problemas Surgidos Cruces de la curva: no los hemos contemplado ya que podría llevar a un error el hecho de que la curva se corte consigo misma. En este ejemplo se puede apreciar que el camino de salida corta dos veces a la curva, por lo que el punto está en el exterior, pero en realidad está dentro.

Problemas Surgidos Sólo aceptamos aquellas curvas cuyos puntos sólo tengan dos adyacentes porque encontramos un ejemplo en el que el programa daría fallo, aunque es un caso muy específico: en el caso de 8-adyacencia cuando la curva se presenta de la siguiente forma: En este caso al llegar al primer 1 X cuenta que hay un cruce, 1 1pero al llegar al segundo cuenta otro cruce.

Problemas Surgidos Hemos dicho que este caso es muy específico porque como tenemos cuatro funciones para cada una de las adyacencias, eligiéndose aquella que haga el menor número de comparaciones, daría mucha casualidad que tengamos una imagen de este tipo, y que el camino de salida coincida con la fila o columna que presente este comportamiento. Dado esto, la restricción que imponíamos al tipo de las imágenes pude eliminarse en cierto sentido, entendiendo que en la mayoría de los casos el programa acertará, y que sólo fallará en un porcentaje muy pequeño de pruebas.

Ejemplo de Ejecución Ahora vamos a pasar a ver unos ejemplos de ejecución del algoritmo implementado en C. Vamos a presentar la resolución de las tangencias y que el programa funciona bien mientras se cumplan las exigencias de la imagen.