Visión por computador

En estos estoy terminando un pequeño proyecto de visión por computador. Se trata de un programa que reconoce cosas, ya sea círculos por la pantalla o mi mano.

Por ejemplo aquí el programa está reconociendo con éxito un circulo dibujado a mano en la pizarra y la forma redonda del objetivo. Sin embargo solamente en ocasiones reconoce correctamente los dos cirulos pequeños.

Circles recognition

Aquí por ejemplo el programa está delimitando los bordes de mi mano. Esta primera versión tiene en cuenta diferencias de intensidad, pero creo que funcionará mucho mejor cuando lo cambie a diferencia cromática.

Computer vision

24 Responses to “Visión por computador”

  1. Aprendiz de titiritero Says:

    Eso es lo que teniamos que haber hecho en la asignatura de Ginés, pero reconociendo caras. Si fuera para allá Ginés, sería como un dios en la universidad noroguense.
    Por cierto, esa camiseta es la del Sicarm. La he reconocido.

  2. Alfredo Says:

    Eso no lo dudo. En cuanto a lo que tendríamos que haber hecho… se podría decir que todo lo que hicimos tampoco estuvo mal.

    Esta camiseta que nos dieron en el Sicarm me trae viejos recuerdos.

  3. Titiritero Says:

    Vaya, vaya, vaya, vaya. A mi me ha llamado la atención es que todo ese proyecto lo estas haciendo en linux con ipl y openCV y en eclipse según veo en la imagen, además de muchos corrupt jpeg data, ¿no te debería de llamarte la atención tanta corrupción?

    Mi aprendiz de titiritero idolatra a Gines, pero esto de noruega me gusta más: sin windows y sin c++ builder

  4. Alfredo Says:

    Que va, todos esos mensajes me suelen salir al principio porque la web cam todavia no esta inicializada cuando empiezo a capturar imagenes, pero despues de 2 segundos todo va bien. A lo mejor es que tu estas obsesionado con la corrupcion por algo relacionado con cierto alcalde.

    En cuanto a lo de noruega… tampoco te confundas. Esto es un proyecto de iniciativa propia. He sido yo el que he decidido usar linux con eclipse OpenCV etc.

  5. El gran titiritero Says:

    Por una vez no te estaba criticando. Al que criticaba era a Gines. Me parece una maravilla tu elección que has hecho.

  6. Titiritero Says:

    El del comentario de antes era del gran titiritero, es que lo he escrito en el amd64 de juan que por cierto tendrá menos rendimiento pero es más robusto y no se quema por tener un 10% más de rendimiento.

  7. Alfredo Says:

    Hombre, Titiritero, seamos serios, tu un portatil lo quieres con un procesador de uno de sobremesa? un rendimiento equiparable a los de la NASA, total para que? para saludar por el messenger y poner comentarios. En ese aspecto me temo que tanto el aprendiz como el ingrato metieron la pata.

    No empieces a poner comentarios con los nombres de otras personas que luego los ingratos se hacen un lio. Por esta vez te lo cambio y te lo pongo bien.

  8. El Miguel Says:

    como mola tio, mi práctica de CV en cambio fue la práctica mínima, reconocimiento de figuras simples pasados por ficheros .png, si fue una chapuza y me valió el A, a tí te pondrán un A++++++++

  9. Titiritero Says:

    Esto se desvía del tema como de costumbre. Lo único que te digo es que me gusta un portátil que no se quede frito como tu antiguo portátil, solo eso. ¿Para que más rendimiento si al año está echando humo?

  10. Alfredo Says:

    Oye, que el portatil aun funciona, y sigue teniendo un buen rendimiento. Mi hermana lo usa y todo.

  11. Titiritero Says:

    Pero por dios, es que no sabes que yo todavía no he pegado el estirón y soy muy infantil. No discutas de esa manera conmigo. Y esfuérzate en darle el ĺtimo empujón a tus estudios norueguiles. Dale a tu blog unas vacaciones como yo hago de vez en cuando con lanxarxa en tiempos de Poncio Pilatos.

  12. Alfredo Says:

    ya, pero de vez en cuando puedo dedicarle 5 minutos

  13. Nidi Says:

    Hola:
    Me parece muy interesante tu aplicacion, en que lenguaje de programacion lo estas haciendo y hw ocupaste¿??
    Saludos

  14. Alfredo Says:

    Hardware: Acer Aspire 5720 con webcam integrada
    Sistema operativo: Ubuntu 8.04
    Entorno de desarrollo: Eclipse (CDT)
    Lenguaje: C++
    Librerias: OpenCV

    Espero que te sea de utilidad y que consigas desarrollar algo interesante.

  15. Titiritero Says:

    ¿Para openCV necesitas la librería IPL?

    Que por cierto para algunas cosas las funciones IPL son mejores o no están en openCV; antes ahora no se.

  16. Alfredo Says:

    Realmente la librería IPL no es necesaria, aunque si está presente y OpenCV la detecta, la utilizará para realizar los cálculos más rapidamente.

  17. Martin Says:

    Hola, acabo de empezar a trabajar en linux y actualmente estoy tomando una clase de visón por computadora, mi pregunta es que programas utilizas para hacerlo desde linux y si tienes un tutorial o algo para iniciarme y trabajar todo desde ubuntu. actualmente utilizo matlab para el procesamiento de imágenes.

  18. Alfredo Says:

    Lamentablemente no dispongo de ningún tutorial. El punto clave de todo el desarrollo es la librería OpenCV, y en cuanto al entorno puedes elegir el que más te guste. Lo único que tienes que hacer es incluir las librerias de OpenCV en el proyecto.
    Sin embargo, si usas Matlab no necesitas nada de esto, ya que el propio Matlab incluye las librerías de procesamiento de imagenes.

    Mucha suerte y gracias por comentar.

  19. Silvia Says:

    Buenos días, en primer lugar enhorabuena por el blog porque resulta muy interesante.

    Os escribo porque he tenido un problema con la cam de mi portátil, también trabajo con OpenCV y OpenCvdotNet. Resulta que tanto programando en C++ como en C# me muestra la ventana de la captura en negro… Tengo hechos los programas en mi sobremesa con una webcam conectada por USB y si que funcionan. Pero con la integrada del portatil no hay forma y lo intenté en el portátil con la USB y obtengo el mismo resultado: ventana en negro.

    Habéis experimentado este problema???

    Espero vuestra respuesta.

    Gracias.

  20. Alfredo Says:

    No estoy muy seguro. Es posible que no le de tiempo a imprimir la imagen si el retardo que has puesto entre capturas es demasiado bajo (por lo menos ese fue el problema que mas tiempo me llevó a mi resolver). En el bucle donde realizas las capturas y muestras por pantalla el resultado tienes que tener una instrucción como:

    if(cvWaitKey(10) & 255) == 27) …;

    para salir del programa si la tecla pulsada es escape (27) o si no espera durante 10 milisegundos.

    Prueba a ir variando el valor del parametro de cvWaitKey. Espero que te funcione, pero tanto si te funciona como si no, coméntalo.

  21. Daili Says:

    hola alfredo, me llama mucho la atencion tu proyecto y veo que has utilizado software libre…
    Ahora mismo yo estoy inmersa en un pequeño proyecto parecido al tuyo, te parece si intercambiamos ideas. Escribeme.. Saludos

  22. Alfredo Says:

    Hola Daili,

    El servidor me devuelve los correos con un error. ¿Has escrito tu direccion bien?

  23. Titiritero Says:

    ¿Cómo? A Daili le devuelves los correos y a mi no. Ingrato eres, eres, eres un *********, jajajajajajajajajaja :D :D :D :D :D.

  24. Alfredo Says:

    A ti también te los devuelvo, incluso a veces, cuando escribes algún post serio hasta te comento.

Leave a Reply