fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

Visión artificial

467 Respuestas
43 Usuarios
0 Reactions
535.3 K Visitas
mif
Respuestas: 1095
 Mif
Topic starter
(@mif)
Noble Member
Registrado: hace 19 años

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

Responder
466 respuestas
luisj
Respuestas: 235
(@luisj)
Estimable Member
Registrado: hace 18 años

Sí, OpenCV se basa en IPL.

No hay ninguna función buscapelota, pero hay muchas otras que pueden servir para busarlas. ¿Qué algoritmo usas para buscarla?

El manual de IPP viene muy bien, en concreto el capítulo 2 explica como usar IPP:
http://softwarecommunity.intel.com/isn/ ... 346495.pdf

De todas formas el rollo de que se necesite medio cerebro para usar IPP y que cuando aprendes IPP se te olvida montar en bici no es más que una coña porque las funciones tienen en el nombre incluida toda la semántica. Todas las funciones empiezan por "ippi", luego viene el nmbre de la operacion, y luedo el modo. El modo está dividido en el tipo de dato básico de la imagen (32f por ejemplo para imágenes con números reales), luego viene el caracter '_', y luego la composición de la imagen, por ejemplo "C3R", significa que las imágenes están en color y representadas por el canal rojo, verde y azul intercalados (con IPP también se puede operar con cada color en imágenes separadas). Esto nos daría la fución, por ejemplo: ippiConvValid_32f_C3R().

Si tienes dudas en concreto para usarla aqui estaré 😀

Responder
sphinx
Respuestas: 651
(@sphinx)
Ardero
Registrado: hace 17 años

Apoyo la moción de furri de lo del Tutorial de IPP 😉

Por cierto furri, te iba a decir algo parecido a lo que comenta luisj. En OpenCV tambien tienes funciones que te permiten hacer buscar circulos. Para ser concreto me refiero a cvHoughCircle.
Para mas info la Wiki de OpenCV (viene algún ejemplillo en C): http://opencvlibrary.sourceforge.net/Cv ... cvhough%29
Lo mismo ya la conocias.

Responder
furri
Respuestas: 2708
(@furri)
Ardero
Registrado: hace 20 años

...No hay ninguna función buscapelota, pero hay muchas otras que pueden servir para busarlas. ¿Qué algoritmo usas para buscarla?...

Sigo aplicando el mismo sistema que hice en 2006, lo puse en este mismo hilo hace casi un año....

http://www.webdearde.com/modules.php?na ... 2659#12659

Lo uso para buscar un objetivo de un color concreto, le busco el centroide y ya solo hay que calcular para tener posición y distancia (contando con tamaño conocido del objeto).

Responder
luisj
Respuestas: 235
(@luisj)
Estimable Member
Registrado: hace 18 años

Curioso e ingenioso el método para calcular el centro asumiendo que es un círculo. No creo que encuentres en IPP ninguna función que haga que vaya más rápido. De todas formas un algoritmo como ese debería tirar a 30fps en cualquier portatil sin problemas usando C++. Lo que quizás sí puedes hacer es un recorrido:

for (int posy=0; posy<HEIGHT; posy++){
for (int posx=0; posx<WIDTH; posx++){
lo que sea
}
}

en vez de:

for (int posx=0; posx<WIDTH; posx++){
for (int posy=0; posy<HEIGHT; posy++){
lo que sea
}
}

como del dibujo que has hecho se supone que haces. Los recorridos por filas aprovechan mejor la memoria caché.

Responder
furri
Respuestas: 2708
(@furri)
Ardero
Registrado: hace 20 años

Curioso e ingenioso el método para calcular el centro asumiendo que es un círculo...
Bueno, el algoritmo tambien vale para rectangulos... 🙂 , la identificación de figuras por su silueta es algo que dejaré para mas tarde...
...Los recorridos por filas aprovechan mejor la memoria caché.

Esto lo tendré muy en cuenta.... gracias.

Responder
Página 87 / 94
Compartir: