FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Trazar lineas en una imagen y Calcular Angulo???
Hola a todos, les cuento un poco lo que estoy trabajando, estoy trabajndo en un proyecto de la universidad (Lic en criminalistica )donde estamos viendo algunos metodos basicos que utilizan para calcular la velocidad del viento algun personal del ejercito y me surgio la idea de ver si es posible pasarlo a un pequeño programita en delphi hace años estudie programacion y ando oxidado por eso requiero su ayuda.
Bien el metodo consiste en observar una bandera que ondea y en base al angulo que genera hacer una pequeña operacion matematica y nos da la velocidad del viento, ejemplo vi demos que entre el asta de la bandera y la bandera se forma un angulo de 60° entonces dividimos estos 60/4= 15 MillasxHora. Bien no tiene nada de complicado pero se me ocurrio que si cargara yo una imagen o fotografia de una bandera en un componente de imagen cuya asta es de color verde por ejemplo y la bandera es blanca o negra y en su extremo le coloco una marca de color amarillo, podria trazar una linea entre estos dos puntos??????? Me imagino que si si conosco el valor del color no??? nadamas que el problema es que no se como empezar Bueno ahora supongamos que ya traze una linea entre esos puntos y se que mi vertical es el asta de color verde puedo calcular el angulo que se genera de la interseccion de estas lineas?????????? Esto lo he hecho con Photoshop o CorelDraw no recuerdo ahorita cual es... Bueno si alguien me puede ayudar con ideas le agradecer mucho, anexe unas imagenes de una bandera espero se vean que es basicamente lo que pretendo hacer ojala me ilustren si es posible, saludos atodos. Última edición por erikmx fecha: 15-09-2008 a las 04:01:20. |
#2
|
||||
|
||||
Lo de detectar los puntos amarillos es un poco difícil, sobre todo si no es una imagen con colores planos. (un mástil verde, según sombras y luces puede tener muchísimos verdes)
Lo de calcular el ángulo es fácil: Teoría de triángulos rectángulos. - Primero deberías tener las coordenadas x,y de los trés puntos de la imagen. - Luego podrás calcular la distancia entre x1 y x2 y entre y1 e y2 para saber el largo de los catetos (opuesto y adyacente). - Utilizando las funciones seno y coseno podrás averiguar toda la información que necesitas. NOTA: Todo esto funciona, suponiendo que la foto la sacas al nivel de la bandera y perpendicular a la dirección del viento. |
#3
|
||||
|
||||
Bueno, yo he entendido que tú puedes marcar los puntos sobre la imagen de la bandera.
De esa forma es bastante sencillo hacer los cálculos. Lo que no me ha quedado claro es si los puntos los marcas sobre la imagen o ya vienen en la imagen. De todas formas, te coloco un ejemplillo. Sobre eso si quieres haz tus pruebas o corrigeme si he entendido mal.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
|||
|
|||
Cita:
|
#5
|
||||
|
||||
Cita:
...pensando...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#6
|
||||
|
||||
El mayor problema que le veo es identificar los puntos (pixels) que "pertenecen" a la imagen de la bandera y cuales no. La mayor dificultad que le veo es detectar el "color" ya que este varía dependiendo de la iluminación. Claro que, sabiendo que la bandera no se va a mover se puede acotar bastante y facilitarlo.
Si se sabe que el fondo va a ser estático (cuidado con los pájaros y las nubes...) se podría "enmascarar" la bandera fácilmente simplemente comparando el color de los puntos entre dos fotogramas ya que si este cambia es que la bandera se ha movido. Claro que debería establecerse un rango de "error aceptable" de forma que si cambia el color levemente no se asuma como movimiento sino como cambio en la iluminación. Si no cambia puede asumirse que es el fondo. A partir de ahí pueden buscarse los bordes (cadenas de puntos que se han movido) y medir la diferencia. La forma de implementarlo no la tengo muy clara, no obstante. |
#7
|
||||
|
||||
Bueno, una aproximación para identificar colores podría ser esta. Son una pruebas sencillas, pero básicamente o que hacer es a partir de un color de referencia, intentar identificar el mismo color (con una tolerancia) en la imagen de la bandera (en este caso).
Además intenta identificar aquellos puntos que nos servirán para calcular luego el ángulo que necesitamos. Aquí y con la imagen que nos has dado funciona bien, el problema es que una foto real con muchos más tonos, mucho más ruido y bastante mas "imprecisa" habrá que "afinar" mucho más el algoritmo, pero supongo que te puede servir de partida. AÑADO: Me dejé el link.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. Última edición por Neftali [Germán.Estévez] fecha: 16-09-2008 a las 11:53:46. |
#8
|
||||
|
||||
Vaya, parece que el milagroso programa que utilizan en la serie de ficción científica CSI-Las Vegas para obtener el número de matrícula del coche que se ve el reflejo del objetivo de la cámara que se refleja en la pupila del sujeto que se refleja en el cristal del comercio fotografiado por casualidad por un testigo que "pasaba por ahí" está más cerca de conseguirse...
Lo siento, no pude reprimirme. De cualquier modo, suerte con el proyecto. |
#9
|
||||
|
||||
Tienes razón.
A mi lo que me encanta es que tienen Bases de datos de todo. El asesino pierde cualquier cosa y siempre está la Base de Datos de cordones de zapatos, la de tapones de bolígrafo, que si has perdido el tapón del bic, sale allí el año en que lo compraste, la tienda, el color y si lo llevas medio gastado o la de Logotipos de marcas de papel de water; Por si encuantras un trozo de 2 milímetros de papel, lo pasas por el programa y te identifica la marca y si has comido lentejas; Y si te has limpiado con un periódico, a partir de la tinta sale el día que lo has comprado, si has hecho el cruzigrama y la quiniela resuleta de la semana siguiente...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#10
|
|||
|
|||
Cita:
Voy a checar bien el ejemplo que amablemente me mando Neftali y les comento si funciona con todo gusto coloco el proyecto terminado con codigo para quienes quieran ver que algo tan simple se puede complicar jajajaja tanto como queramos un saludote a todos |
#11
|
||||
|
||||
Un algoritmo que te podría servir:
Si el color es poco comun (cielo azul, bandera negra y marcas amarillas): vas sumando la cantidad de color que hay en cada linea del color de la marca (pixeles amarillos). vas sumando la cantidad de color que ha de cada columna del color de la marca. Tendrás dos vectores. Código:
linea 1 2 3 4 5 6 7 8 9 10 color 0 0 0 0 2 3 1 0 0 0 columna 1 2 3 4 5 6 7 8 9 10 color 0 0 0 1 3 2 0 0 0 0 Si logras 4 puntos, obtendrás un rectángulo y con el podrás calcular el ángulo. Si obtienes una línea, será un viento de la OSTIA!!! Última edición por duilioisola fecha: 16-09-2008 a las 08:06:55. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Calcular la posicion del cursor sobre imagen | adrian76 | Gráficos | 0 | 12-11-2007 10:15:35 |
Determina la amplitud de un ángulo dada su tangente. | Roilo | Varios | 4 | 02-05-2007 17:54:49 |
Trazar un vector teniendo un determinado ángulo | juanchi | Gráficos | 3 | 08-12-2006 23:21:02 |
Como trazar un arco | Luli | Gráficos | 3 | 09-06-2005 00:59:06 |
Boton con imagen y texto en varias líneas | Novás | Varios | 2 | 08-03-2004 13:12:22 |
|