Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Como ya estoy de medio vacaciones, pero a la vez no tengo demasiados medios técnicos, me dedico a recopilar datos y a procesarlos como puedo en mi cabecilla, para poder hacer cosas en verano.
Como sabeis estoy con el tema del Bluetooth... a falta de hacer algunas pruebas con otro ordenador, el tema del TouchPad... necesito más medios que mi portatil... y... ahora viene el proyecto guapi guapi... Visión artificial con una simple webcam, entonces aqui vienen mis preguntas y aclaraciones:
·Sé que es posible, porque si no me equivoco Golfus Hispanicus lo emplea, asi como otros proyectos como los de esta chiquita tan maja: Mavis
·¿Cómo se empieza en este mundito?
·¿Qué librerías usais para obtener imágenes de la webcam?
·¿Qué librerías usais para procesar la imagen?
·¿Es imprescindible programar el sistema en C?
·¿Tenemos algun proyecto de ejemplo?
Yo estoy comenzando con la librería WebCam.dll, pero me temo que es muy incompleta, y además consume demasiados recursos comparándolo con el proyecto de Mavis. Aun así, tengo un programa hecho que lo único que tiene es un botón, con el que al pulsarlo, se copia la imágen de la webcam en un control PictureBox... me imagino que es un primer paso en este mundo, y que me quedan miles de caminos que recorrer, pero esta librería no sé si da mucho más de si, de modo que me gustaría que alguno que haya trabajado con esto me eche un cablecillo.
Seguiré informando. Muchas gracias por la ayuda.
Ángel
Las librerías eran OpenCV (en C). De todas formas, al ser un PFC, tuve que hacer 2 versiones:
-La que utilizaba las funciones propias de OpenCV (y por tanto, optimizadas y muy rápidas)
-La que tuve que programar completamente, con todo funciones propias
Posteriormente trabajé con IPP, son rápidisimas, muy potentes ...pero de pago.
Gracias por la respuesta jarcoval.
Las librerías IPP no son de pago si las usas para uso personal. Solamente las empresas y universidades tienen que pagar por usarlas. Lo que sí son es de código cerrado.
Luisj, por lo que yo tengo entendido la versión gratuita de las IPP solo está disponible para linux, corrigeme si me equivoco.
Por otro lado, a todo el que quiera hacer unas primeras aproximaciones con la VA le diria que las OpenCV es una herramienta que no está mal PERO que tiene muchos defecto:
- La API para poder carpturar imagenes de una webcam es penosa. No es configurable (aunque existe un parche pararecompilar la libreria bajo linux)
- Esta misma API es muy poco eficiente y es mucho pero si se intenta usar la libreria CvCam de las OpenCV
- No están soportadas, Intel dejó de desarrollarlas hace mucho tiempo y de vez en cuenda te encuentras con errores incoherentes, (en mi caso con el tema de las resoluciones de las imagenes).
Por lo tanto, yo recomendaría dar el salto directo a las IPP, y para la obtención de imagenes utilizar DirecShow para windows o el driver UCVlinux para linux, aunque yo aun estoy peleandome con él. Pero todo esto es solo una opinión
Para los que no sepais la relación entre las OpenCV y las IPP os diré que las OpenCV es una parte de las IPP, que se ha quedado antigua y con algunos errores pero que tiene funciones con nombres mucho mas intuitivos.
Por último deciros que si vais a usar un micro VIA, las IPP no os van a servir de nada puesto que usan los modulos internos de los microprocesadores Intel, modulos que tambien están disponibles en los micros AMD.
Un saludo a todos!
Nunca la he bajado para windos, pero me juego 20 euros a que se puede bajar gratis tambien. Creo recordar que la última vez que las bajé me daba la opción de bajarla para windos, pero vamos, que tampoco me importa mucho.
En mi opinión OpenCV para empezar tiene sus puntos fuertes y flojos: como bien dices, el api es ineficiente y a veces dan errores raros, sin embargo el api es mucho más facil de entender que con IPP (hay que hacer un cursillo para entender la sintaxis de los nombres de las funciones).
Lo de que la captura de cámara sea tan genérica me parece genial por dos razones:
- Funciona con todo lo que tire de v4l, v4l2 o firewire.
- Si quieres que vaya rápido vas a tener que usar una librería especial para la cámara, asi que tampoco se pierde tanto.
El hecho de que no esté soportado oficialmente no me parece tan malo, realmente nunca he necesitado soporte, y el soporte de la comunidad también cuenta.
Respecto a la captura con esa camara en robótica de la UEx tienen un componente Ice que lee de esa cámara. Si quieres puedes aprovechar el código. Creo que el repositorio subversion era robolab.unex.es/svn/components, o Components, o sin svn (hace algún mes que no lo uso), si no eres capaz de bajarlo avisa y te doy el fichero yo.
Se me olvidó:
En lo que se basa OpenCV no es en IPP, es en una cosa más antigua. De todas formas eso no quiere decir que OpenCV sea más antiguo que IPP. OpenCV tiene un camino de desarrollo en paralelo gracias a la comunidad, y sacan versiones nuevas con regularidad y muchos cambios interesantes. OpenCV usa las librerías IPP si se encuentran instaladas para aumentar su rendimiento y acercarse al rendimiento de IPP.
OpenCV, además, tiene funciones de más alto nivel que IPP por ahora no tiene.
Es cierto que OpenCV a veces da algun error, pero las dos versiones de IPP anteriores a la última daban error al aplicar canny, así que tampoco creais que IPP es perfecto, lo que si es es mucho más rápido.