Electrónica y Programación en Personal
«Si no se soluciona con un script en Python entonces no es viable»

por Yeison Cardona el 16 de junio de 2012 a las 20:25 UTC
Ahora que estoy terminando semestre me ha quedado un poco mas de tiempo para estar «jugando» con Python, Pinguino y recientemente con OpenCV.

Que es OpenCV?
OpenCV es una biblioteca libre de visión artificial originalmente desarrollada por Intel. Desde que apareció su primera versión alfa en el mes de enero de 1999, se ha utilizado en infinidad de aplicaciones. Desde sistemas de seguridad con detección de movimiento, hasta aplicativos de control de procesos donde se requiere reconocimiento de objetos. Esto se debe a que su publicación se da bajo licencia BSD, que permite que sea usada libremente para propósitos comerciales y de investigación con las condiciones en ella expresadas.
Open CV es multiplataforma, existiendo versiones para GNU/Linux, Mac OS X y Windows. Contiene más de 500 funciones que abarcan una gran gama de áreas en el proceso de visión, como reconocimiento de objetos (reconocimiento facial), calibración de cámaras, visión estereo y visión robótica.
El proyecto pretende proporcionar un entorno de desarrollo fácil de utilizar y altamente eficiente. Esto se ha logrado, realizando su programación en código C y C++ optimizados, aprovechando además las capacidades que proveen los procesadores multi núcleo. OpenCV puede además utilizar el sistema de primitivas de rendimiento integradas de Intel, un conjunto de rutinas de bajo nivel específicas para procesadores Intel (IPP).
Tomado de wikipedia


Resultado
El resultado es sencillo, he creado un aplicación interactiva usando la cámara web, con la que podemos encender y apagar un LED moviendo «algo» sobre dos círculos generados en la parte superior del frame. Cuando estamos sobre el circulo verde se envía una señal a Pinguino para encender un LED, en el rojo para apagarlo.



y un video con una demostración :)



Dependencias
La única dependencia es el módulo OpenCV para Python, que puede ser descargado ejecutando en la terminal:
sudo apt-get install python-opencv

Descargar
Dejo el código para que lo descarguen y hagan sus propias pruebas.

Descargar desde
Google Code


Nota
La interfaz con Pinguino ha sido simplemente por diversión :)


También podría interesarte:

Comentarios:
Samy Mahmod Quintana dijo:
3 de julio de 2012 21:07
Tu crees que eres arrecho pues yo te lo certifico para que desde hoy en adelante estés seguro... jajaja

Muy interesante tu post.
Responder a Samy Mahmod Quintana
Decoded! dijo:
11 de septiembre de 2012 12:44
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument

Porqueee?? D:
Responder a Decoded!
Respuesta de Yeison Cardona:
11 de septiembre de 2012 13:10
Es un mensaje que usualmente aparece, no implica ningún error en sí, pero si no puedes ejecutar el ejemplo, entonces hay un error en otra parte, el trazado de python debe de contener mas información.
Responder a Yeison Cardona
Gus jimenez plata dijo:
11 de noviembre de 2012 01:44
Oye una pregunta tengo problemas para poder hacer comunicación con mi tarjeta pingüino pic18f4550 aun no encuentro ese detalle de hecho y la verdad soy nuevo con esto me podrias ayudar
Responder a Gus jimenez plata
Yeison Cardona dijo:
11 de noviembre de 2012 01:52
Un Saludo @Gus jimenez plata para la comunicación con Pinguino estoy usando usando este código, es un método sencillo para interfazar Pinguino con cualquier lenguaje de programación que tenga acceso a un puerto Serie.

Hasta pronto, y si necesitas mas ayuda no dudes en preguntarme.
Responder a Yeison Cardona
Añadir un nuevo comentario:
Si desean una respuesta para su comentario sólo deben agregarme en G+ y hacer una mención a Yeison Cardona, así les podré responder lo antes posible.