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
Estoy haciendo un programa para que un Robonova imite el movimiento del brazo de una persona, captando por webcam.
La parte de transmisión desde el PC al Robo está cubierta.
Necesito ahora hacer la parte de VA. He utilizado OpenCV como me recomendasteis para capturar el video.
Explico mi idea y a ver si podeis mejorarla o aportar:
-1º hago una foto del cuerpo de la persona en posición "firme".
-2º capturo video. Cada x tiempo me quedo con un frame, y comparo el frame (restando) con la imagen de firme. La idea es obtener solo el brazo en la imagen, para poder obtener el ángulo que forma con el cuerpo.
Lógicamente, tendría que hacer un preprocesado (binarización de imágenes, resta, y posteriormente distintas fases de recortado/adelgazamiento para quedarme sólo con una linea de pixeles
Hola a todos bueno nunca e programado cosas asi , me refiero de realidad virtual y quisiera empezar por una cosa sencilla. Pero tengo un problema. El "proyecto" consiste en deterninar la distancia de un objeto mediante un laser y una web cam.
La cosa seria mas o menos como el esquema de abajo. Es casi identico al sistema que utilizan los gp2dxx, que es la triangulacion.
Pues bien la idea seria utilizar la trigonometria tambien, pero una trigonometria facil asi no seria un programa muy extenso y seria facil de calcular las distancias.
Utilizaria solo una funcion trigonometrica, la de la tangente (Tg α= cateto contiguo / cateto opuesto) entonces el angulo alpha quedaria encima la camara. Y es aqui mi problema que no se como calcular este angulo alpha de una forma sencilla. Ya que la distancia entre el laser y la web cam seria fija y el cateto opuesto seria la incognita. Teneis alguna propuesta para calcularlo o sabeis alguna forma para determinar el angulo a partir del pixel donde cae o alguna cosa asi ??
Hola
Dado que los ángulos alfa y beta son iguales, la distancia obtenida en la cámara es proporcional a la distancia real según la distancia focal de la cam y la distancia entre ella y el láser, siempre que sean paralelos. Es decir Distancia=d*K siendo d la distancia leida en la cam (diferencia entre pixel) y K la constante. Ello facilita el cálculo un montón.
Ten en cuenta que la distorsión de la lente de la cámara y el error de paralelismo impedirá un cáclculo exacto, por lo que la constante K deberías calcularla de forma experimental y además obteniendo varias medidas a distintas distancias, para obtener así una tabla de corrección.
Espero que te haya servido.
Salu2
Me a servido un monton eventronic no habia pensado en lo de triangulos parecidos.
P.D: Un pixel a cuantos cm equivalen es para calcular la diferencia de pixels
Uf eso si que es complicado porque depende de los pixels exactos del ccd de la cam y del tamaño exacto de este. Si el ccd tiene 1cm2 y la resolución es de 640*480 ya sabes que en 1cm hay 640 pixel y que únicamente te sirve de estimación, ya que la lente infuye, por eso te dije antes que tomes un valor aproximado y calcules los valores reales de forma experimental, para poder almacenar en una variable (o mejor una tabla) el factor de corrección.
Salu2
